- 1、本文档共228页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第02章计算机操作系统进程管理分析
新课导入 在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程。操作系统所具有的四大特征也都是基于进程而形成的,并可从进程的观点来研究操作系统。显然,在操作系统中,进程是一个极其重要的概念。因此,在这章中我们来学习进程。 求解:已知一个求值公式 (A×A+3B)/(B+5A) 若A和B已经赋值,试画出该公式求解的前驱图 What is a process? One program which has an independent function works on certain data set dynamically and allocate resources dynamically 一个具有一定独立功能的程序对某个数据集合上的一次动态执行过程和资源分配过程 编译程序上的两个进程 问题:如果系统中有N个进程, 运行进程最多几个,最少几个? 就绪进程最多几个,最少几个? 等待进程最多几个,最少几个? 问题:如果操作系统里面存在多个进程,一个转换发生,是否另一个转换一定发生?找出所有的可能。 解答: ? 就绪—运行: 不一定(系统中仅一个进程) 转换条件:被调度程序选中 ? 运行—就绪: 一定(讨论就绪队列的长度) 转换条件:时间片到时,或有更高优先级 的进程出现 ? 运行—等待: 不一定(考虑死锁) 转换条件:等待某事件发生 ? 等待—就绪: 不一定 转换条件:考虑就绪队列的长度 PCB的两个关键问题: (1)进程控制块的系统开销 PCB的总数问题?考虑到进程可能会创建子进程的情况。 (2)进程控制块的内存驻留方式 PCB全部装入内存?还是部分装入? PCB数据量太大,包含信息太多,因此有的系统只把必须的一些信息(CPU控制信息,进程描述信息,控制信息)放置在内存,其他的信息放置在外存。 2.2 进程控制 为了提供对PCB (和OS其它数据)的保护,通常将处理机的执行状态分为系统态和用户 态两种:系统态:又称作特权方式,内核方式, 管理方式,控制方式.用户态:通常用户程序运 行在用户态.有利于系统程序和用户程序的区分,但是牺牲了系统开销。为什么说牺牲了系统开销? 创建原语流图 创建原语 void Create(n,S0,P0,M0,R0,acc) { i = getinternalname(n); id (i) = n; priority(i) = P0; cpupstate(i) = S0; mainstore(i) = M0; resources(i) = R0; status(i) = “readys”; sdata(i) = RL; parent(i) =* progeny(i) = NULL; insert(progeny (*), i); set accounting data insert (RL, i ); } 图 撤消原语流图 图 唤醒原语 小结 操作系统的顺序进程和并发进程的各自特点 (1) 顺序性 1) 间断性 (2) 封闭性 2) 失去封闭性 (3) 可再现性 3) 不可再现性 进程基本概念 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位 进程的三个基本状态及转换 1) 就绪(Ready)状态 2) 执行状态 3) 阻塞状态 进程控制 并发引起的操作系统的改变 操作系统必须记住各种活跃的进程 必须为每个进程分配和释放各种资源 保护每个进程的数据和物理资源 进程的结果必须与执行速度无关 例1:两个进程对同一变量count访问和修改, P1: count+=1; P2: count-=1; 若count = 5。 P1: R1 = count; R1 = R1+1; count = R1; P2: R2 = count; R2 = R2 - 1 ; count = R2; 若顺序执行P1、P2,则count = 5。 若并发执行,则count=4?6? 并行语句记号 可以用语句 cobegin S1;S2;… ;Sn ; coend 来表示语句S1,S2,…,Sn可以并发执行。 Si(i=1,2,3,...,n)表示n个语句(程序段),这n个语句用cobegin和coend括起来表示这n个语句是可以
文档评论(0)