操作系统_第7章_实赖凝分析:UNIX操作系统.ppt

操作系统_第7章_实赖凝分析:UNIX操作系统.ppt

  1. 1、本文档共108页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统_第7章_实赖凝分析:UNIX操作系统

第7章 实例分析:UNIX操作系统; UNIX是一个通用、多用户的分时操作系统。本章主要从实现的角度出发,讲述四个方面的内容: (1)UNIX的进程以及进程调度; (2)UNIX采用的存储管理策略; (3)UNIX目录结构的特点以及对磁盘存储空间的管理; (4)UNIX对块设备及字符设备的管理以及缓冲技术。;7.1 UNIX的处理机管理 7.2 UNIX的存储管理 7.3 UNIX的文件管理 7.4 UNIX的设备管理;7.1 UNIX的处理机管理; 2.数据段 进程运行时用到的数据以及工作区,构成了一个进程的数据段。要注意的是,如果进程执行的程序是不能被共享的,那么也把它归入到数据段中。这样,UNIX进程的数据段分成三个部分:系统数据区、用户数据区和用户栈区。如在基本控制块proc结构中所述,在进程的proc结构中,由p_addr指向该进程数据段的首地址,由p_size给出数据段的长度。其联系如图7-1所示。;Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.; 3.共享正文段 为了管理好进程的共享正文段,UNIX在内存专门开辟了一个text结构区域,形成正文段表text[ ]。其中每一个text结构对应一个共享正文段,主要记录关于这个正文段的有关信息,比如共享正文段在磁盘对换区的地址(x_daddr),共享正文段在内存的地址(x_caddr),共享正文段的长度(x_size),共享本正文段的所有进程数目(x_count)等。 综上所述,一个进程的基本控制块proc结构、数据段(包含扩充控制块user结构)以及共享正文段三者之间的关系,可以用图7-2勾画出来。; 在那里一根虚线把图分成两个部分。标有①的部分表示proc[ ]表中进程的proc结构以及text[ ]表中的text结构总是常驻内存。通过proc结构中的p_addr,就能够得到该进程的数据段;通过p_textp,就能够得到该进程共享正文段的text结构,再由这个text结构中的x_caddr或x_daddr就能够得到共享正文段在内存或在磁盘对换区的位置。标有②的部分表示进程的数据段和共享正文段是非常驻内存部分,根据需要和可能,数据段和共享正文段会在内存和磁盘对换区之间换进和换出。另外,通过user结构中的u_procp,可以得到该进程的proc结构的位置。;Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.;7.1.2 UNIX的进程状态 UNIX进程在其生命期内,可以处于多种不同的状态,并记录在进程的proc结构中。图7-3给出了进程状态的变迁图。;Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.; 当父进程执行系统调用fork创建一个子进程时,被创建进程处于“创建”状态。如果能够为该进程分配到足够的内存空间,则它变为“在内存就绪” 状态;如果当前没有足够的内存空间,则它变为“换出并就绪”状态,被安置在磁盘的对换区。另外,原来已在内存的就绪进程,也可能因为内存紧张而被换出,同样成为“换出并就绪”状态。处于这两种状态的进程,从原则上说都是“就绪”的,都可以参与处理机调度。只是处于“换出并就绪”状态的进程被调度到时,由于它的非常驻内存部分并不在内存,因此要先被换进,才能够真正占用处理机投入运行。; 一个进程被调度到时,就成为“用户态运行”状态。进程在“用户态运行”状态下时,若程序中使用了系统调用或请求输入/输出,就会使进程从“用户态运行”状态改变为“核心态运行”状态。在“核心态运行”状态下的进程是不能被剥夺的。当系统调用执行完毕,就返回到“在内存就绪”状态。如果要等待输入/输出完成,则变成“在内存睡眠”状态;如果是调用了exit而进入“核心态运行”状态,则意味着进程运行结束,于是进入“僵死”状态,所占用的一切资源被释放。如果在“用户态运行”状态下,由于时间片到等原因,就会直接变成“在内存就绪”状态。; 一个进程处于“在内存睡眠”状态时,如果内存使用紧张,就会被从内存换出到磁盘的对换区。这时,该进程处于“睡眠并换出”状态。无论是处于“在内存睡眠”状态还是处于“睡眠并换出

文档评论(0)

ayangjiayu4 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档