




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第二章 进程(处理器)管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.6 线程 2 引言 l处理机管理是操作系统的基本管理功能之一,它所关心 的是处理机的分配问题。也就是说把CPU(中央处理 机)的使用权分给某个程序,通常把这个正准备进入内 存的程序称为作业,当这个作业进入内存后我们把它称 为进程。处理机管理分为作业管理和进程管理两个阶段 去实现处理机的分配,常常又把直接实行处理机时间分 配的进程调度工作作为处理机管理的主要内容。 l进程通常具有三种状态:运行状态(正在使用CPU) 、阻塞状态(等待输入/输出)和就绪状态(等待分配 CPU)。 3 1.程序的顺序执行 一个复杂的程序一般均含若干个程序段,并按一定先 后顺序执行,每个操作必须在下一个操作开始之前结束。 也即仅当前一个操作结束之后,后继操作才开始执行,此 即程序的顺序执行性。 例如一般程序包括输入(I)、计算(C)、输出(P)三部分,而 计算须在输入完成方可开始。 I1C1P1I2C2P2 2.1进程概念的引入-程序的顺序执行和并发执行 4 2.程序顺序执行时的特征 1) 顺序性: 处理机的操作是严格按照程序所规定的顺序 执行的,每一操作开始都不得先于前一操作 的结束。 2) 封闭性:程序一旦开始执行,其执行结果不受外界因 素影响。 3) 确定性、可再现性:程序重复执行将获得相同结果。 l程序的顺序执行:一个具有独立功能的程序独占处理机直 至得到最终结果的过程称为程序的顺序执行。 S1: a:=x+y; S2: b:=a-5;/s2必须是s1执行后再执行 S3: c:=b+1;/s3必须是s2执行后再执行 lS1 、S2、 S3必须按照顺序依次执行。 优点:有利于程序的编制和调试; 缺点:资源的独占性,使得系统利用率很低。 5 2.1.3 程序的并发执行及其特征 1.程序的并发执行 一组逻辑上相互独立的程序或程序段在执行过程中, 其执行时间在客观上相互重叠,即一个程序段的执行,尚 未结束,另一个程序段的执行已经开始的这种执行方式。 程序的并发执行可分为两种: (1) 在计算机系统支持并行操作时,如采用多道程序 设计技术,则内存中多道程序处于并发执行状态。 6 2.1.2程序间并发执行 I1 P3 输入输入 设备设备 处理机处理机 打印机打印机 t1t2t3t4t5 I2 C1 I3 C2 P1 C3 P2 由于多道程序中由于多道程序中I Ii+1 i+1、 、C C i i 与与P Pi-1 i-1之间不存在前趋关系, 之间不存在前趋关系, 程序之间可以并发执行程序之间可以并发执行 并发执行并发执行 后,系统后,系统 效率提高效率提高 并发执行并发执行 后,系统后,系统 效率提高效率提高 7 2.1.3 程序的并发执行及其特征 (2) 并发执行是在某道程序的几个程序段中包含着一部分 可以同时执行或顺序颠倒执行的代码. 如: read(a); read(b); 可以同时执行,也可颠倒次序执行。对于这样的语句, 同时执行不会改变顺序程序所具有的逻辑性质. 总结:一组在逻辑上互相独立的程序或程序段在执行过程 中其执行时间在客观上互相重叠,即一个程序的执行尚 未结束,另一个程序的执行已经开始的执行方式. 8 2.程序并发执行时的特征 1) 间断性:程序在并发执行时,由于它们共享资源或为完 成某一项任务而合作,致使在并发程序之间存在相互制约 的关系。 2) 失去封闭性:程序在并发执行时,是多个程序共享系统 中的各种资源,因而这些资源的状态将由多个程序来改变 ,致使程序的运行失去了封闭性。 3) 不可再现性: 程序在并发执行时,由于失去了封闭性 ,也导致失去了可再现性。 9 例如:有两个循环程序A和B,它们共享一个变量N。程序A 每执行一次时都要做N:N1操作;程序B每执行一次时, 都要做print(N)操作,然后再将N置成“0”,程序A和B以不 同的速度运行。(假定某时刻变量N的值为n) (1)N:N1在print(N)和N:0之前,此时得到的N值 分别为: n1, n1, 0 (2)N:N1在print(N)和N:0之后,此时得到的N值 分别为: n, 0, 1 (3)N:N1在 print(N)和N:0之间,此时得到的N 值分别为: n, n1, 0 10 例:观察者/报告者 观察者: 报告者: begin begin repeat repeat wait a car go through delay a time N=N+1; Print N ; N=0 ; until until end end 初始N=n时不同执行序列: N=N+1; Print N; Print N ; Print N ; N=0 ; N=N+1 ; N=0 ; N=N+1 ; N=0 ; 结果各不相同: 打印n+1,N=0; 打印n,N=1;打印n ,N=0; 11 l程序的并发执行:人们在硬件上引入了通道和中断 技术,使得处理器和外部设备、外部设备和外部设 备之间可以并行工作。从而使系统的多个程序同时 活动,并由统一的操作系统来管理,这就是多道程 序系统。 l在单道系统中可以用程序代表顺序执行过程,但在多道系统 中,程序并行、制约等特征使程序这个静态的概念已不能描 述系统的运行情况了,为此操作系统引入了一个新的概念进 程。 12 2.1.4 进程的特征与状态 1.进程的定义和特征 进程:是指在系统中能独立运行并作为资源分配的基本 单位,是一个活动实体。 简单的理解为,进程是程序在数据集合上的一次运行 过程,是系统进行资源分配和调度的基本单位。 进程是一个动态的概念,是一个运行过程。它不同于程 序,但又依赖于程序。对不同的数据集合,依照一定的程 序运行处理的每一个过程是不同的进程。 13 进程的特征 1)结构特征 从结构上看,进程是由程序段、数据段及进程 控制块三部分组成。 2)动态性 程序是指令的集合,进程是指令的执行过程。 动态性是进程最基本的特征。 PCB 程序段(正文段 ) 数据段(数据集合) 14 3)并发性 这是指多个进程实体,同存于内存中,能在一段时间 内同时运行。并发性是进程的重要特征,同时也成为OS的 重要特征。引入进程的目的也是为了使该进程的程序能和 其它进程的程序并发执行。 4)独立性 进程实体是一个能独立运行的基本单位,同时也是系 统中独立获得资源和独立调度的基本单位。没有建立进程 的程序,不能作为一个独立的单位参加运行。 5)异步性 各进程按其各自独立的,不可预知的速度向前推进。 进程的特征 15 思考? 进程与程序的区别? 1 1)进程是程序的执行过程,是一个)进程是程序的执行过程,是一个动态的概念动态的概念 ;而程序是一组指令的有序集合,是一个;而程序是一组指令的有序集合,是一个静态静态 的概念的概念; 2 2)进程有一个生命周期,而)进程有一个生命周期,而程序是永久的程序是永久的; 3 3)通过多次执行,一个程序可对应多个进程;)通过多次执行,一个程序可对应多个进程; 4 4)通过调用关系,一个进程可包括多个程序;)通过调用关系,一个进程可包括多个程序; 5 5)进程由程序和数据组成。)进程由程序和数据组成。 16 2.进程的三种基本状态 1)就绪(Ready)状态 当进程已经分配到除CPU以外的所有必要的资源后,只 要能获得处理机,就可以立即执行。这时的进程的状态称 为就绪状态。 2)执行状态(Running)(运行状态) 指进程已获得处理机,其程序正在执行。在单处理机系 统中,只能有一个进程处于执行状态。(在多处理机中, 可能有多个进程处于执行状态。) 17 3)阻塞状态(Block) (等待状态) 进程因发生某个事件而暂停执行时的状态(如:请求 I/O、申请缓冲空间等),也就是说,进程受到阻塞,所以 称这种暂停状态为阻塞状态,有时也称“等待”状态或“睡眠 ”状态。 18 进程的特征与状态 处于就绪态进程:一般处于就绪态的进程按照一定的算法 (如先来的进程排在前面,或采用优先权高的进程排在前 面)排成一个就绪队列。 处于运行态进程:如系统有一个处理机,则在任何一时刻 ,最多只有一个进程处于运行态。 处于等待态进程:处于等待态的进程排在等待队列中。由 于等待事件原因不同,等待队列也按事件原因可分成几个 队列。 19 进程的基本状态转换 注意的三点: 1)进程从阻塞态到执行态,必须经过就绪态; 2)进程从执行态到阻塞态,一般由进程自己主动提出的; 3)一个进程由执行到就绪态总是由外界事件引起的,而不是该进程自己引 起的。 20 进程状态间的转换 就绪执行:调度 执行等待:等待某个事件发生而睡眠 等待就绪:因等待的事件结束而唤醒 执行就绪:时间片用完 练习: 1、如果系统中有n个进程,则就绪队列中进程的个数最多 为( )。 A、n+1 B、 n C、 n-1 D、1 2、设系统中有关n(n2)个进程,且当前不在执行进程调度 程序,试考虑下述四种情况: A、没有运行进程,有2个就绪进程,n个进程处于等待状态。 B、有1个运行进程,没有就绪进程,n-1个进程处于等待状态。 C、有1个运行进程,有1个就绪进程,n-2个进程处于等待状态。 D、有1个运行进程,n-1个就绪进程,没有进程处于等待状态。 上述情况中,不可能发生的情况是( )。 C A 21 【思考题】 1如果系统中有N个进程,运行的进程最多几个 ,最少几个;就绪进程最多几个最少几个;等 待进程最多几个,最少几个? 2. 有没有这样的状态转换,为什么? 等待运行; 就绪等待 3. 一个状态转换的发生,是否一定导致另一个 转换发生,列出所有的可能 22 1.进程控制块的作用 进程控制块是操作系统用于记录和刻画进程状态及 有关信息的数据结构。 进程控制块是进程存在的唯一标志,当系统或父进 程创建一个进程时,实际上就是为其建立一个进程控制 块。 进程控制块既能标识进程的存在,又能刻画出进程 的动态特征,它是一个进程仅有的被系统真正感知的部 分。对操作系统而言,所有PCB将构成并发执行控制和 维护系统工作的依据。 2.1.5进程控制块 23 PCB 程序段(正文段)数据段(数据集合) 处理机状态 进程调度信息 2.进程控制块中的信息 内/外部标识符 通用寄存器 指令计数器 程序状态字PSW 用户栈指针 进程状态 进程优先级 其它信息/事件 程序和数据的地址 进程同步和通信机制 PCB中的信息 进程标识符 进程控制信息 资源清单 链接指针 24 为了方便管理,把处于相同状态的进程链接在一 起,称为“进程队列”。 常用的组织方式有两种:链接方式(单/双向)、索引方式 。 3. 进程控制块的组织方式 1、链接方式 具有相同状态的PCB,用其中的链接字,链接成一个队 列。这样就可以形成就绪队列、若干个阻塞队列和空白队列 等。对其中的就绪队列常按照进程优先权的大小排列,把优 先权高的进程的PCB排在队列前面。 进程队列:不同状态进程分别组成就绪队列、 等待队列、空白队列。 25 执行指针 就绪队列指针 阻塞队列指针 空闲队列指针 PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 4 3 0 8 7 9 0 10 PCB链接队列示意图 26 (a)等待队列分开 PCB5 执行队列 就绪队列 阻塞队列1 阻塞队列2 队列表头 PCB8PCB1PCB4 PCB3PCB2 PCB7 27 (b)等待队列不分开 就绪队列 阻塞队列 PCB1 PCB7PCB2PCB3 PCB8 PCB4 28 队首指针 进程A进程B进程E 0 PCBAPCBBPCBE 单向链接 队首指针 0 0 PCBAPCBBPCBE 进程A 进程B进程E 双向链接 29 2.索引方式 系统根据所有进程的状态,建立几张索引表。 例如:就绪索引表、阻塞索引表。并把各索引表在 内存的首地址记录在内存中的一些专用单元中。每 个索引表的表目中,记录具有相同状态的某个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议中宅基地房屋分割、权益确认及财产分配协议
- 解除劳动合同协议书(简易版)4篇
- 冶炼工艺过程建模与仿真-洞察及研究
- 合作协议书样本5篇
- 工匠精神与冶炼技术进步-洞察及研究
- 招聘平台用户体验优化-第1篇-洞察及研究
- 妇女节竞赛试题及答案
- 基于区块链的数字签名技术的安全性分析-洞察及研究
- 2025年呼职入学教育考试试题及答案
- 路灯采购安装合同范本
- 安庆飞凯新材料有限公司6000吨-年光固化树脂及表面处理涂料项目环境影响报告书
- 月子会所运营方案
- 排污单位自行监测方案编制模板
- 工作安全分析JSA杜邦
- YY 1727-2020口腔黏膜渗出液人类免疫缺陷病毒抗体检测试剂盒(胶体金免疫层析法)
- 粘膜免疫系统概述
- 10室外配电线路工程定额套用及项目设置
- 钢板桩及支撑施工方案
- 急救中心急救站点建设标准
- 冷藏车保温箱冰排使用记录
- 精细化学品化学-课件
评论
0/150
提交评论