1UNIX操作系统的历史和基本结构.ppt

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

第九章 UNIX操作系统 ;图9-1 UNIX的发展历史;图9-2 UNIX操作系统的基本结构 ;§2 系统活动与系统调用 ;图9-3 系统调用是用户态程序与系统内核的接口;§3 进 程 管 理;3.2 进程映象和进程结构 ; (1)进程控制块PCB 在UNIX中可以包括两部分信息。一部分是不管进程是否正在处理机上运行,系统都需要查询和修改的一些控制信息,这部分信息就是proc数据结构, 可称其为进程基本控制块, 另一部分则相反,当进程不在处理机上运行时, 系统不会对这部分信息进行查询和处理,这部分信息就构成了另外一个称为进程扩充控制块的user数据结构。 (2)共享正文段 进程执行的程序若用纯代码形式的程序和常数编写,则可为若干个进程共享执行,构成共享正文段。 (3)数据段 进程执行程序时用到的数据构成数据段。 (4)工作区(即栈区) 进程在核心态下运行时的工作区为核心栈,在用户态下运行的工作区为用户栈。;图9-5 4.3BSD UNIX进程结构 ;表9-1 进程的proc结构 ;3.3 进程状态 ;图9-6 进程状态的变迁 ; fork-建立一个子进程,其主要任务是建立进程映象。 swtch-其主要功能是选择一个处于SRUN可运行状态、映象在内存、并且优先级最高的进程,准备将处理机占用权交给它。 exit-一个进程在执行结束时可调用exit使自己终止,同时通知父进程。 wakeup-其功能是扫描整个proc表,把同一等待原因上的所有进程唤醒, 使它们变为SRUN可运行状态。 sleep-它可使当前执行的进程放弃处理机,变成等待睡眠状态。 stop-调用stop使处于执行状态的进程进入暂停状态。 setrun-其主要功能是激活处于SSTOP暂停状态的进程置为SRUN可运行状态。 ;;3.4 进程环境切换及进程调度 ; sleep( )将按下列步骤进行操作: (1)提高处理器优先级,以防止可能产生进程状态变迁的那些中断; (2) 确定该进程应进入的睡眠队列; (3) 设置进程优先级作为该进程唤醒时的优先级; (4) 把进程放入上述选中的睡眠队列的末端(见图9-7(b)); (5) 调用swtch( )以请求调度一个新进程。 ; swtch( )将按下列步骤进行操作: (1) 寻找一个非空运行队列; (2) 如果有一个非空运行队列,则取出该队列的第1个进程(见图9-7(a)); (3) 设置切换标志; (4) 调用resume( )使新进程执行。 ; 一个进程的调度优先级直接由proc结构中的p-cpu和p-nice两个数值决定。P-cpu提供了进程最近使用CPU的估算值。P-nice值是用户可设置的加权因子,数值范围在-20到20之间,p-nice的正常值是0,负值增大一个进程的优先级,正值则减小进程的优先级。 VAX机每隔40 s按下述的等式计算一次优先级值,以进行进程的调度: ;3.5 进程的创建及终止 ; 进程可以通过exit系统调用而自愿终止, 也可以由于一个信号而不自愿终止。 在这两种情况中,进程终止都将产生一个状态标识码返回给终止进程的父进程。在内核中,一个进程通过调用exit( )终止时,首先要按下列步骤清除该进程在核心态下的执行状态: (1) 取消任一正在进行的计时器; (2) 释放虚存资源; (3) 关闭所有打开的文件; (4) 处理所有停止的或被跟踪的子进程。 ;3.6 进程通讯 ;图9-8 管套模型 ;§4 存 储 管 理 ;2. 系统地址转换 ;图9-10 系统虚地址转换 ;3. 用户地址转换 ;4.2 请页系统 ;2 存储管理程序 ; 内存还可以通过vmemall( )来分配,它与memall( )的区别:若没有足够内存可用时memall( )返回失败,而vmemall( )则等待内存被释放。 释放内存的程序也有两个:memfree( )回收分配给一个虚地址空间的所有内存, 它假定所有的页都在内存;而vmemfree( )只回收一个虚地址范围内在内存的那些页,忽略不在内存的页。 ; 缺页处理将执行pagein( )程序,它负责所有的缺页服务。每次调用pagein( ) 时要给出产生

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档