- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
unix_第6章
6.1进程的状态和状态的转换1/8 进程的状态 进程在用户态下正在执行 进程在核心态下正在执行 进程未被执行,但处于就绪状态,重要内核调度它,即可执行 进程正在睡眠并驻留在内存中 进程处于就绪状态,但对换进程(进程0)必须把它换入主存,内核才能调度它去执行 6.1进程的状态和状态的转换2/8 进程正在睡眠,而且对换进程已把它换到二级存储器,从而为其他进程腾出空间 进程正从核心态返回用户态。但内核抢先于它,并做了上下文切换,以调度另一个进程 进程刚被创建,处于变迁状态。该进程存在,但没有就绪,也不在睡眠。这个状态是除进程0以外的所有进程的初始状态 进程执行了系统调用exit,处于僵死状态。该进程不再存在,但它留下一个记录,该记录可由其父进程收集,僵死状态是进程的最后状态 6.1进程的状态和状态的转换3/8 6.1进程的状态和状态的转换4/8 几点注意! 一个进程可以创建另一个进程。然而,进程从“创建”状态所发生的状态转换(即到“在内存中就绪”或到“就绪且换出”状态)却取决于内核:进程不能控制这些状态的转换。 一个进程可以发出系统调用,实现从”用户态运行“状态到”核心态运行“状态的状态转换。但是,进程不能控制何时从内核返回。 一个进程可以按自己的意愿(exit)退出。但外部事件可能强迫它退出(例如中断)而不用它明显的发出系统调用exit。 所有其他状态的转换都严格遵循内核中已编码的模型,以可预言的方式对事件作出反应。例如,任何进程都不能抢先另一个在内核中运行的进程。 6.1进程的状态和状态的转换5/8 进程表项和U区的简单介绍 进程表项和U区都是描述进程状态的内核数据结构,进程表中的字段对内核来说必须总是可存取的。而U区中的字段只能由正在运行的进程来存取。因此,只有当创建一个进程时,内核才为其分配U区空间。那些不与任何进程相联系的进程表项是不需要U区的。 进程表中的字段: 状态字段,标识进程状态 6.1进程的状态和状态的转换6/8 进程表项中有一些字段,这些字段允许内核找出对应的进程和其U区在内存或二级存储器中的位置。 若干用户标识号(user ID) 若干进程标识号(process ID) 在进程处于睡眠状态时,进程表项中有一个事件描述符字段。 调度参数,内核用它们决定若干个进程转换到核心态和用户态的次序。 一个软中断信号字段,记录发向一个进程的所有未处理的软中断信号。 各种计时字段。 6.1进程的状态和状态的转换7/8 U区中的字段: 一个指向进程表的指针,标识了对应于该U区的进程表项。 真正用户标识号及有效用户标识号,决定了进程的各种特权,如文件存取权限。 计时器字段,记录进程在用户态和核心态所用时间。 一个表示进程希望如何对软中断信号作出反应的数组。 控制终端字段,标识与进程相关的”注册终端“。 一个出错字段,记录在一个系统调用过程中遇到的错误。 一个含有系统调用结果的返回值字段。 6.1进程的状态和状态的转换8/8 一些输入/输出参数,描述要传达的数据量、在用户空间的源(或目的)数据的数组地址、文件的输入/输出偏移量等。 当前目录和当前根,描述进程的文件系统环境。 用户文件描述符表,记录该进程已打开的文件。 限制字段,限制了一个进程的大小及它能”写“的一个文件的大小。 对该进程创建的所有文件设置的一个许可权方式字段的屏蔽模式。 6.2 系统存储方案 进程数据结构 内核进程表:每个进程都对应其中的一个表项,包含一个指向本进程区表的指针 U区:每个进程都被分配一个u区,包含仅被内核操纵的私用数据,如打开的文件、当前目录等 本进程区表:该表的表项指向区表的表项 区表:每个在内核中活动的区对应区表中的一个表项,如正文区、数据区和栈区等,而区表登记项描述了区的属性,诸如是否包含正文或数据,共享还是私用,区中的“数据”位于内存中何处等 物理存储器的空间是有限的,如内存+磁盘 如果将编译程序生成的地址看作是物理地址,那么不可能将所有的程序都生成在不同的地址空间上 如果两个进程在他们生成的地址集合重叠的情况下,就不可能并发运行了 通用的做法:编译程序在一给定范围的虚拟地址空间上生成地址,机器的存储管理部件将实现虚拟地址到物理地址的转换 6.2.1 区 进程的虚拟空间分为若干个逻辑区 所谓区,就是虚拟地址空间上的一段连续区域,可以作为共享和保护的独立实体 进程的正文、数据和栈通常形成一个进程的几个独立区 多个进程之间可以共享一个区,如几个进程执行同一个程序,或者共享一个存储区 系统中的每一个活动的区都对应一个区表表项 区表表项中的信息决定区的内容放在物理存储的什么地方 进程私有的本进程区表表项则指向一个区表的表项,并且含有该区在进程中的起始虚地址;还有一个许可权字段,指出对应进程所允许的存取类型:只读、读/写或读/执行 进程和
您可能关注的文档
- TPM_TNPM_与企业其它管理体系的关系.pdf.pdf
- EDA技术与高职电子技术教学的探讨.pdf
- 燕然居诗词选.doc.doc
- 服装厂管理制度.doc.doc
- 析_美国统一商法典_的原则.pdf.pdf
- 毛巾行业市场发展趋势.pdf
- 析《美国统一商法典》的原则.doc.doc
- 长城县-众望之城-整体推广暨招商推介案-2008年-18PPT.ppt.ppt
- 2012-2013学年度下学期春苑广播站广播稿.doc
- GPIO输入、输出控制实验(蜂鸣3次、LED显示零).doc
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(名校卷).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(典优).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(各地真题).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(历年真题).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(名校卷).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(全国通用).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(易错题).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(真题汇编).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案(全国通用).docx
- 2025年江西省汽车驾驶员高级理论知识考试试卷带解析及答案一套.docx
文档评论(0)