- 1、本文档共164页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统;上节回顾;第二章 进程管理 ;2.1 进程的基本概念; 2.程序顺序执行时的特征
(1)顺序性:处理机的操作严格按照程序所规定的顺序执行。
(2)封闭性:程序运行时独占全机资源,程序一旦开始执行,其执行结果不受外界因素影响。
(3)可再现性:只要程序执行时的环境和初始条件相同,都将获得相同的结果。
(不论它是从头到尾不停顿地执行,还是“停停走走”地执行); 2.1.2 前趋图 ;; 思考:下图是前趋图吗?;2.1.3程序的并发执行及其特征;对于具有下述四条语句的程序段:
S1:a : =x+2
S2:b:=y+4
S3:c:=a+b
S4:d:=c+b
可画出图2-4所示的前趋关系.; 2.程序并发执行时的特征 ;不可再现性例子:;程序A和B以不同的速度运行出现的情况:;2.1.4进程的特征与状态; 2)动态性
进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。
动态性表现:“它由创建而产生,由调度而执行,由撤消而消亡”。可见,进程实体有一定的生命期。
程序是一组有序指令的集合,其本身并不具有运动的含义,因而是静态的。
; 3)并发性
这是指多个进程实体同存于内存中,且能在一段时间内同时运行。
4)独立性
指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位.
5)异步性
指进程按各自独立的、不可预知的速度向前推进,或说进程实体按异步方式运行。;进程的定义 ; 2.进程的三种基本状态;进程的三种基本状态及其转换 ;3. 挂起状态 ; 2)进程状态的转换;4.创建状态和终止状态; 进程五状态转换图; 具有挂起状态的进程转换;2.1.5 进程控制块 ;OS是根据PCB来对并发执行的进程进行控制和管理的,如:
进程创建:分配进程控制块
进程调度:保存和读取进程控制块
进程撤销:回收进程控制块
;进程标识符信息
处理器状态信息
进程调度信息
进程控制信息; 2.进程控制块中的信息 ;2)处理机状态
处理机状态信息主要是由处理机的各种寄存器中的内容组成的。
①通用寄存器,又称为用户可视寄存器。
②指令计数器,其中存放了要访问的下一条指令的地址。
③程序状态字PSW,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等
④用户栈指针,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。; 3)进程调度信息
在PCB中还存放一些与进程调度和进程对换有关的信息。
①进程状态。指明进程的当前状态。
②进程优先级,一个整数。
③进程调度所需的其它信息。比如,进程已等待CPU的时间总和、进程已执行的时间总和等;
④事件。是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。 ;4)进程控制信息
①程序和数据的地址,是指进程的程序和数据所在的内存或外存地址。
②进程同步和通信机制,指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等。
③资源清单。进程所需的全部资源及已经分配到该进程的资源的清单;
④链接指针。本队列下一进程的PCB首地址。; 3.进程控制块的组织方式 ;链接方式;3.进程控制块的组织方式;索引方式;3.进程控制块的组织方式;3.进程控制块的组织方式;2.2进程控制 ;2.2.1 进程的创建 ;进程树;2.引起创建进程的事件;3.进程的创建;2.2.2进程的终止 ;3)外界干预:外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。
①操作员或操作系统干预。由于某种原因,例如,发生了死锁,由操作员或操作系统终止该进程;
②父进程请求终止该进程;
③当父进程终止时,OS也将他的所有子孙进程终止。
;2.进程的终止过程;2.2.3 进程的阻塞与唤醒; 2.进程阻塞过程;3.进程唤醒过程;2.2.4 进程的挂起与激活;2.进程的激活过程;2.3 进程同步 ;2.3.1 进程同步的基本概念 ; 4.同步机制应遵循的规则; 2.3.2信号量机制;2.记录型信号量 ;记录型信号量的wait(S)操作
procedure wait( S )
var S: semaphore;
begin
S.value:=S.value-1;
if S.value<0 then block(S.L);
end
// S.value<0,该类资源已经分配完毕,进程必须阻塞,放弃处理机,并插入信号量链表S.L中
区别: 整型信号量 s0 no op
;记录型信号量的signal(S)操作
文档评论(0)