当前位置: 首页 > wzjs >正文

爱站网关键词查询网站太原论坛建站模板

爱站网关键词查询网站,太原论坛建站模板,毕业设计做系统和网站有什么区别,商城类网站建设步骤目录 一、task_struct的创建与链接 二、内核处理进程退出的主要步骤 在所有的操作系统中,都遵循着一个“先描述,后管理”的原则。所谓描述就是把一个抽象的状态(如硬件资源、运行状态等)用一个结构体来表示,以后…

目录

一、task_struct的创建与链接

二、内核处理进程退出的主要步骤    


        在所有的操作系统中,都遵循着一个“先描述,后管理”的原则。所谓描述就是把一个抽象的状态(如硬件资源、运行状态等)用一个结构体来表示,以后只要状态发生了改变就必须先修改这个结构体中对应的成员;而管理则是说有着许许多多的硬件状态,不能孤立的存在而应该放在一个统一的容器中存放,想要查询、修改哪一个硬件只需要到这个“档案室”中找到其结构体,并进行修改。

        本篇文章我们只讨论进程的描述结构体,即进程控制块(Process Control Block),在不同的操作系统中PCB有着不同的叫法,而在Linux中我们称之为task_struct。

一、task_struct的创建与链接

        既然我们说所有的东西都要先描述再管理,那么进程也不例外。当使用fork函数创建一个进程的时候,操作系统内核首先就会创建一个task_struct结构体。这个结构体由于需要操作系统管理,则必定是在内核空间中的。即全局的进程链表。

        当task_struct已经被链入到内核的全局链表中了,则会开始填充骨肉。

最后会把该task_struct链入运行队列中,让调度器能够管理其运行。

二、内核处理进程退出的主要步骤    

        进程退出通常分为正常退出(进程本身通过return或exit函数退出)和异常退出(运行时收到了外部的终止信号、或运行错误)

  • (1)释放资源
    • 内存资源:进程占用的用户空间内存(包括堆、栈、数据段等 )会被释放。内核会根据进程task_struct中记录的内存描述符(mm_struct )信息,回收分配给该进程的虚拟内存区域和对应的物理内存页框。如果存在共享内存,会检查引用计数,当引用计数为 0 时,释放共享内存资源。
    • 文件描述符:关闭进程打开的所有文件描述符。内核会遍历进程task_struct中的文件描述符表,调用相应的文件系统操作来关闭文件,释放相关的文件资源,如文件锁、缓存等 。
    • 其他资源:例如进程创建的管道、信号量、消息队列等进程间通信资源,也会根据情况进行释放或清理。
  • (2)更新父进程信息子进程需要向父进程报告自己的退出状态。如果父进程调用了waitwaitpid函数等待子进程结束,那么父进程会获取子进程的退出状态。同时,内核会在父进程的task_struct中更新子进程的相关信息,比如从父进程记录子进程的链表中移除该子进程节点 。
  • (3)从运行队列移除如果进程在退出前处于运行队列(就绪态 ),内核会将其task_struct从运行队列中移除。以 Linux 内核的 CFS(完全公平调度器 )为例,会操作运行队列对应的红黑树,将代表该进程的调度实体(sched_entity ,在task_struct中 )从红黑树中删除,这样调度器就不会再调度该进程运行。
  • (4)从等待队列移除若进程处于阻塞态,在等待某个事件(如 I/O 操作完成、信号量获取等 ),它会在相应的等待队列中。内核会找到该进程所在的等待队列,将其task_struct从队列中移除,避免后续该进程被错误唤醒。
  • (5)从全局进程链表移除Linux 内核使用双向循环链表管理所有进程,以init_task作为链表头。当进程退出时,会将其task_struct中的tasks节点(用于连接到全局进程链表的节点 )从链表中摘除,具体操作是修改前后节点的nextprev指针,使链表中不再包含该进程的task_struct 。
  • 6)处理僵尸状态(Zombie State):如果父进程没有调用waitwaitpid来获取子进程的退出状态,子进程会进入僵尸状态,此时子进程的task_struct不会立即被释放,而是会保留在内存中,等待父进程获取其退出状态。不过,即使处于僵尸态,它也已经从运行队列、等待队列等功能性队列中移除,只是还在全局进程链表中,直到父进程调用wait系列函数后,内核才会彻底释放该task_struct占用的内存。

        值得注意的是:当一个进程退出后,会被标记为僵尸状态,且从运行队列、阻塞队列中移除。但是并未移出全局进程链表以及父进程的子进程链表,只有当父进程使用wait或waitpid后才会在子进程链表中找到该pcb,获取退出信息后才销毁。

http://www.dtcms.com/wzjs/560714.html

相关文章:

  • 十大免费文案网站乌海seo
  • 权威的企业网站建设让网站排名下降
  • 地方美食网站开发意义邵阳红网站
  • 舟山公司网站制作WordPress微信支付个人
  • seo实战密码第四版成都官网seo服务
  • 网站开发技术服务协议上海做网站找哪个公司好
  • 河北做网站公司那家好南京网站制作网页
  • 织梦怎么做企业网站苍南最新发布请配合
  • 网站侧导航网站问题seo解决方案
  • 如何做网站的主页珠海模板建站定制网站
  • 富阳做网站公司工程信息网哪个好
  • 药业集团网站建设方案移动互联网开发好就业吗
  • 怎样做微信推广网站公司网站制作效果
  • 建站平台一键申请三方支付通道正规免费发布信息网站
  • 怎样在手机上做自己的网站做网站时搜索的代码是什么
  • 制作企业网站的建设单位网站设计
  • 上海网站seo手机如何创建简易网站
  • 杭州优化网站c2c网站建设的需求分析
  • 将电脑做的网站放到外网上海市质量工程建设管理协会网站
  • 全国网站建设汇编wordpress邮箱失败
  • 网站的版面设计竞价账户托管
  • 网站模板制作与安装教程视频教程溧阳市住房和城乡建设局网站
  • 好看云在线网站模板python编程自学网
  • 做网站与全网营销搜索推广排名优化做响应式网站设计师需要做什么
  • 三五互联网站报价表门户网站开发要多久
  • 上海建设工程网站购物网站制作公司
  • 张家港网站建设价格国家高新技术企业证书
  • 快速建立平台网站开发网站模板设计泰州市建设工程招标网
  • 珠海免费模板建站山东环保行业网站开发
  • 母婴网站源码 带采集行业网站建设