临汾山东漯河饰品美体美文
投稿投诉
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品
漯河衢州
兴义眉山
桂林阳泉
玉溪简阳
山东遂宁
永城新余
梧州洛阳
泸州温州
临汾清远
营口常熟
浙江大连
桐乡宜昌

进程管理(电脑进程管理器)

5月21日 颜如初投稿
  进程管理(电脑进程管理器)
  linux服务器开发相关视频解析:
  360度无死角讲解进程管理,调度器的5种实现
  linux多线程之epoll原理剖析与reactor原理及应用stdio。string。stdlib。unistd。voidmain(){charstr〔6〕pidtpidfork();if(pid0){str〔0〕39;b39;;printf(子进程中strsn,str);printf(子进程中str指向的首地址:xn,(unsignedint)str);}else{sleep(1);printf(父进程中strsn,str);printf(父进程中str指向的首地址:xn,(unsignedint)str);}}
  子进程中strbello
  子进程中str指向的首地址:bfdbfc06
  父进程中strhello
  父进程中str指向的首地址:bfdbfc061、背景介绍
  这里就涉及到物理地址和逻辑地址(或称虚拟地址)的概念。
  从逻辑地址到物理地址的映射称为地址重定向。分为:
  静态重定向在程序装入主存时已经完成了逻辑地址到物理地址和变换,在程序执行期间不会再发生改变。
  动态重定向程序执行期间完成,其实现依赖于硬件地址变换机构,如基址寄存器。
  逻辑地址:CPU所生成的地址。CPU产生的逻辑地址被分为:p(页号)它包含每个页在物理内存中的基址,用来作为页表的索引;d(页偏移),同基址相结合,用来确定送入内存设备的物理内存地址。
  物理地址:内存单元所看到的地址。用户程序看不见真正的物理地址。用户只生成逻辑地址,且认为进程的地址空间为0到max。物理地址范围从R0到Rmax,R为基地址,地址映射将程序地址空间中使用的逻辑地址变换成内存中的物理地址的过程。由内存管理单元(MMU)来完成。
  可执行程序在存储(没有调入内存)时分为代码区,数据区,未初始化数据区三部分。
  (1)代码区存放CPU执行的机器指令。通常代码区是共享的,即其它执行程序可调用它。代码段(codesegmenttextsegment)通常是只读的,有些构架也允许自行修改。
  (2)数据区存放已初始化的全局变量,静态变量(包括全局和局部的),常量。static全局变量和static函数只能在当前文件中被调用。
  (3)未初始化数据区(BlockStartedbySymbol,BSS)存放全局未初始化的变量。BSS的数据在程序开始执行之前被初始化为0或NULL。
  代码区所在的地址空间最低,往上依次是数据区和BSS区,并且数据区和BSS区在内存中是紧挨着的。
  text段和data段在编译时已分配了空间,而bss段并不占用可执行文件的大小,它是由链接器来获取内存的。
  bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小。
  data(已手动初始化的数据)段则为数据分配空间,数据保存在目标文件中。
  数据段包含经过初始化的全局变量以及它们的值。BSS段的大小从可执行文件中得到,然后链接器得到这个大小的内存块,紧跟在数据段后面。当这个内存区进入程序的地址空间后全部清零。包含数据段和BSS段的整个区段此时通常称为数据区。
  可执行程序在运行时又多出了两个区域:栈区和堆区。
  (4)栈区。由编译器自动释放,存放函数的参数值,局部变量等。每当一个函数被调用时,该函数的返回类型和一些调用的信息被存储到栈中。然后这个被调用的函数再为它的自动变量和临时变量在栈上分配空间。每调用一个函数一个新的栈就会被使用。栈区是从高地址位向低地址位增长的,是一块连续的内在区域,最大容量是由系统预先定义好的,申请的栈空间超过这个界限时会提示溢出,用户能从栈中获取的空间较小。
  (5)堆区。用于动态内存分配,位于BSS和栈中间的地址位。由程序员申请分配(malloc)和释放(free)。堆是从低地址位向高地址位增长,采用链式存储结构。频繁地mallocfree造成内存空间的不连续,产生碎片。当申请堆空间时库函数按照一定的算法搜索可用的足够大的空间。因此堆的效率比栈要低的多。
  【文章福利】需要CCLinux服务器架构师学习资料加群812855908(资料包括CC,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCPIP,协程,DPDK,ffmpeg等)
  2、fork
  fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了写时复制技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。在fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,也就是说,两者的虚拟空间不同,但其对应的物理空间是同一个。当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间,如果不是因为exec,内核会给子进程的数据段、堆栈段分配相应的物理空间(至此两者有各自的进程空间,互不影响),而代码段继续共享父进程的物理空间(两者的代码完全相同)。而如果是因为exec,由于两者执行的代码不同,子进程的代码段也会分配单独的物理空间。
  fork时子进程获得父进程数据空间、堆和栈的复制,所以变量的地址(当然是虚拟地址)也是一样的。
  每个进程都有自己的虚拟地址空间,不同进程的相同的虚拟地址显然可以对应不同的物理地址。因此地址相同(虚拟地址)而值不同没什么奇怪。
  具体过程是这样的:
  fork子进程完全复制父进程的栈空间,也复制了页表,但没有复制物理页面,所以这时虚拟地址相同,物理地址也相同,但是会把父子共享的页面标记为只读(类似mmap的private的方式),如果父子进程一直对这个页面是同一个页面,知道其中任何一个进程要对共享的页面写操作,这时内核会复制一个物理页面给这个进程使用,同时修改页表。而把原来的只读页面标记为可写,留给另外一个进程使用。
  这就是所谓的写时复制。正因为fork采用了这种写时复制的机制,所以fork出来子进程之后,父子进程哪个先调度呢?内核一般会先调度子进程,因为很多情况下子进程是要马上执行exec,会清空栈、堆这些和父进程共享的空间,加载新的代码段,这就避免了写时复制拷贝共享页面的机会。如果父进程先调度很可能写共享页面,会产生写时复制的无用功。所以,一般是子进程先调度滴。
  假定父进程malloc的指针指向0x12345678,fork后,子进程中的指针也是指向0x12345678,但是这两个地址都是虚拟内存地址(virtualmemory),经过内存地址转换后所对应的物理地址是不一样的。所以两个进城中的这两个地址相互之间没有任何关系。
  (注1:在理解时,你可以认为fork后,这两个相同的虚拟地址指向的是不同的物理地址,这样方便理解父子进程之间的独立性)
  (注2:但实际上,linux为了提高fork的效率,采用了copyonwrite技术,fork后,这两个虚拟地址实际上指向相同的物理地址(内存页),只有任何一个进程试图修改这个虚拟地址里的内容前,两个虚拟地址才会指向不同的物理地址(新的物理地址的内容从原物理地址中复制得到))3、exec家族
  exec家族一共有六个函数,分别是:spanstylefontfamily:MicrosoftYaHfontsize:12(1)intexecl(constcharpath,constchararg,。。。。。。);(2)intexecle(constcharpath,constchararg,。。。。。。,charconstenvp〔〕);(3)intexecv(constcharpath,charconstargv〔〕);(4)intexecve(constcharfilename,charconstargv〔〕,charconstenvp〔〕);(5)intexecvp(constcharfile,charconstargv〔〕);(6)intexeclp(constcharfile,constchararg,。。。。。。);
  其中只有execve是真正意义上的系统调用,其它都是在此基础上经过包装的库函数。
  exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
  与一般情况不同,exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样,颇有些神似三十六计中的金蝉脱壳。看上去还是旧的躯壳,却已经注入了新的灵魂。只有调用失败了,它们才会返回一个1,从原程序的调用点接着往下执行。

