(1.2)--第2章计算机操作系统操作系统原理.pptVIP

(1.2)--第2章计算机操作系统操作系统原理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.进程控制块的组织方式 (1)线性表方式 2.2 进程的状态及转换 (2)链接表方式 (3)索引表方式 2.3 进程控制 进程具有由创建而产生、被调度而执行、因撤销而消亡的生命周期。因此,操作系统要有对进程生命周期的各个环节进行控制的功能,这就是进程控制。 进程控制的职能是对系统中的全部进程实施有效的管理,主要是对一个进程进行创建、撤销以及在某些进程状态之间进行转换控制。通常允许一个进程创建和控制另一个进程,前者称为父进程,后者称为子进程,子进程又可创建其子孙进程,从而形成一个树形结构的进程家族,这种树形结构使得进程控制更加灵活方便。 2.3 进程控制 2.3.1 进程切换 进程切换实质是回收当前运行进程对CPU的控制权,并将CPU控制权转交给新调度的就绪进程。 1.进程上下文 除了进程实体之外,进程的运行还需要其他硬件环境的支持,如程序状态字PSW、段表、页表(见第4章)等数据结构。一个进程运行时,CPU所有寄存器中的内容、进程的状态以及运行栈中的内容被称为进程的上下文。进程上下文是操作系统用来管理和控制进程的内部数据集合,进程在其上下文中运行。 (1)系统级上下文。操作系统内核进程使用的进程上下文信息集合,主要包括PCB与逻辑地址到物理地址转换的核心数据结构,如段表、页表及核心栈等。 (2)寄存器上下文。CPU中所有寄存器的信息集合,如通用寄存器、指令寄存器、程序状态字寄存器和栈指针等。 (3)用户级上下文。用户进程访问和修改的进程上下文信息集合,主要包括进程的程序段、数据段、用户栈和共享存储区。 当内核进行进程切换时,它需要保存当前运行进程的进程上下文,以便再次执行该进程时,能够恢复到进程被切换前的运行现场和环境而继续正常运行。发生进程切换时,新、旧进程进行上下文切换。 进程上下文 2.3 进程控制 2.进程切换的时机 进程切换是中断驱动的,引起进程切换的中断可分为以下三种: (1)中断。中断发生时,操作系统保存当前运行进程(称为旧进程)的现场信息,调度新进程运行。 (2)异常。当CPU在一条指令执行时,检查到有一个或多个预定义的条件或错误产生时就会产生异常,这时,终止当前运行进程的执行,CPU转去执行异常处理程序。 (3)系统调用。系统调用是对操作系统服务的一种显式请求。阻塞型系统调用发生时,则当前运行进程被阻塞,此时CPU转去执行进程调度程序。 进程切换 3. 进程上下文切换 (1)当前运行进程被中断时保存其CPU现场信息。 (2)对被中断的当前运行进程进行PCB更新,包括改变进程状态和其他 相关信息。 (3)将被中断的当前运行进程的PCB移入适当的队列(时间片到则移入就绪队列,因某事件阻塞则移入相应的阻塞队列)。 (4)由进程调度程序调度选中另一个就绪进程,为其设置执行的上下文环境并对其PCB进行更新。 (5)修改新进程的地址空间,更新新进程的内存管理信息。 (6)恢复被选中进程最后一次进程上下文切换时所保存的CPU现场信息。 进程切换 2.3.2 进程控制原语 1. 原语 一个操作可以依次分成几个具体实施的动作,如果这几个动作的执行不会被分割或中断,且这些动作要么全部执行,要么一个都不执行,则称这个操作具有原子性。 一个特殊的程序段称为原语,意味着这段程序的执行具有原子性,即这段程序的所有指令要么全部执行,要么一个都不执行。 注意:如果原语中某一条指令的执行没有成功,那么该原语中之前已经执行的指令操作要全部废除,并恢复到未执行该原语前的状态。原语的主要作用是保证系统运行的一致性。 2.3 进程控制 2.进程创建原语 int Creat(int n,int k, List *s,List *r) //创建原语 { lock out interrups; //关中断 Get(NewPCB,FreeQueue); //从空闲FreeQueue队列申请一个空闲PCB NewPCB-id=n; //为新进程分配唯一的进程标识符n NewPCB-priority=k; //置新进程的优先级为k GetMemory(NewPCB); //为新进程申请分配内存资源 GetResouce(NewPCB,r); //按资源清单r为新进程分配其他资源 Init_PCB(NewPCB,s); //按初始化清单s初始化新进程的PCB NewPCB-status=ready; //新进程的状态置为“就绪” NewPCB-parents

文档评论(0)

奉献教育1688 + 关注
实名认证
文档贡献者

心有凌云志,无高不可攀!

1亿VIP精品文档

相关文档