操作系统第二章作业讲解
操作系统 第2章
S3
(a) 程序的顺序执行
(b) 三条语句的顺序执行
图 2-1
程序的顺序执行
第二章 进 程 管 理 2. 程序顺序执行时的特征 (1) 顺序性:处理机的操作严格按照程序所规定的顺序 执行,即每一操作必须在上一个操作结束之后开始。 (2) 封闭性:程序是在封闭的环境下执行的,即程序运 行时独占全机资源,资源的状态(除初始状态外)只有本程序 才能改变它。程序一旦开始执行,其执行结果不受外界因素 影响。 (3) 可再现性:只要程序执行时的环境和初始条件相同, 当程序重复执行时,不论它是从头到尾不停顿地执行,还是 “停停走走”地执行,都将获得相同的结果。 程序顺序执行时的特性,为程序员检测和校正程序的错 误带来了很大的方便。
第二章 进 程 管 理
就绪 时间片完 I/O 完成 进程调度
阻塞
I/O 请求
执行
图2-5 进程的三种基本状态及其转换
第二章 进 程 管 理 3. 挂起状态 1) 引入挂起状态的原因
在不少系统中进程只有上述三种状态,但在另一些系统中,
又增加了一些新状态,最重要的是挂起状态。引入挂起状态的 原因有: (1) 终端用户的请求。当终端用户在自己的程序运行期间 发现有可疑问题时,希望暂时使自己的程序静止下来。亦即,
第二章 进 程 管 理 2) 执行状态 进程已获得CPU,其程序正在执行。在单处理机系统中, 只有一个进程处于执行状态; 在多处理机系统中,则有多个 进程处于执行状态。 3) 阻塞状态 正在执行的进程由于发生某事件而暂时无法继续执行时, 便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把 这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。 致使进程阻塞的典型事件有:请求I/O,申请缓冲空间等。通 常将这种处于阻塞状态的进程也排成一个队列。有的系统则根 据阻塞原因的不同而把处于阻塞状态的进程排成多个队列。
操作系统第二章作业
作业
到 达 时 间
所需CPU时间
已等待时间
响应比
1 2
8.8 9.0
1.5
完成时CPU时间为9.9 0.4
3
9.5
1.0
解:三个作业是在9.5时全部已经到达。这时它们各自的响应 比如下: 作业1的响应比 =(9.5 – 8.8)/ 1.5 = 0.46 作业2的响应比 =(9.5 – 9.0)/ 0.4 = 1.25 作业3的响应比 =(9.5 – 9.5)/ 1.0 = 0 因此,最先应该调度作业2运行,因为它的响应比最高。
所需CPU时 间
进入时间 0.0 9.0 8.0
完成时间 8.0 13.0 9.0
周转时间 8.0 12.6 8.0
1 2 3
0.0 0.4 1.0
8 4 1
平均周转时间:(8.0+8.0+12.6)/ 3=9.53
3)更好的调度算法
作 业 到 达 时 间 所需CPU时 间 进入时间 6.0 2.0 1.0 完成时间 14.0 6.0 2.0 周转时间 14.0 5.6 1.0
1.5 0.4 1.0
11.4
12.4
2.9
各自的周转时间为:作业1为2.6;作业2为0.9 ;作业3为2.9。
1)先来先服务
作 业 到 达 时 间 所需CPU时 间(分钟) 进入时间 9:00 完成时间 10:10 周转时间 70(分钟)
1 2 3 4
9:00 9:40 9:50 10:10
70 30 10 5
10:10
10:40 10:50
10:40
10:50 10:55
60(分钟)
60(分钟) 45(分钟)
调度顺序是:1->2->3->4。 平均周转时间:(70+60+60+45)/ 4=58.75
操作系统 第二章1_图文
动态性: 一次执行过程,有一定的生命周期
并发性:多个进程实体同存于内存中,且能在一 段时间内同时运行(并发执行)
独立性: 独立运行、独立分配资源、独立接受调 度
异步性:各进程按各自独立的、不可预知的速度
向前推进
Operating System
2021/2/1
Page 33
进程的描述
进程的定义与特征 进程的状态及转换 进程控制块
2. 剧本
演出
3. 菜谱
烹饪
Operating System
2021/2/1
Page 30
进程与程序的区别
程序是有序指令的集合,是一个静态概念,可以作为程序 文件被长久保存,反复使用。
进程是一次执行过程,一个动态的概念,具有生命期, 可创建和撤销。
进程是一个独立的运行单位,可与其他进程并行(或并发) 运行,而程序不能。
进程是资源分配和处理机调度的基本单位。
进程与程序的组成不同:进程的组成包括程序、数据和进 程控制块(即进程状态信息)。
进程与程序的对应关系:通过多次执行,一个程序可对应 多个进程;通过调用关系,一个进程可包括多个程序
Operating System
2021/2/1
Page 32
进程的特征
结构特征:程序段、数据段和PCB三部分构成进 程实体;进程的创建与撤消就是PCB的创建与撤 消
程序的顺序执行
Operating System
2021/2/1
Page 11
程序顺序执行
顺序执行的特征
❖ 顺序性:一个操作完成后开始下一个操作 ❖ 封闭性:独占资源,资源的状态只由该程序决定,
执行结果不受外界因素影响 ❖ 可再现性:重复执行时,初始条件相同则结果相
完整版操作系统第二章课后
第二章进度管理2. 试画出下面 4 条语句的前趋图 :S : a:=x+y;1S1S : b:=z+1;2S3S4 S3: c:=a-b;S4S : w:=c+1;23.为什么程序并发执行会产生中止性特色?程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进度之间,形成了相互限制的关系,从而也就使得进度在执行期间出现中止性。
4.程序并发执行时为什么会失去封闭性和可再现性?由于程序并发执行时,是多个程序共享系统中的各种资源,所以这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。
而程序一旦失去了封闭性也会致使其再失去可再现性。
5. 在操作系统中为什么要引入进度看法?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进度看法。
影响 : 使程序的并发执行得以实行。
6. 试从动向性,并发性和独立性上比较进度和程序?a. 动向性是进度最基本的特色,可表现为由创办而产生,由调换而执行,因得不到资源而暂停执行,以及由撤掉而消亡,所以进度由必然的生命期;而程序可是一组有序指令的会集,是静态实体。
b. 并发性是进度的重要特色,同时也是OS 的重要特色。
引入进度的目的正是为了使其程序能和其他建立了进度的程序并发执行,而程序自己是不能够并发执行的。
c. 独立性是指进度实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调换的基本单位。
而对于未建立任何进度的程序,都不能够作为一个独立的单位来运行。
7.试说明 PCB 的作用 ?为什么说 PCB 是进度存在的唯一标志 ?a. PCB是进度实体的一部分,是操作系统中最重要的记录型数据结构。
PCB中记录了操作系统所需的用于描述进度情况及控制进度运行所需的全部信息。
所以它的作用是使一个在多道程序环境下不能够独立运行的程序(含数据 ),成为一个能独立运行的基本单位,一个能和其他进度并发执行的进度。
操作系统 第二章作业本(含答案)
第二章作业第一次作业:1.进程有哪三种基本状态?进程在三种基本状态之间转换的典型原因是什么?答:三种基本状态:就绪状态、执行状态、阻塞状态。
(1)就绪状态→执行状态:进程分配到CPU资源(进程调度);(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成2.在Linux系统中运行下面程序,最多可产生多少个进程?画出进程家族树。
main(){fork();fork();fork();}答:最多可以产生7个进程。
其家族树为:3.试从动态性、并发性和独立性上比较进程和程序。
答:1)动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的;2)并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身(没有建立PCB)是不能并发执行的;3)独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。
凡未建立PCB的程序,都不能作为一个独立的单位来运行。
4.分析下列代码的功能:答:sleep_on实现进程的睡眠过程;wake_up实现进程的唤醒过程。
第二次作业:1.同步机制应该遵循哪些基本准则?你认为整型信号量机制遵循了同步机制的哪些基本准则?答:同步机制应遵循四个基本准则:a. 空闲让进:当无进程处于临界区时,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
b. 忙则等待:当已有进程进入临界区时,其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
c. 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。
d. 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。
操作系统(软件)第二章作业答案
1、什么是中断?给出系统总体上的中断处理过程。
【解答】:所谓中断是指CPU在正常执行程序的过程中,由于某个外部或内部事件的作用,强迫CPU停止当前正在执行的程序,转去为该事件服务(称为中断服务),待服务结束后,又能自动返回到被中断的程序中继续执行。
CPU每执行完一条指令就去扫描中断寄存器,检查是否有中断发生,若没有中断就继续执行下条指令;若有中断发生就转去执行相应的中断处理程序。
中断处理过程可粗略的分为以下四个过程:①保护当前正在运行程序的现场;②分析是何种中断,以便转去执行相应的中断处理程序;③执行相应的中断处理程序;④恢复被中断程序的现场。
2、请给出进程与程序它们的区别和联系。
【解答】:1、进程是动态的程序是静态的。
程序是一组有序的指令集合,是一个静态的概念;进程则是程序及其数据在计算机上的一次执行是一个动态的集合。
2、一个进程可以执行多个程序;一个程序可被多个进程执行;3、程序可以长期保存,进程有从被创建到消亡的生命周期。
4、进程具有并发性,而程序具有顺序性;5、进程具有独立性,是资源分配调度的基本单位,而程序无此特性。
3、试说明进程在三个基本状态之间转换的典型原因.【解答】a. 处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变为执行状态.b. 当前进程因发生某事件而无法执行,如访问已被占用的临界资源,就会使进程由执行状态转变为阻塞状态.c. 当前进程因时间片用完而被暂停执行,该进程便由执行状态转变为就绪状态.4、什么是临界资源和临界区?【解答】:临界资源是一次仅允许一个进程访问的资源,例如打印机,共享的变量。
进程中访问临界资源的那段代码段称为临界区。
5、进程的互斥和同步有什么异同点?进程同步机制应遵循哪四个基本准则?【解答】:进程同步机制应遵循如下四个基本准则:空闲让进,以提高临界资源利用率,忙则等待,以保证临界资源互斥使用;让权等待,以提高cpu的利用率;有限等待,以免相关进程陷入“死等”。
周国运《操作系统》讲义[第2章2.6]
二、最短作业优先算法SJF(2)
• 例如,四个作业同时到达系统并立即进 入调度: 作业名 所需CPU时间 作业1 9 作业2 4 作业3 10 作业4 8 假设系统中没有其他作业,现实施 SJF 调度算法,
三、作业的生命周期
作业生命周期有4个状态(4个阶段):
• 输入状态:此时作业的信息正在从输 入设备上预输入。 • 后备状态:此时作业预输入结束但尚 未被创建进程(不能执行) • 执行状态:作业已经被选中并构成进 程去竞争处理器资源以获得运行。 • 完成状态:作业已经运行结束,正在 等待缓输出。
作业调度与进程调度的关系
2.6.4 作业调度算法
一、先来先服务算法FCFS(1)
(First Come First Served) • 按照作业进入系统的先后次序来挑选 作业,先进入系统的作业优先被挑选。 FCFS算法的优缺点: • 算法容易实现。但效率不高,只顾及 作业等候时间,没考虑作业要求服务时 间的长短。因此优待了长作业而不利于 短作业。
三、响应比最高者优先(HRRF)算法
HRRF(Highest Response Ratio First) • FCFS与SJF是片面的调度算法。FCFS 只考虑作业等候时间而忽视了作业的计 算时问,SJF只考虑用户估计的作业计 算时间而忽视了作业等待时间。 • HRRF是介乎这两者之间的折衷算法, 既考虑作业等待时间,又考虑作业的运 行时间,既照顾短作业又不使长作业的 等待时间过长,改进了调度性能。
操作系统(徐宗元主编)ppt第二章-第二部分解析
Windows2000的基元成分――对象-1
• Windows 2000中的实体,当数据或资源对用户态开放时, 或者当数据访问是共享的或受限制时,才使用对象。采 用对象方法表示的实体有文件、进程、线程、信号量、 互斥量、事件、计时器等。Windows 2000通过对象管理 器以一致的方法创建和管理所有的对象类型,对象管理 器代表应用程序负责创建和删除对象,并负责授权访问 对象的数据和服务。 • 每一个对象都有一个对象头和一个对象体。对象管理 器控制对象头,各执行体组件控制它们自己创建的对象 类型的对象体。 • 当进程通过名称来创建或打开一个对象时,它会收到一 个代表进程访问对象的句柄。所有用户态进程只有获得 了对象句柄之后才可以使用这个对象。句柄作为系统资 源的间接指针来使用,这种不直接的方式阻止了应用程 序对系统数据结构直接地随便操作。
4.Windows 2000的基元成分― ― 对象(object)、进程(process)、线程(Thread) 对象、进程、线程是Windows2000三个基元成 份,它们之间有互相交叉的关系。
• 对象是一个抽象的数据结构,在Windows2000中用以 表示广义的资源。它是构成OS的三个基元成份中非 活动的成份,对象是数据和有关操作的封装体,它 包装数据、数据的属性以及可以施加于数据的操作 等三个成份。具有相同特性的对象也可归为一个对 象类,在软件设计中定义了对象类(称为类Class), 而对象则是对象类一个具体实现的示例。对象作为 抽象数据而封装在其内部的操作函数所提供的操作 也给人活动成份的感觉,但是从操作系统这一角度 来认识,对象是构成操作系统的非活动成份。而进 程和线程则是构成OS的两个活动成份。
当一个线程调用CreateProcess时,系统就会创建 一个进程内核对象,为新进程创建一个虚拟地 址空间,并将可执行文件加载到该进程的地址 空间中。然后系统再为新进程的主线程创建一 个线程内核对象。通过执行启动代码,该主线 程便开始运行,它最终调用WinMain、 wWinMain、main或wmain函数。如果系统成功 地创建了新进程和主线程,该函数便返回 TRUE。
操作系统第2章
第 2 章 操作系统的用户界面
以下是一个Windows的批处理程序
• • • • • • • • • • • • @echo off @echo. @echo 更新程序为最新版本 @echo. @echo 拷贝ghftr到bin目录 copy ..\ghftr\bin\ghftr.exe bin\ copy ..\ghftr\bin\ghftr.ini bin\ @echo 拷贝hsee到bin目录 copy ..\hsee\hsee.bat bin\ copy ..\hsee\hsee.m bin\ @echo OK.所有文件更新完毕 pause
问题2:既然这样,计算机系统的安全如何保证?
黄志华制作 版权所有
第 2 章 操作系统的用户界面
§2.4 系统调用
安全问题:涉及计算机安全的指令(特权指令)都必 须在核心态执行。操作系统在计算机启动的时候取得 了计算机的控制权,使得用户代码只能在用户态执 行。如果用户代码中包含特权指令,用户代码中的特 权指令是不可能执行的。而用户涉及到计算机安全的 需求可以通过系统调用的方式来实现,系统调用的处 理过程包含了安全检查。
出过程由主机中的操作系统控制。操作系统在外存空间中划出一块空间称为 井。分为输入井和输出井。操作系统的输入程序管理作业的输入过程,输出 程序管理作业的输出过程。井空间由井管理程序负责管理。作业运行时从输 入井获取信息,输出信息输出到输出井。
黄志华制作 版权所有
第 2 章 操作系统的用户界面
§2.2 作业的建立 2 JCB的建立
§2.4 系统调用
有的cpu划分更细,如Intel系列CPU的划分如下
为表述方便,通常按两态划分来表述
黄志华制作 版权所有
操作系统第2章作业进程与线程
cycle receive,process,send end •输出模块P:
cycle receive,output end •然后使这三个程序模块并发执行。下图示: 程序并发执行时的前趋图:
•在该例中,存在以下前趋关系: •Ii→Ci, Ii→Ii+1, Ci→Pi, Ci→Ci+1 ,Pi→Pi+1 •而Ii+1,Ci及Pi-1是重叠的。亦即Ii+1,Ci以及Pi-1可 以并发执行。
④完成状态。 作业完成计算任务,结果由打印机
输出,最后由系统回收分配给它的全 部资源,准备退出系统时的作业状况。
2.2.2 作业描述 1.作业控制块JCB 为了管理和调度作业,系统为每个作 业设置了一个作业控制块JCB,它记录 该作业的有关信息。不同系统的JCB的 组成内容有所区别,下图给出了作业控 制块JCB的主要内容。
(1)作业调度 在多道程序设计系统中,系统可以同时
处理多个作业,系统要在许多作业中按一 定策略选取若干个作业,为它们分配必要 的资源,让它们能够同时执行,这就是作 业调度。被作业调度选中的作业在执行时 可共享系统资源。
2.1 作业管理 三、作业管理的基本功能
(2)作业控制 作业控制负责控制作业的输入、执行、
问题1:一个进程只有这两种状态吗?
一个进程的等待状态可以分为两种, 一种是等待CPU,叫就绪态,另一种 是等待I/O,叫阻塞态。
进程基本状态模型(三态模型)
(1)运行态(Running)
运行状态是指当前进程已分配到
CPU,它的程序正在处理机上执行时
的状态。处于这种状态的进程个数不
能大于CPU的数目。 运行 状态
操作系统第2章ppt课件
6
第二章 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人
进
程
管
理
2.1.3 程序的并发执行及其特征
1. 程序的并发执行
程序并发执行可分为两种:
• 多道程序系统的程序执行环境变化所引起的多道程序的并发 执行
由于资源有限,多道程序的并发执行总是伴随着资源的共享与 竞争,制约了各道程序的执行速度。
14
第二章 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人
进
程
管
理
例:若有两条语句c:=a-b和w:=c+1,判断它们是否 可以并发执行?
解:它们的“读集”和“写集”分别为
R(c:=a-b)={a,b};R(w:=c+1)={c} W(c:=a-b)={c} ; W(w:=c+1)={w} R(c:=a-b)∩W(w:=c+1)={Φ} R(w:=c+1)∩W(c:=a-b)={c} 所以:两条语句不能并发执行。
图 2-2 前趋图
5
第二章 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人
进
程
管
理
注意,前趋图中必须不存在循环。
如在图2-2(b)中的前趋关系:
S2→S3, S3→S2
图 2-2 前趋图
显然这种前驱关系是不可能满足的,S3的执行要依赖于S2的 执行结果,S2的执行结果又要依赖于S3的执行结果,这种程 序是不可能执行下去的。
4
第二章 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人
(完整版)操作系统第二章作业答案
第二章作业1.操作系统中为什么要引入进程的概念?为了实现并发进程中的合作和协调,以及保证系统的安全,操作系统在进程管理方面要做哪些工作?答:为了从变化角度动态地分析研究可以并发执行的程序,真实的反应系统的独立性、并发性、动态性和相互制约,操作系统中不得不引入进程的概念。
为了防止操作系统及其关键的数据结构如:PCB等,受到用户程序破坏,将处理机分为核心态和用户态。
对进程进行创建、撤销以及在某些进程状态之间的转换控制。
2.试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。
答:分为两种情况:(1):运行状态就绪状态:根据进程的自身的情况插入到就绪队列的适当位置,系统收回处理及转入进程调度程序重新进行调度。
(2):运行状态→阻塞状态:系统会调用进程调度程序重新选择一个进程投入运行。
3.现代操作系统一般都提供多任务的环境,是回答以下问题。
为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?答:系统必须建立PCB。
为支持进程的状态变迁,系统至少应该供哪些进程控制原语?答:阻塞、唤醒、挂起和激活原语。
当进程的状态变迁时,相应的数据结构发生变化吗?答:会根据状态的变迁发生相应的变化。
例如:将进程PCB中进程的状态从阻塞状态改为就绪状态,并将进程从阻塞队列摘下,投入到就绪队列中。
4.什么是进程控制块?从进程管理、中断处理、进程通信、文件管理、设备管理及存储管理的角度设计进程控制块应该包含的内容。
答:PCB:描述进程本身的特征、状态、调度信息以及对资源占有情况等的数据结构,是进程存在的唯一标识。
进程控制块所包含的内容:①进程信息描述;②CPU信息状态;③进程调度信息;④进程控制和资源占用信息。
5.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少?解:P=(10*10)/[(300+10)*10]=3.2%6.试述线程的特点及其与进程之间的关系。
计算机操作系统原理-第二章用户界面知识点汇总及习题
第二章用户界面2.1 知识点汇总1、作业及作业步图2-1 作业及作业步2、系统调用:用户程序中对操作系统的调用称为系统调用。
使用户程序通过简单的调用,来实现一些硬件相关,应用无关的工作,从而简化了用户程序。
独立程序:不需要操作系统帮助的程序(包括程序的启动和结束)非独立程序:需要操作系统帮助的程序图2-2 系统调用的执行过程系统调用的特点:(1)系统调用指令是由硬件决定的(即:CPU中的中断向量表)。
CPU的指令集中都有一条系统调用指令,又称访管指令但系统调用具体实现的功能由操作系统决定(即:操作系统中的,系统调用分支表,及系统调用代码)。
因此:同一种计算机上的不同操作系统,系统调用指令是相同的。
同一操作系统,在不同的计算机上,系统调用指令是不同的。
(2)系统调用是动态连接的静态连接:程序在编译时,将被调用的程序嵌入到自身中。
如:库函数调用动态连接:程序在执行的过程中,执行到调用指令时,才连接到被调用的程序并执行。
如:动态连接库(dynamic link library,DLL),系统调用。
由于操作系统是动态连接的,所以,缩短了用户程序,使用户程序和操作系统提供的系统调用功能相互独立。
(3)系统调用的调用地址和返回地址不是固定的。
系统调用的地址,由系统启动装载操作系统时,存放系统调用代码的位置决定,每次开机都可能存放在不同的位置上。
返回地址,由用户程序中系统调用指令的位置决定。
(4)安全接口在执行系统调用和从系统调用中返回时,要分别保存和恢复程序状态字PSW,并设置PSW中的系统态/用户态标志位,进行系统态和用户态的切换。
执行系统调用时,进入系统态。
从系统调用中返回用户程序时,进入用户态。
状态切换的目的:某些特权指令只能在系统态下执行。
一些地址,只能在系统态下访问。
从而限制了用户程序不能随意地进入操作系统区域,读写操作系统的内部代码,也限制了用户程序不能随意进入其它用户程序的区域。
中断:是指计算机在执行程序的过程中,当遇到需要立即处理的事件时,立即暂停当前正在运行的程序,转去执行有关服务程序,处理完后自动返回原程序。
操作系统第二章作业讲解
第二章习题讲解1、进程之间存在着哪几种制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)若干同学去图书馆借书;(2)两队举行篮球比赛;(3)流水线生产的各道工序;(4)商品生产和社会消费。
答:进程之间存在着直接制约与间接制约这两种制约关系,其中直接制约(同步)是由于进程间的相互合作而引起的,而间接制约(互斥)则是由于进程间共享临界资源而引起的。
(1)若干同学去图书馆借书,是间接制约,其中书是临界资源;(2)两队举行篮球比赛,是间接制约,其中蓝球是临界资源;(3)流水线生产的各道工序,是直接制约,各道工序间需要相互合作,每道工序的开始都依赖于前一道工序的完成;(4)商品生产和社会消费,是直接制约,两者也需要相互合作:商品生产出来后才可以被消费;商品被消费后才需要再生产。
2、试写出相应的程序来描述下图所示的前趋图var a,b,c,d,e,f:semaphore:=0,0,0,0,0,0;begin S1; signal(a); signal(b); signal(c); end;begin wait(a); S2; end;begin wait(b); S3; signal(d); end;begin wait(c); S4; end;begin wait(d); S5; signal(e); signal(f); end;begin wait(e); S6; end;begin wait(f); S7; end;3、已知一个求值公式(A2+3B)/(B+5A),若A、B已赋值,试画出该公式求值过程的前趋图,并使用信号量描述这些前趋关系。
答:根据求值公式,假设:S1: X1=A*AS2: X2=3*BS3: X3=5*AS4: X4=X1+X2S5: X5=B+X3S6: X6=X4/X5var a,b,c,d,e:semaphore:=0,0,0,0,0;begin S1; signal(a); end;begin S2; signal(b); end;begin S3; signal(c); end;begin wait(a); wait(b); S4; signal(d); endbegin wait(c); S5; signal(e); endbegin wait(d); wait(e); S6; end4、桌上有一只能容纳一个水果的盘子;爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果,1)试用信号量实现他们的同步关系;2)如果有两个家庭的爸爸、妈妈、儿子、女儿和二只盘子呢?会需要专门的实现吗?var empty,apple,orange:semaphore:= 1,0,0;说明:empty与apple表示盘子为空与盘子中放入了苹果,用于表示爸爸与女儿间的同步关系;empty与orange表示盘子为空与盘子中放入了桔子,用于表示妈妈与儿子间的同步关系;var mutex,empty,apple,orange:semaphore:=1,2,0,0;dish: array[0,1] of fruit;wait(empty);wait(mutex);if dish[in]==apple or dish[in]==orange thenin:=(in+1) mod 2;disk[in]:=orange;in:=(in+1) mod 2;signal(mutex);signal(orange);Until falseendwait(mutex);if dish[out]==apple thenout:=(out+1) mod 2;get an orange from dish[out];out:=(out+1) mod 2;signal(mutex);signal(empty);Eat an apple;Until falseend5、试用信号量实现课件92页,司机与售票员进程的同步关系var stop, door :semaphore:=0,0;driver:beginrepeatdrive a bus;arrive at bus station;signal(stop);rest;wait(door);Until falseend conductor:begin repeatsell tickets;wait(stop);Open the door;Close the doorsignal(door); Until falseend6、试用信号量解决读者—写者问题,使得写者与读者优先级根据到达顺序确定。
《操作系统第二章》PPT课件
• 系统调用的处理过程
• 为执行系统调用命令作准备。其主要工作是把用户程序的 “现场”保留起来,并把系统调用命令的编号等参数放入 约定的存储单元。访管指令有“参数区”、“参数”和 “操作数”组成。“操作数”用来表示请求操作系统所要 干的工作,并说明是否要有参数区和具体参数。
•例 – DOS:库函数,…… – Windows:API,……
• 系统调用的分类 – 设备管理 – 文件管理 – 进程管理 – 进程通信 – 存储管理
• 调用中的几个概念 – 陷入(访管)指令—把由于系统调用引起的处理机中断的指令称 为陷入(访管)指令。
– 广义指令(或称管理程序调用)—利用陷入指令来实现特殊过程调 用的指令称为广义指令。是通过执行相应的程序模块来实现的, 它是机器指令的扩充。采用访管方式来实现。通过产生一个访管 中断,使处理机由目态(用户态)转为管态(系统态)。(当中 央处理器处于目态时不允许执行特殊指令;而处于管态时可这些 包括特殊指令在内的一切机器指令)
• 命令调用 • 系统调用 • 用户接口的发展
命令调用方式
• 命令形式 – 内部命令
• 系统启动时与操作系统一起装入内存——OS的一部分 •例
– DOS:Type,Dir,copy,…… – Windows:资源管理器中的菜单、按钮,…… – 外部命令
• 以文件形式存放,调用时装入内存 •例
– DOS:Edit,…… – Windows:桌面上的图标,快捷方式(图标),……
直接耦合系统
SPOOLING方式
• 命令分类 – 环境设置 – 执行权限管理 – 系统管理 – 文件管理 – 执行管理 – 通信 – 资源要求
操纵系统第二版第二章课后知识题目解析
第二章进程和线程作业答案1,2,4,6,7,10,11,12,14, 211.在操作系统中为什么要引入进程概念?它与程序的差别和关系是怎样的?答:由于多道程序的并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
用程序这个静态概念已经不能如实反映程序并发执行过程中的这些特征。
为此,人们引入“进程(Process)”这一概念来描述程序动态执行过程的性质。
进程和程序是两个完全不同的概念。
进程与程序的主要区别:进程和程序之间存在密切的关系:进程的功能是通过程序的运行得以实现的,进程活动的主体是程序,进程不能脱离开具体程序而独立存在。
2. PCB 的作用是什么?它是怎样描述进程的动态性质的? 答:PCB 是进程组成中最关键的部分。
每个进程有惟一的进程控制块;操作系统根据PCB 对进程实施控制和管理,进程的动态、并发特征是利用PCB 表现出来的;PCB 是进程存在的唯一标志。
PCB 中有表明进程状态的信息,该进程的状态包括运行态、就绪态和阻塞态,它利用状态信息来描述进程的动态性质。
4. 用如图2-26所示的进程状态转换图能够说明有关处理机的大量内容。
试回答:① 什么事件引起每次显著的状态变迁?② 下述状态变迁因果关系能否发生?为什么?(A ) 2→1 (B )3→2 (C )4→1答:(1)就绪→运行:CPU空闲,就绪态进程被调度程序选中运行→阻塞:运行态进程因某种条件未满足而放弃CPU的占用。
阻塞→就绪:阻塞态进程所等待的事件发生了。
运行→就绪:正在运行的进程用完了本次分配给它的时间片(2)下述状态变迁(A)2→1,可以。
运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。
(B)3→2,不可以。
任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再变为就绪态。
(C)4→1,可以。
操作系统第2章作业讲解
参考解法:规定先申请刀,再申请叉。描述如下: Var fork1,fork2,knife1, knife2 :semaphore:=1,1,1,1; Begin parbegin process A: begin repeat wait(knife1); wait(fork1); eat; signal(knife1); signal(fork1); thinking; until false; end
Var SA,SB,mutex:semaphore :=1,1,1; CountA,countB:integer :=0,0: begin parbegin process A: begin wait(SA); if(countA=0) then wait(mutex);
countA:=countA+1; signal(SA); 过独木桥; 过独木桥; wait(SA); countA:=countA-1; if (countA=0) then signal(mutex); signa(SA); end;
process B: begin wait(SB); if(countB=0) then wait(mutex); countB:=countB+1; signal(SB); ……………… 过独木桥; 过独木桥;
……………… wait(SB); countB:=countB-1; if (countB=0) then signal(mutex); signa(SB); end parend end
作业讲解 1.PA、PB、PC三进程共享两个缓冲区,相互合作。
get buffer1 由上图可见,系统可设3个进程:输入进程、复制进程、 打印进程;分别用进程R、进程C、进程P来表示。 •这些进程之间的相互制约关系: R受C的约束;C受R、P的约束;P受C的约束。 •设4个信号量:S1=1,S2=0,S3=1,S4=0 (有几个制约 设几个信号量,信号量的初值根据资源是否可以用设置)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统第二章作业讲解第二章习题讲解1、进程之间存在着哪几种制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?(1)若干同学去图书馆借书;(2)两队举行篮球比赛;(3)流水线生产的各道工序;(4)商品生产和社会消费。
答:进程之间存在着直接制约与间接制约这两种制约关系,其中直接制约(同步)是由于进程间的相互合作而引起的,而间接制约(互斥)则是由于进程间共享临界资源而引起的。
(1)若干同学去图书馆借书,是间接制约,其中书是临界资源;(2)两队举行篮球比赛,是间接制约,其中蓝球是临界资源;(3)流水线生产的各道工序,是直接制约,各道工序间需要相互合作,每道工序的开始都依赖于前一道工序的完成;(4)商品生产和社会消费,是直接制约,两者也需要相互合作:商品生产出来后才可以被消费;商品被消费后才需要再生产。
2、试写出相应的程序来描述下图所示的前趋图vara,b,c,d,e,f:semaphore:=0,0,0,0,0,0;begin S1; signal(a); signal(b);signal(c); end;begin wait(a); S2; end;begin wait(b); S3; signal(d); end; begin wait(c); S4; end;begin wait(d); S5; signal(e); signal(f); end; begin wait(e); S6; end;begin wait(f); S7; end;3、已知一个求值公式(A2+3B)/(B+5A),若A、B已赋值,试画出该公式求值过程的前趋图,并使用信号量描述这些前趋关系。
答:根据求值公式,假设:S1: X1=A*AS2: X2=3*BS3: X3=5*AS4: X4=X1+X2S5: X5=B+X3S6: X6=X4/X5var a,b,c,d,e:semaphore:=0,0,0,0,0;begin S1; signal(a); end;begin S2; signal(b); end;begin S3; signal(c); end;begin wait(a); wait(b); S4; signal(d); endbegin wait(c); S5; signal(e); endbegin wait(d); wait(e); S6; end4、桌上有一只能容纳一个水果的盘子;爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果,1)试用信号量实现他们的同步关系;2)如果有两个家庭的爸爸、妈妈、儿子、女儿和二只盘子呢?会需要专门的实现吗?var empty,apple,orange:semaphore:= 1,0,0;说明:empty与apple表示盘子为空与盘子中放入了苹果,用于表示爸爸与女儿间的同步关系;empty与orange表示盘子为空与盘子中放入了桔子,用于表示妈妈与儿子间的同步关系;答案:1)使用记录型信号量father:beginrepeatproducer an apple;wait(empty);Put an apple to the dish;signal(apple);Until falseend daughter:beginrepeatwait(apple);Get an apple from dish;signal(empty);Eat an apple; Until falseendmother:beginrepeatproducer an orange;wait(empty);Put an orange to the dish;signal(orange); Until falseend son:beginrepeatwait(orange);Get an orange from dish;signal(empty);Eat an orange; Until falseend2)使用记录型信号量varmutex,empty,apple,orange:semaphore:=1,2,0,0;dish: array[0,1] of fruit;in, out:integer:= 0,0;father:beginrepeatproducer an apple;wait(empty);wait(mutex);if dish[in]==apple or dish[in]==orange thenin:=(in+1) mod 2;disk[in]:=apple;in:=(in+1) mod 2;signal(mutex);signal(apple);Until falseend daughter:begin repeatwait(apple);wait(mutex);ifdish[out]==orange thenout:=(out+1) mod 2;get an apple from dish[out];out:=(out+1) mod 2;signal(mutex);signal(empty);Eat an apple; Until falseEndmother:beginrepeatproducer an orange;wait(empty);wait(mutex);if dish[in]==apple or dish[in]==orange thenin:=(in+1) mod 2;disk[in]:=orange;in:=(in+1) mod 2;signal(mutex);signal(orange);Until falseend son:beginrepeatwait(orange);wait(mutex);ifdish[out]==apple thenout:=(out+1) mod 2;get an orange from dish[out];out:=(out+1) mod 2;signal(mutex);signal(empty);Eat an apple; Until falseend5、试用信号量实现课件92页,司机与售票员进程的同步关系var stop, door :semaphore:=0,0;driver:beginrepeatdrive a bus; arrive at bus station; signal(stop);rest;wait(door);Until falseend conductor:begin repeatsell tickets;wait(stop);Open the door;Close the doorsignal(door); Until falseend6、试用信号量解决读者—写者问题,使得写者与读者优先级根据到达顺序确定。
1)典型错误代码讲解:不增加任何信号量Var rmutex, wmutex:semaphore∶=1,1;Readcount:integer∶=0;beginparbeginReader:beginrepeatwait(rmutex);if Readcount=0 then wait(wmutex);Readcount∶= Readcount+1;signal(rmutex);…perform read operation;…wait(rmutex);Readcount∶= Readcount-1;if Readcount=0 then signal(wmutex);signal(rmutex);until false;endwriter:beginrepeatif readcount>0 then wait(rumtex);wait(wmutex);perform write operation;signal(rmutex);signal(wmutex);until false;endparendend到达序列:R1, R2, W1, R3, R4, W2进程行为rmutex=1wmutex=1Readcount=0状态备注R 1 到达rmutex=0rmutex=1wmutex=0Readcount=1执行/就绪第1位读者R 2 到达rmutex=0rmutex=1Readcount=2执行/就绪W 1 到达rmutex=0 阻塞1阻塞Readcount>0R 3 到达阻塞1 阻塞rmutex=0R到阻塞2 阻rmutex=04 达塞W 2 到达阻塞3 阻塞rmutex=0R 1 离开阻塞4 阻塞rmutex=0R 2 离开阻塞5 阻塞rmutex=0产生死锁2)学习指导与题解上的解题思路答:为使写者优先,可在原来的读优先算法基础上增加一个初值为1的信号量S,使得当至少有一个写者准备访问共享对象时,它可使后续的读者进程等待写完成。
初值为0的整型变量writecount用来对写者进行计数;初值为1 的互斥信号量mutex用来实现多个写者对writecount的互斥访问。
读者与写者进程算法描述如下:var S, mutex, rmutex, wmutex: semaphore:=1,1, 1,1;writecount, readcount: integer:=0,0;reader: beginrepeatwait(S);wait(rmutex);if readcount=0 then wait(wmutex);readcount:=readcount+1;signal(rmutex);signal(S);perform read operation;wait(rmutex);readcount:=readcount-1;if readcount=0 then signal(wmutex);signal(rmutex);until falseendwriter: beginrepeatwait(mutex);if writecount=0 then wait(S);writecount:=writecount+1;signal(mutex);wait(wmutex);perform write operation;signal(wmutex);wait(mutex);writecount:=writecount-1;if writecount=0 then signal(S);signal(mutex);until falseend到达序列:R1, R2, W1, R3, R4, W23)改写上述代码,真正实现读写平等策略var S, rmutex, wmutex: semaphore:=1, 1,1;readcount: integer:= 0;reader: beginrepeatwait(S);wait(rmutex);if readcount=0 then wait(wmutex);readcount:=readcount+1;signal(rmutex);signal(S);perform read operation;wait(rmutex);readcount:=readcount-1;if readcount=0 then signal(wmutex);signal(rmutex);until falseendwriter: beginrepeatwait(S);wait(wmutex);perform write operation;signal(wmutex);signal(S);until falseend到达序列:R1, R2, W1, R3, R4, W2进程行为S=1rmutex=1wmutex=1readcount=备注R1 到达S=0 rmutex=第一S= 1 0rmutex=1wmutex=readcount=1个读者执行/就绪R2 到达S=S=1rmutex=rmutex=1readcount=2执行/就绪W 1 到达S=0 阻塞1第一个写者R3 到达阻塞1R4 到达阻塞2W 2 到达阻塞3R1 离开rmutex=rmutex=1readcount=1R2 离开rmutex=rmutex=1wmutex=1readcount=负责唤醒W1W 1 被唤醒wmutex=执行/就绪W 1 离开S=1wmutex=1负责唤醒R37、试说明PCB的作用,为什么说PCB是进程存在的唯一标志?(课本第7题)答:进程控制块的作用,是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,即一个能与其他进程并发执行的进程。