热文福奇称家人遭受死亡威胁近日福奇称家人遭受死亡威胁登录上了百度热搜,受到广大网友们的关注,那么关于目前的福奇称家人遭受死亡威胁相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集……热文等额本金和等额本息的区别什么是等额本息?近日等额本金和等额本息的区别什么是等额本息?登录上了百度热搜,受到广大网友们的关注,那么关于目前的等额本金和等额本息的区别什么是等额本息?相信小伙伴们都是想要了解到最新的信息吧……热文格力起诉国家知识产权局近日格力起诉国家知识产权局登录上了百度热搜,受到广大网友们的关注,那么关于目前的格力起诉国家知识产权局相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集……长治哪个省(长治属于晋东南地区吗)近日,国家发改委发布一份重要顶层设计规划文件《十四五特殊类型地区振兴发展规划》,明确了长治的山西省省域副中心地位。发改委《十四五特殊类型地区振兴发展规划》当中,明确指出的……热文雪茄怎么抽如何正确的抽雪茄近日雪茄怎么抽如何正确的抽雪茄登录上了百度热搜,受到广大网友们的关注,那么关于目前的雪茄怎么抽如何正确的抽雪茄相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整……热文青岛市新增1例确诊病例详情公布近日青岛市新增1例确诊病例详情公布登录上了百度热搜,受到广大网友们的关注,那么关于目前的青岛市新增1例确诊病例详情公布相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行……热文12月结婚黄道吉日查询近日12月结婚黄道吉日查询登录上了百度热搜,受到广大网友们的关注,那么关于目前的12月结婚黄道吉日查询相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集……热文中学生课间操跳起敦煌舞近日中学生课间操跳起敦煌舞登录上了百度热搜,受到广大网友们的关注,那么关于目前的中学生课间操跳起敦煌舞相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集……热文王守义十三香是什么梗近日王守义十三香是什么梗登录上了百度热搜,受到广大网友们的关注,那么关于目前的王守义十三香是什么梗相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集到了……热文杨紫吐槽电视剧的套路近日杨紫吐槽电视剧的套路登录上了百度热搜,受到广大网友们的关注,那么关于目前的杨紫吐槽电视剧的套路相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集到了……直播公司有哪些(直播公司起名)在抖音电商,一种新的行业正在崛起DP服务商,言简意赅说就是抖音代运营、抖音直播、品牌代播,协助商家或者品牌方卖货的乙方公司。而这些DP服务商,又或有两种:一种是致力于帮助品牌探……热文常见的碱性食物有哪些人们所说的碱性食物近日常见的碱性食物有哪些人们所说的碱性食物登录上了百度热搜,受到广大网友们的关注,那么关于目前的常见的碱性食物有哪些人们所说的碱性食物相信小伙伴们都是想要了解到最新的信息吧,小……
gu是什么牌子(gu的衣服质量怎么样)文小润在之前优质淘宝店铺分享的那篇文章里,小润给大家提到过一个日系品牌GU,这个优衣库的姐妹品牌。这个周末,小润去GU的线下店逛了一圈儿,发现GU的夏季新款可真好看……什么是双创(大学生如何践行双创精神)中国官方:建立以创新创业为导向的新型人才培养模式加强大学生双创培训中新社北京10月12日电近日,中国国务院办公厅印发《关于进一步支持大学生创新创业的指导意见》(以下简称《……今日广宁牛肉价格广宁人民政府绘制一组与企业总部所在城市相关的数据图表,杜曲镇,注意不是人均耕地。21家,党支部,排名基本呈现出北上深杭广宁,马斯克从中获得了一,上面是各镇的户籍人口,包括公摊的道路。……湖北省政府秘书长别必雄被查近日湖北省政府秘书长别必雄被查登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下湖……肠粉是用什么粉做的(肠粉是用粘米粉做的吗)你还在纠结什么时候用土豆淀粉、玉米淀粉、红薯淀粉等等其他淀粉吗?想了解它们的区别,搞清楚什么时候该用对的淀粉,那你就继续往下看,耽误你两三分钟的时间,让你用对淀粉,做菜也……单鞋磨脚(单鞋磨脚怎么办?)单鞋磨脚(单鞋磨脚怎么办?)对于新单鞋很多人都比较头疼的一个问题就是经常会出现单鞋磨脚的问题,但是自己又很喜欢,那么要怎么办呢?不用烦恼,今天小编就来为大家介绍下在单鞋磨……为什么叫韭菜(为什么比喻别人是韭菜)前言在3月2日中午的时候,我发了一个朋友圈说说。过了没多久,就有朋友回复:对酒当割,人生几何?并且,配了一个滑稽的头像。囧她的意思我很明白,无非是……怎么让别人查不到聊天记录(不让别人查我的微信聊天记录)今天上午,App更新成了全网最火的话题,除了朋友圈可以发20张图之外,键盘也引起了大家激烈的讨论。目前,只有在发红包界面,输入红包金额和红包个数时,会自动启动键盘,键盘的……免费查开宾馆记录查询app(查询酒店住宿记录查询)免费查开宾馆记录查询app(查询酒店住宿记录查询)如今,伴随着科学技术的不断发展,酒店行业开始采用刷脸入住技术来进行酒店客房的预订和退房。人脸识别技术现如今已经应用在各行……交易方式有哪些(商品交易类型)易货交易是一种古老的交易方式,时至今日在我们日常生活中也能经常见到,他的主要形式有两种。一种是直接易货,另一种则是综合易货。直接易货那什么是直接易货呢?直接易货一般……学计算机需要什么基础(千万别学计算机科学与技术)近年来,计算机等信息类专业高考录取分数线猛涨,研究生考试相关专业报名人数猛增,作为一名本科和硕士阶段都是计算机专业的博主,让我来告诉你怎样判断自己是否应该选择计算机专业。……提现为什么要审核(提现显示待审核是什么意思)近日我看到很多朋友说自己的爱奇艺自媒体号无故不让提现,很多人在群里叫,我也是个自媒体人,我2月之前也看自己的号,真的不让提现了,显示您的认证信息需要进一步审核,请您等待审核结果……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找