搜档网
当前位置:搜档网 › 进程管理习题及答案

进程管理习题及答案

进程管理习题及答案
进程管理习题及答案

第二章进程管理习题及答案

一、填空题

1.进程的静态描述由三部分组成:① 、② 和③ 。

【答案】①PCB、②程序部分、③相关的数据结构集

【解析】PCB是系统感知进程的唯一实体。进程的程序部分描述了进程所要

完成的功能,而数据结构集是程序在执行时必不可少的工作区和操作对象。后两

部分是进程完成所需功能的物质基础。

2.进程存在的标志是。

【答案】进程控制块PCB

【解析】系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。

3.① 是现代操作系统的基本特征之一,为了更好地描述这一特征而

引入了

② 这一概念。

【答案】①程序的并发执行,②进程

【解析】程序的并发执行和资源共享是现代操行系统的基本特征。程序的并

发执行使程序失去了程序顺序执行时所具有的封闭性和可再现性。在程序并发执

行时,程序这个概念不能反映程序并发执行所具有的特性,所以引入进程概念来

描述程序并发执行所具有的特点。

4.给出用于进程控制的四种常见的原语① 、② 、③ 和④ 。【答案】①创建原语、②撤消原语、③阻塞原语、④唤醒原语

【解析】进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程

以及完成进程各状态间的转换,从而达到多个过程高效率地并行执行和协调,实

现资源共享的目的。把那些在管态下执行的具有特定功能的程序段称为原语。

5.进程被创建后,最初处于① 状态,然后经② 选中后进入③ 状态。

【答案】①就绪,②进程调度程序,③运行

【解析】进程的从无到有,从存在到消亡是由进程创建原语和撤消原语完成的。被创建的进程最初处于就绪状态,即该进程获得了除处理机以外的所有资源,处于准备执行的状态;从就绪状态到运行状态的转换是由进程调度程序来完成的。

6.进程调度的方式通常有① 和② 方式两种。

【答案】①可剥夺、②非剥夺

【解析】所谓可剥夺方式,是指就绪队列中一旦有优先级高于当前运行进程

的优先级的进程存在时,便立即发生进程调度,转让处理机。而非剥夺方式则是指:即使在就绪队列中存在有优先级高于当前运行进程的进程,当前进程仍将继

续占有处理机,直到该进程完成或某种事件发生(如I/O事件)让出处理机。

7.轮转法主要是用于① 的调度算法,它具有较好的② 时间,

且对每个进程来说都具有较好的③ 性。

【答案】①分时系统②响应③公平

【解析】所谓轮转调度算法,就是将CPU的处理时间分成固定的时间片,处

于就绪状态的进程按一定的方式(如先到先服务FCFS)排成一个队列,该队列

中的各进程按时间片轮流占用处理机。这种调度算法主要用于分时系统,因为,分时系统的主要目标就是要让每个用户都能快速地得到系统的服务,响应时间和公平的分配处理机就成为分时系统选择调度算法的主要指标。

8.一个进程的生命期可以划分为一组状态,一个进程可能具有① 基本状态。这几种状态是② 、③ 、④ 。

【答案】①三种,②运行状态,③就绪状态,④等待状态

【解析】在操作系统中,用状态来刻划进程的生存周期。当一个进程获得了除处理机以外的所有资源时,该进程处于就绪状态;当一个进程不但得到了其他资源而且正在处理机上运行时,该进程处于运行状态;而运行状态的进程因某事件发生(如申请I/O)便处于暂时等待状态。

二、单项选择题

1.在下列叙述中,错误的一条是。

(A)操作系统是用户与计算机之间的接口

(B)程序的并发执行,使程序失去了顺序执行时具有的封闭性和可再现性,程序与程序的执行不再一一对应

(C)进程从一个状态到另一个状态的转换,都是靠使用不同的原语来实现的

(D)在单CPU的系统中,任何时刻处于就绪状态的进程有多个,而且只有处于就绪状态的进程经调度程序选中后才可进入运行状态

【答案】(C)

【解析】从用户的角度看,操作系统是用户使用计算机的桥梁,用户通过操作系统的两类接口来达到操纵计算机的目的。叙述(A)正确。

选项(B)的叙述也是正确的,因为这正是引入进程概念的原因。

进程从一个状态到另一个状态的转换是一个非常复杂的过程,除了要使用不同的原语外,有时还要借助于硬件触发器才能完成。例如,UNIX系统中,从系统态到用户态的转换要借助硬件触发器。因此,叙述(C)错误。

处于就绪状态的进程已经获得了除CPU之外的所有资源,由于只有一个CPU,任何时刻就只能有一个进程获得CPU,而其他的就只能在就绪状态对应的队列上排队等待调度程序的调度。所以叙述(D)也正确。

2.根据服务对象不同,常用的单处理机OS可以分为如下三种类型:(l)允许多个用户在其终端上同时交互地使用计算机的OS称为,它通常采用策略为用户服务。

(2)允许用户把若干个作业提交计算机系统集中处理的OS,称为,衡量这种系统性能的一个主要指标是系统的。

(3)在的控制下,计算机系统能及时处理由过程控制反馈的数据并作出响应。设计这种系统时,首先考虑系统的。

(A)网络OS (B)分步式OS

(C)分时OS (D)时间片轮转

(E)单用户OS (F)批处理OS

(G)可靠性和灵活性(H)吞吐率

(I)优先权分配(J)实时性和可靠性

(K)短作业优先(L)实时OS

(M)用磁带的和不用磁带的作业搭配

【答案】(l)(C)、(D);(2)(F)、(H);(3)(L)、(J)

3.进程调度是从选择一个进程投入运行。

(A)就绪队列(B)等待队列

(C)作业后备队列(D)提交队列

【答案】(A)

【解析】处于就绪队列的进程是获得了除处理机以外的所有资源处于准备执行的状态。进程调度就是负责从就绪队列中挑选进程投入运行。

4.在下列叙述中,正确的一条是。

(A)分时系统中,时间片越小,响应时间越长

(B)多道程序的引入,主要是为了提高CPU及其它资源的利用率

(C)飞机票计票系统是分时系统

(D)PCB是进程存在的唯一标志,而程序是系统感知进程存在的唯一实体【答案】(B)

【解析】分时系统的响应时间T≈nq, n是用户数目,而 q是时间片。当在用户数目一定的情况下,时间片越小,响应时间越短。因此,选项(A)错误。

在单道程序环境中,系统的全部资源为一个作业所独占,如果该作业在进行输入或输出时,CPU仍然被它所占有,处于等待状态。由于CPU与外设处理速度上的差异,如果采用多道程序设计技术,当某个作业输入或输出时,CPU就可处理其他的作业,其它资源也是类似的。选项(B)正确。

飞机票订票系统是实时信息处理系统。所以,选项(C)错误。

PCB是进程存在的唯一标志,也是系统感知进程存在的唯一实体。而进程的程序部分描述了进程所要完成的功能。选项(D)错误。

5.一个进程被唤醒,意味着。

(A)该进程重新占有了CPU (B)进程状态变为就绪

(C)它的优先权变为最大(D)其PCB移至就绪队列的队首

【答案】(B)

【解析】进程被唤醒是进入就绪队列。是否插入到就绪队列的什么地方,取决于就绪的管理方法和进程调度的算法。如果进程调度是最高优先数优先,该进程按优先数插入该队列中;如果该队列是按到达的先后次序排列的,则按到达的先后插入。

6.进程和程序的本质区别是。

(A)存储在内存和外存(B)顺序和非顺序执行机器指令

(C)分时使用和独占使用计算机资源(D)动态和静态特征

【答案】(D)

【解析】程序是指令的集合,而进程是可以和其它程序并发执行的程序的一次执行过程。程序可以作为资料长期保存,而进程有从产生到消亡的过程。

7.某进程所要求的一次打印输出结束,该进程被① ,进程的状态将从② 。

(A)阻塞(B)执行

(C)唤醒(D)运行状态到阻塞状态

(E)就绪到运行(F)阻塞到就绪

(H)运行到就绪

【答案】①(C),②(F)

【解析】当某进程在进程输入/输出时,进程的状态是处于阻塞或等待状态,输入/输出完成后,进程被唤醒,其状态将从阻塞变为就绪。

8.系统感知进程的唯一实体是。

(A)JCB (B)FCB

(C)PCB (D)SJT

【答案】(C)

【解析】进程控制块PCB是进程存在的唯一标志。

9.一进程在某一时刻具有。

(A)一种状态(B)两种状态

(C)三种状态(D)四种状态

【答案】(A)

【解析】进程可能处于就绪、运行、等待三种基本状态,但进程在任一时刻只能处于一种状态。

10.进程从运行状态变为等待的原因可能是。

(A)输入/输出事件发生(B)时间片到

(C)输入/输出事件完成(D)某个进程被唤醒

【答案】(A)

【解析】正在运行的进程如果要申请输入或输出,这时进程的状态将从运行变为等待,将CPU让出,等待输入或输出完成。

11.进程创建原语的任务是。

(A)为进程编制程序(B)为进程建立PCB表

(C)为进程分配CPU (D)为进程分配所需的各种资源

【答案】(B)

【解析】进程存在的标志是进程控制块,所以创建进程就是要创建PCB,并将有关参数填入PCB中。

12.进程被创建后即进入排队。

(A)阻塞队列(B)就绪队列

(C)缓冲队列(D)运行队列

【答案】(B)

【解析】进程创建后,按就绪队列的排列顺序插入其中,等待进程调度程序的调度。

13.多道程序系统中,的作用是从就绪状态中挑选一个进程投入运行。

(A)作业调度(B)交换调度

(C)进程调度(D)SPOOLING调度

【答案】(C)

14.多道系统环境下,操作系统分配资源是以为基本单位。

(A)作业(B)指令

(C)程序(D)进程

【答案】(D)

【解析】多道环境下,程序这个概念已经难于反映程序并发执行的特点,所以,在多道环境下,为了更好地描述程序并发执行的特点,引入了进程的概念。进程是在多道环境下资源分配的基本单位。

15.一个进程是由三部分组成的即、

和。

【答案】程序、数据、进程控制块(PCB)

【解析】所谓“进程”是具有一定独立功能的程序关于某个数据集合上的一次运行活动,因此进程中包含:程序和数据,但这样一个动态过程还需要有内存的一块区域(PCB)来登记进程的有关状态、环境等信息。

16.进程调度主要负责。

(A)选作业进入内存(B)选一进程占有CPU

(C)建立一进程(D)撤消一进程

【答案】(B)

17.“可抢占”和“不可抢占”的优先级调度算法相比。

(A)前者开销小(B)前者开销大

(C)两者开销大致相同(D)两者开销不能相比

【答案】(B)

【解析】因为“可抢占”优先级调度始终保证在处理机上运行的是优先级最高的进程,这样,当处理机正在运行某个进程时,很可能会被其他优先级更高的进程“抢占”引起处理机调度,和“不可抢占”算法相比,前者的调度次数会更频繁,而每调度一次都会引起保护现场、恢复现场的工作,所以“可抢占”的优先级调度算法开销更大。

18.中断扫描机构是扫描一次中断寄存器。

(A)每隔一个时间片(B)每条指令执行周期内最后时刻(C)每当进程释放CPU(D)每产生一次中断

【答案】(B)

【解析】处理器执行完一条指令后,硬件的中断装置(中断扫描机构)立即检查有无中断事件发生,若无中断事件发生,则处理机继续执行下面的指令;若有中断事件发生,则暂停现行进程的运行,而让操作系统中的中断处理程序占用处理器,这一过程称为“中断响应”。

19.一个进程获得了除CPU以外的所需资源,则该进程可能处于状态。

(A)运行(B)就绪

(C)等待(D)(B)和(C)

【答案】(B)

【解析】处于就绪状态的进程,只要获得处理机(被进程调度选中),即可变为运行状态。

20.保护现场是指将现场信息保存至。

(A)磁盘 (B)各相应的寄存器

(C)进程的PCB中 (D)内存系统区

【答案】(C)

【解析】进程控制块(PCB)是记录进程有关信息的一块主存,其中包括该进程的中断现场保护区,它是进程存在的唯一标识。

三、多项选择题

1.进程所具有的基本状态包括_________。

(A)后备状态(B)运行状态

(C)完成状态(D)就绪状态

(E)等待状态

【答案】BDE

【解析】进程是操作系统中的一个最基本、最重要的概念,所谓进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动。它实际上是对“程序”在系统中运行活动的描述。进程在它存在过程中,其状态处于不断地变化中,通常一个进程至少有三种不同的状态:运行状态、就绪状态、等待状态,并且在这三种状态下不断地变化。所以,选择(B)、(D)、(E)。

2.进程所具有的基本特征包括_________。

(A)动态性(B)顺序性

(C)并发性(D)封闭性

(E)异步性

【答案】ACE

【解析】进程具有的特征包括:动态性、并发性和异步性,而“顺序性”和“封闭性”都不是进程具有的特征。所以,选择(A)、(C)、(E)。

3.一个进程通常包括_________。

(A)程序(B)作业说明书

(C)数据(D)运行日志

(E)进程控制块(PCB)

【答案】ACE

【解析】一个进程由三部分组成:程序、数据及进程控制块(PCB)。进程控制块是记录进程有关信息的一块主存,是进程存在的程序唯一标识。所以,选择(A)、(C)、(E)。

4.运行状态的进程由于某种原因可能变为_________。

(A)就绪状态(B)等待状态

(C)后备状态(D)完成状态

(E)活跃状态

【答案】AB

【解析】运行状态的进程有可能由于时间片到而变为“就绪状态”;也有可能由于等待某事件的发生而变为“等待状态”。“后备状态”、“完成状态”、“活跃状态”都不是进程的状态。所以,选择(A)、(B)。

5.进程调度算法中,可以设计成“可抢占式”的算法有_________。

(A)先来先服务调度算法(B)优先数调度算法

(C)最高响应比优先(D)时间片轮转调度算法

(E)最短作业优先

【答案】BD

【解析】常用的进程调度算法有先来先服务、优先数、时间片轮转及多级调度等算法。而先来先服务调度算法是“非抢占式”的;“优先数调度算法”可以是“非抢占式”的,也可以是“抢占式”的;“时间片轮转调度算法”是一种“抢占式”的。算法“最高响应比优先”、“最短作业优先”适用于作业调度,而不适于进程调度。所以选择(B)、(D)。三种进程调度算法的含义如下:(-)先来先服务调度算法

这种调度算法是按照进程进入就绪队列的先后次序选择可以占用处理器的进程。当有进程就绪时,把该进程排入就绪队列的末尾,而进程调度总是把处理器分配给就绪队列中的第一个进程。一旦一个进程占有了处理器,它就一直运行下去,直到因等待某事件或进程完成了工作才让出处理器。

(二)优先数调度算法

对每个进程确定一个优先数,进程调度总是让具有最高优先数的进程先使用处理器。如果进程具有相同的优先数,则对这些有相同优先数的进程再按先来先服务的次序分配处理器。就绪队列中进程可按优先数从大到小排列,这样,进程调度也总是把处理器分配给就绪队列中的第一个进程。

进程被创建时系统为其确定一个优先数,进程的优先数可以是固定的,也可随进程的执行过程而动态变化。

优先数调度算法分为“非抢占式”的与“可抢占式”的两种。

(三)时间片轮转调度算法

系统规定一个“时间片”的值。调度算法让就绪进程按就绪的先后次序排成队列,每次总是选择就绪队列中的第一个进程占用处理器,但规定只能使用一个“时间片”。如果一个时间片用完,进程工作尚未结束,则它也必须让出处理器而被重新排到就绪队列的末尾,等待再次运行,当再次轮到运行时,重新开始使用一个新的时间片。这样,就绪队列中的进程就依次轮流地占用处理器运行。6.从中断事件的性质来说,一般中断包括_________。

(A)硬件故障中断(B)程序中断

(C)外部中断(D)输入输出中断

(E)访管中断

【答案】ABCDE

【解析】不同硬件结构的计算机,它们的中断源不尽相同。但从中断事件的性质来说,一般可以分成下述几类:硬件故障中断、程序中断、外部中断、输入输出中断、访管中断。所以选择(A)、(B)、(C)、(D)、(E)。

前面四类中断是由于外界的原因迫使正在运行的进程被打断,因此可称为强迫性中断事件。而第五类中断是正在运行的进程所期待的,可称为自愿性中断事件。7.在下列叙述中,错误的是。

(A)分时系统中,时间片越小,响应时间越长

(B)多道程序的引入,主要是为了提高CPU及其它资源的利用率

(C)飞机票订票系统是分时系统

(D)PCB是进程存在的唯一标志,而程序是系统感知进程存在的唯一实体(E)通常在处理器执行完一条指令后,硬件的中断装置立即检查有无中断事件发生

【答案】ACD

【解析】分时系统的响应时间T≈nq, n是用户数目,而 q是时间片。当在用户数目一定的情况下,时间片越小,响应时间越短。因此,选项(A)错误。

在单道程序环境中,系统的全部资源为一个作业所独占,如果该作业在进行输入或输出时,CPU仍然被它所占有,处于等待状态。由于CPU与外设处理速度上的差异,如果采用多道程序设计技术,当某个作业输入或输出时,CPU就可处理其他的作业,其它资源也是类似的。选项(B)正确。

飞机票订票系统是实时信息处理系统。所以,选项(C)错误。

PCB是进程存在的唯一标志,也是系统感知进程存在的唯一实体。而进程的程序部分描述了进程所要完成的功能。选项(D)错误。

通常在处理器执行完一条指令后,硬件的中断装置立即检查有无中断事件发生,若有中断事件发生,则暂停现行进程的运行,而让操作系统中的中断处理程序占用处理器,这一过程称为“中断响应”。选项(E)正确。

8.在下列叙述中,正确的是_________。

(A)进程之间的状态变化,一定在PCB中反映出来

(B)当进程完成I/O后,进程的状态由等待变为运行

(C)中断屏蔽是不允许发生中断

(D)O.S的特征之一为并行性,所谓并行性是指多个进程同时处于运行状态(E)中断屏蔽是暂时不响应中断

【答案】AE

【解析】

PCB中记录了进程当前的状态,所以进程之间的状态变化,在 PCB中一定有记录。选项(A)正确。

当进程完成I/O后,进程的状态变为就绪,何时运行由进程调度程序决定。选项(B)错误。

中断屏蔽期间允许发生中断,但暂时不响应。选项(C)错误,选项(E)正确。所谓并行性是指多个作业同时处于运行状态,这是一种宏观上的并行,对于进程来说,还是按处理机调度交替地(轮流)占有处理机。选项(D)错误。

所以,选择(A)、(E)。

9.可以做为进程调度算法的有_________。

(A)先来先服务调度算法(B)时间片轮转调度算法

(C)最高优先级调度算法(D)响应比高者优先调度算法

(E)均衡调度算法

【答案】ABC

【解析】参见前面的第5题解析。

10.影响时间片轮转调度算法对进程响应时间的因素有________。

(A)内存容量(B)时间片值的选取

(C)外存容量(D)交互进程的数量

(E)IO设备的速度

【答案】BD

【解析】分时系统的响应时间T可以表达为:T≈QxN,其中Q是时间片,而N 是交互进程数量。因此,对进程响应时间的因素主要有:“时间片值的选取”和“交互进程的数量”。当时间片一定,交互进程的数越多(即N越大),T就越大。所以选择(B)、(D)。

11.________可能会引起处理机从一个进程转到另一个进程。

(A)一个进程从运行状态变为等待状态

(B)一个进程从运行状态变为就绪状态

(C)一个就绪状态进程的优先级降低

(D)一个进程运行完成而撤离系统

(E)一个就绪状态进程的优先级升高

【答案】ABDE

【解析】当一个就绪状态进程的优先级降低时,不会引起处理机从一个进程转到另一个进程。因此,不能选择C,其它情况都可能引起处理机在不同进程之间的转换。所以,本题应该选择(A)、(B)、(D)、(E)。

四、是非判断题

1.进程之间的状态变化,一定在PCB中反映出来。()

【答案】正确。

【解析】 PCB中记录了进程当前的状态,所以进程之间的状态变化,在 PCB中一定有记录。

2.当进程完成I/O后,进程的状态由等待变为运行。()

【答案】错误。

【解析】当进程完成I/O后,进程的状态变为就绪,何时运行由进程调度程序决定。

3.中断屏蔽是不允许发生中断。()

【答案】错误

【解析】中断屏蔽期间允许发生中断,但暂时不响应。

4.O.S的特征之一为并行性,所谓并行性是指多个进程同时处于运行状态?()

【答案】错误

【解析】所谓并行性是指多个作业同时处于运行状态,这是一种宏观上的并行,对于进程来说,还是按处理机调度交替地(轮流)占有处理机。

五、简答题

1.设有三个进程A,B,C,进程A和进程B各需要运行3毫秒的处理器时间,而进程C却要24毫秒的处理器时间,分别考虑当三个进程到达顺序为A,B,C 时及C,B,A时,用先来先服务进行调度时各自的平均等待时间。

【解析】

当三个进程到达顺序为A,B,C时,按照先来先服务的顺序,进程A先占用处理器,进程B需等待3毫秒后才能去占用处理器,进程C在等待6毫秒的时间后可以占用处理器。于是,它们的平均等待时间为(0+3+6)/3=3毫秒。

如果进程是按 C,B,A的次序排入队列,则进程C先占用处理器运行24毫秒后才能让进程B占用,即进程B需等待24毫秒,而进程A在等了27毫秒后才可占用处理器,现在这三个进程的平均等待时间为(27+24+0)/3=17毫秒。可见当运行时间长的进程先就绪的话,先来先服务算法使系统效率受到影响。

2.什么是“抢占式优先级调度”和“非抢占式优先级调度”?

【解析】

采用“非抢占式”调度时,一旦有某个高优先数的进程占用了处理器,就一直让它运行下去直到该进程由于自身的原因主动让出处理器或进程执行结束而让出处理器。此时,进程调度才重新再按优先数选择另一个占用处理器的进程。采用“可抢占式”的调度,这种方式是严格保证任何时刻,总是让具有最高优先数的进程在处理器上运行。也就是说,当某一进程在处理器上运行时,一旦有另一个更高优先数的进程就绪,进程调度就要剥夺正在处理器上运行的进程使用处理器的权力,抢回分配给它的处理器,而把处理器让具有更高优先数的进程使用。这种抢占式的优先数调度算法在实时系统中很有用。例如,在实际系统中可把处理紧急情况的报警进程赋予最高优先数,一旦有紧急事件发生时,触发报警进程就绪,进程调度就让这个报警进程抢占处理器进行紧急处理和发出警告信号。 3.时间片轮转调度算法中,时间片值的选取对系统有什么影响?

【解析】

时间片取值的大小关系到计算机系统的效率和用户的满意度,所以,时间片的值应根据进程要求系统给出应答的时间和进入系统的进程数来决定。如果要求系统快速应答则时间片小一些,这样使轮转一遍的总时间减少而可对进程尽快应答。

如果进程数少,则时间片可以大一些,这样可减少进程调度的次数,提高系统效率。

对每个进程可规定相同的时间片,但有的系统对不同的进程规定不同的时间片,例如,对很少使用外围设备而需要运算时间长的进程,给一个大一些的时间片,以达到减少调度次数,加快进程执行速度的目的。但应注意到,时间片值过大时该算法退化为先来先服务;时间片值过小时,加重系统开销。

4.引起“进程切换”的时机有哪些?

【解析】

我们把处理机从一个进程转到另一个进程称为“进程切换”。引起“进程切换”的时机有以下几种情况:

(1)一个进程从运行状态变为等待状态。

(2)一个进程从运行状态变为就绪状态。

(3)一个进程从等待状态变为就绪状态。

(4)一个进程运行完成而撤离系统。

5.中断分为哪几种类型,给出各自的含义。

【解析】

(1)硬件故障中断。它是由于机器故障造成的,例如,电源故障、主存出错等。

(2)程序中断。这是由于程序执行到某条机器指令时可能出现的各种问题而引起的中断,例如,发现定点操作数溢出、除数为“0”、地址越界、使用非法指令码、目态下的用户使用了特权指令等。

(3)外部中断。这是由各种外部事件引起的中断,例如,按压了控制板上的一个中断键、设置的定时时钟的时间周期到。

(4)输入输出中断。输入输出控制系统发现外围设备完成了输入输出操作或在执行输入输出操作时通道或外围设备产生错误而引起的中断。

(5)访管中断。它是正在运行的进程为了请求调用操作系统的某个功能而执行一条“访管指令”所引起的中断。例如,用户要求分配一台外围设备、要求分配一些主存区域。要求启动外围设备读一批数据等。

6.给出中断响应的系统流程。

【解析】

每一个程序都要有一个程序状态字(PSW)来刻画本程序的执行状态,在单处理器的计算机系统中整个系统设置一个用来存放当前运行进程的PSW的寄存器,该寄存器称为“程序状态字寄存器”。为了说明中断响应过程,我们区分三种PSW:

(1)存放在程序状态字寄存器中的PSW是当前正占用处理器的进程的PSW,称“当前PSW”。

(2)出现中断事件后,要由操作系统的中断处理程序占用处理器,让中断处理程序处理出现的中断事件。我们把中断处理程序的PSW称“新PSW”,新PSW 中存放着中断处理程序的入口地址。

(3)中断处理程序在占用处理器前,必须把被中断进程的PSW保护好,以便该进程在适当的时候能使被中断时的情况继续执行。把保护好的被中断进程的PSW称“旧PSW”。

当中断装置发现中断事件后,首先把出现的中断事件存放到程序状态字寄存器中的中断码位置,然后把程序状态字寄存器中的“当前PSW”作为“旧PSW”

存放到预先约定好的主存固定单元中保护起来,再把已经确定好的操作系统处理程序的“新PSW”送到程序状态字寄存器,成为“当前PSW”,这一过程称“交换PSW”。中断装置通过交换PSW使被中断进程让出处理器,且使处理器按照中断处理程序的“新PSW”控制执行。于是,中断处理程序就占用了处理器,它先从保存好的旧PSW中取出中断码,分析发生的具体事件,从而可完成对中断事件的处理。

一个进程占有处理器运行时,可以由于各种不同的事件发生而被中断。对各类不同的事件操作系统的处理是不同的,一般来说,对每一类事件都要有该类事件的处理程序,每一类处理程序都有一个“新PSW”。中断装置发现中断事件后应按中断事件类让相应的中断处理程序占有处理器,为此,可预先约定一些主存固定单元用来分别存放各类中断处理程序的“新PSW”和由于各种不同原因被

中断的进程的“旧PSW”,发生哪类中断事件就交换哪一类的新、旧PSW。具体处理过程如下:

中断装置发现中断事件后把中断事件存入程序状态字寄存器中当前PSW的中断码位置;

把当前PSW保存起来,根据发生的事件类找出事件对应的旧PSW位置(假设发生的是外部中断事件),把当前PSW保存到该位置上;

把该类事件处理程序的新PSW送入程序状态字寄存器,处理器就按这个新PSW

控制处理该事件的中断处理程序执行。

7.给出不同中断事件的中断处理程序的处理。

【解析】

各类中断事件的处理原则大致如下:

(1)硬件故障中断事件的处理

排除这类故障必须进行人工干预,因此处理这类事件只能是输出一些故障信息。例如,当主存储器的奇偶校验或海明校验装置发现主存储器读写错误时,产生故障中断事件,中断处理程序要把访问该主存单元的进程状态改成“等待干预”,向操作员报告出错主存单元的地址和错误性质。待操作员排除故障后重新启动进程,使“等待干预”状态的进程变成“就绪”状态。

(2)程序中断事件的处理

程序中断事件往往与程序的具体编制有关,不同的用户对出现的事件可以有不同的处理要求,所以,中断处理程序可把出现的事件转交给用户自行处理。如果用户对发生的事件没有提出处理办法,那么操作系统就把发生事件的进程名、程序断点、事件性质等报告给操作员。

(3)外部中断事件的处理

用户可以用控制板上的中断键请求调用操作系统的某个特定功能。所以,当按压了一个中断键产生一个外部中断事件时,处理该事件的程序根据中断键的编号把处理转交给一个特定的例行程序。时钟是操作系统进行调度工作的重要工具,在UNIX系统中,硬件按电源频率每隔20毫秒产生一次中断请求。处理程序累计时钟中断次数用来调整日历时钟时间。只要在开机时置好开机时刻的年、月、日、时、分、秒,以后根据时钟中断的次数可计算出当前的时间。也可把时钟作为定时闹钟,先确定一个定时时间,只要把当前的日历时钟时间与定时的时间相加就得到唤醒时间,处理程序每隔一段时间(例如1秒钟)把日历时钟时间与唤醒时间比较,当日历时钟时间>=唤醒时间,就表示定时的时间到了,起到闹钟的作用。

(4)输入/输出中断事件的处理

I/O中断通常包括:I/O正常结束和I/O错误,不同的情况系统采用不同的处理方法,详见第五章的介绍。

(5)访管中断事件的处理

这类中断事件表示正在运行的进程要调用操作系统的功能,中断处理程序可设置一张“系统调用程序入口表”,中断处理程序按系统调用类型号查这张入口表,找到相应的系统调用程序的入口地址,把处理转交给实现调用功能的程序执行。

综上所述,在多数情况下,中断处理程序只需作一些保护现场。分析事件性质等原则性的处理,具体的处理可由适当的例行程序来完成。因此,中断处理程序可以创建一些处理事件的进程,具体的处理就由这些进程来实现。

8.给出系统总体上的中断处理过程。

【解析】

CPU每执行完一条指令就去扫描中断寄存器,检查是否有中断发生,若没有中断就继续执行下条指令;若有中断发生就转去执行相应的中断处理程序。中断处理过程可粗略的分为以下四个过程:

(1)保护当前正在运行程序的现场。

(2)分析是何种中断,以便转去执行相应的中断处理程序。

(3)执行相应的中断处理程序。

(4)恢复被中断程序的现场。

9.进程控制块(PCB)中应该包括哪些内容,其作用是什么?

【解析】

进程控制块是用以记录进程有关信息的一块主存,其中登记着诸如:进程标识、进程状态、优先级、中断现场保护区、所占资源等信息。它是由系统为每个进程分别建立的,并且在进程结束其生命期时由系统将相应的PCB撤消,PCB是进程存在的标识。

10.进程在系统中有哪几种基本状态,状态如何发生变化?

【解析】

通常一个进程至少有三种不同的状态:运行状态、就绪状态、等待状态。

(1)运行状态(Running):当一个进程正在处理机上运行时,称其处于运行状态。

(2)就绪状态(Ready):当一个进程具备了运行条件,一旦获得处理机即可运行,称此进程处于就绪状态。

(3)等待状态(Blocked):当一个进程由于等待某事件的发生(如I/O完成)而不能运行时,称此进程处于等待状态。

当一个进程被建立时,通常处于就绪状态,三种状态的转换过程可以由下图描述。

11.进程具有哪些基本特征?

【解析】

(1)动态性:进程包含了程序及相应的数据集合,执行过程中其状态处于不断地变化。

(2)并发性:系统中各进程交替占用CPU,它们是并发执行的。

(3)异步性:各进程都以不可预知的速度向前推进。

六、综合应用题

1.某系统中进程有如下的状态变化图:

请回答下列问题:

(1)该系统采用了怎样的进程调度算法?说明理由。

(2)把图中发生①-④的状态变化原因填入下表中。

变化变化原因

【参考答案】

(1)该系统采用的是“时间片轮转调度算法”。

该调度算法让就绪进程按就绪的先后次序排成队列,每次总是选择就绪队列中的第一个进程占用处理器,但规定只能使用一个“时间片”。如果一个时间片用完,进程工作尚未结束,则它也必须让出处理器而被重新排到就绪队列的末尾,等待再次运行,当再次轮到运行时,重新开始使用一个新的时间片。这样,就绪队列中的进程就依次轮流地占用处理器运行。

(2)

变化变化原因

①进程到达就绪队列头,从就绪状态变为运行状态。

②运行的时间片到,从运行状态变为就绪状态,进入就绪队列末尾排队,等待调度。

③运行过程中,进程申请IO,从运行状态变为等待状态,进入等待队列等待IO完成。

④进程所申请的IO完成,进入就绪队列末尾排队,等待调度。

2.设某系统采用可抢占的优先级进程调度算法,系统在某一段时间内有A、B、C三个进程,进程C优先级最高,进程A优先级最低,进程B优先级介于进程A、C之间,它们的就绪时刻、计算与I/O所需时间如下表所示:

进程进程就绪时刻计算时间I/O操作时间计算时间

A 0ms 10ms 15ms 15ms

B 25ms 3ms 10ms 15ms

C 20ms5ms10ms10ms

(1)若系统采用多道方式运行,给出这三个进程运行完成总共所需的时间,并用图示给出三个进程的实际运行过程(忽略进行系统调度所需时间)。

(2)采用多道方式运行比采用单道方式运行节省多少时间。

【参考答案】

(1)若系统采用多道方式运行,这三个进程运行完成总共所需的时间为68ms。(图示略)

(2)采用单道方式运行,这三个进程运行完成总共所需的时间为113ms

采用多道方式运行比采用单道方式运行节省时间:

113-68=45ms

3.设某系统采用可抢占的优先级进程调度算法,在系统的就绪队列中有X、Y、Z三个进程,进程Z优先级最高,进程X优先级最低,进程Y优先级介于进程X、Z之间,它们的计算与I/O所需时间如下表所示:

进程计算时间I/O操作时间计算时间

X

Y

Z 15ms

25ms

3ms 10ms

15ms

20ms 5ms

10ms

10ms

(1)若系统采用多道方式运行,给出这三个进程运行完成总共所需的时间,并用图示给出三个进程的实际运行过程(忽略进行系统调度所需时间)。

(2)采用多道方式运行比采用单道方式运行节省多少时间。

【参考答案】

(1)若系统采用多道方式运行,这三个进程运行完成总共所需的时间为68ms。(图示略)

(2)采用单道方式运行,这三个进程运行完成总共所需的时间为113ms

采用多道方式运行比采用单道方式运行节省时间:

113-68=45ms

windows进程管理实验报告

实验报告 课程名称:操作系统 实验项目:windows进程管理 姓名: 专业:计算机科学与技术 班级: 学号:

计算机科学与技术学院 计算机系 2019 年 4 月 23 日

实验项目名称: windows进程管理 一、实验目的 1. 学习windows系统提供的线程创建、线程撤销、线程同步等系统调用; 2. 利用C++实现线程创建、线程撤销、线程同步程序; 3. 完成思考、设计与练习。 二、实验用设备仪器及材料 1. Windows 7或10, VS2010及以上版本。 三、实验内容 1 线程创建与撤销 写一个windows控制台程序(需要MFC),创建子线程,显示Hello, This is a Thread. 然后撤销该线程。 相关系统调用: 线程创建: CreateThread() 线程撤销: ExitThread() 线程终止: ExitThread(0) 线程挂起: Sleep() 关闭句柄: CloseHandle() 参考代码: ; } 运行结果如图所示。 完成以下设计题目: 1. 向线程对应的函数传递参数,如字符串“hello world!”,在线程中显示。 2. 如何创建3个线程A, B, C,并建立先后序执行关系A→B→C。

实验内容2 线程同步 完成父线程和子线程的同步。父线程创建子线程后进入阻塞状态,子线程运行完毕后再唤醒。 相关系统调用: 等待对象 WaitForSingleObject(), WaitForMultipleObjects(); 信号量对象 CreateSemaphore(), OpenSemaphore(), ReleaseSemaphore(); HANDLE WINAPI CreateSemaphore( _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes _In_ LONG lInitialCount, _In_ LONG lMaximumCount, _In_opt_ LPCTSTR lpName ); 第一个参数:安全属性,如果为NULL则是默认安全属性 第二个参数:信号量的初始值,要>=0且<=第三个参数 第三个参数:信号量的最大值 第四个参数:信号量的名称 返回值:指向信号量的句柄,如果创建的信号量和已有的信号量重名,那么返回已经存在的信号量句柄参考代码: n"); rc=ReleaseSemaphore(hHandle1,1,NULL); err=GetLastError(); printf("Release Semaphore err=%d\n",err); if(rc==0) printf("Semaphore Release Fail.\n"); else printf("Semaphore Release Success. rc=%d\n",rc); } 编译运行,结果如图所示。

Windows下的进程管理和监控器分解

操作系统安全课程设计报告Windows下的进程管理和监控器

目录 操作系统安全课程设计报告 0 一、概述 (2) 1.设计主要完成的任务 (2) 2.解决的主要问题 (2) 二、设计的基本概念和原理 (2) 1.概念 (2) 2.原理 (2) 三、总体设计 (3) 1.功能模块 (3) 2.流程图 (3) 四、详细设计 (4) 主要功能的代码实现: (4) 五、完成的情况以及使用说明 (22) 六、总结 (33) 七、参考文献 (34)

一、概述 1.设计主要完成的任务 设计一个Windows或Linux下的进程管理与监控程序,要求该程序完成以下功能: (1)可获取当前正在运行的所有进程,包括进程PID、进程名称、CPU使用情况、当前用户名、内存占用量等; (2)能进一步获取各进程的所有线程情况; (3)能通过命令终止某个进程的执行,终止时能将其子孙进程全部终止; (4)要求界面友好。 2.解决的主要问题 我们的电脑需要我们去了解它的运行状况,掌握和管理它的进程,并对其异常情况给予操作和控制,任务管理器就像是我们了解和控制自己电脑运作的一个窗口,通过这个窗口我们可以了解到电脑所有进程运行状况,并对运行的进程加于管理和控制。本管理器设计比较简洁,操作灵活,使用简单,可以为我们管理和控制计算机的进程提供了一个简便的方法,是我们控制本计算机进程和了解计算机进程情况的良好助手。 二、设计的基本概念和原理 1.概念 在本实验中,启动进程管理器后,可以通过”获取进程”功能来获得本计算机启动的进程,以及与该进程相关的信息,其中包括的信息有:进程映像名称,进程开启的线程数,进程的PID以及进程的优先数,我们可以通过这些信息来了解计算机中每个进程的使用状况。同时我们可以在进程管理器上选中一个要终止的的进程,点击“终止进程”功能按钮,该进程被终止执行并退出进程列表,其中还包括了自动刷新的功能,此按钮实现的功能正如我们电脑任务管理器的“进程”功能,当电脑执行程序不能通过关闭窗口进行正常的关闭时,可以借助此办法来关闭进程。我们还可以通过这个进程管理器来启动新的进程,当我们要在进程管理器里启动新的进程时,只要点击“启动新进程”按键,则会弹出“打开进程”对话框,我们可以通过对话框里的“浏览”窗口选择要打开的新进程,这是任务管理器里没有实现的功能,通过这个功能我们在管理计算机时变得更加灵活方便,也使进程管理的功能更加完善。在退出此进程管理器时候,只要选择“退出”功能按钮则可关闭进程管理器,快速退出管理器的界面。 2.原理

第二章进程管理答案

第二章进程管理 一、单项选择题 1、顺序程序和并发程序的执行相比,()。 A.基本相同 B. 有点不同 C.并发程序执行总体上执行时间快 D.顺序程序执行总体上执行时间快 2、在单一处理机上,将执行时间有重叠的几个程序称为()。 A.顺序程序 B. 多道程序 C.并发程序 D. 并行程序 3、进程和程序的本质区别是()。 A.存储在内存和外存 B.顺序和非顺序执行机器指令 C.分时使用和独占使用计算机资源 D.动态和静态特征 4、在下列特性中,不是进程的特性的是()。 A. 异步性 B. 并发性 C. 静态性 D. 动态性 5 A 6 A. 7 A. 8 A. 9 A. 10 A. 11 A. 12。 A. 13 A. 14 A. 15 A. 16、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是()。 A. S>0 B. S=0 C. S<0 D. S≠0 17、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。 A.10 B.8 C.6 D.4 18、在进程通信中,使用信箱方式交换信息的是()。 A.低级通信B.高级通信C.共享存储器通信D.管道通信 19.( )必定会引起进程切换。A.一个进程被创建后进入就绪态B.一个进程从运行态变成等待态c.一个进程从运行态变成就绪态 D.一个进程从等待态变成就绪态 20、操作系统使用( )机制使计算机系统能实现进程并发执行,保证系统正常工作。 A.中断B.查询c.同步D互斥 21.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。 A.顺序执行 B.同时执行c.并行执行D.并发执行

进程管理实验报告

实验2过程管理实验报告学生号姓名班级电气工程系过程、过程控制块等基本原理过程的含义:过程是程序运行过程中对数据集的处理,以及由独立单元对系统资源的分配和调度。在不同的数据集上运行程序,甚至在同一数据集上运行多个程序,是一个不同的过程。(2)程序状态:一般来说,一个程序必须有三种基本状态:就绪、执行和阻塞。然而,在许多系统中,过程的状态变化可以更好地描述,并且增加了两种状态:新状态和终端状态。1)就绪状态,当一个进程被分配了除处理器(CPU)以外的所有必要资源时,只要获得了处理器,进程就可以立即执行。此时,进程状态称为就绪状态。在系统中,多个进程可以同时处于就绪状态。通常,这些就绪进程被安排在一个或多个队列中,这些队列称为就绪队列。2)一旦处于就绪状态的进程得到处理器,它就可以运行了。进程的状态称为执行状态。在单处理器系统中,只有一个进程在执行。在多处理器系统中,可能有多个进程在执行中。3)阻塞状态由于某些事件(如请求输入和输出、额外空间等),执行进程被挂起。这称为阻塞状态,也称为等待状态。通常,处于阻塞状态的进程被调度为-?这个队列称为阻塞队列。4)新状态当一个新进程刚刚建立并且还没有放入就绪队列中时,它被称为新状态。5)终止状态是

什么时候-?进程已正常或异常终止,操作系统已将其从系统队列中删除,但尚未取消。这就是所谓的终结状态。(3)过程控制块是过程实体的重要组成部分,是操作系统中最重要的记录数据。控制块PCB记录操作系统描述过程和控制过程操作所需的所有信息。通过PCB,一个不能独立运行的程序可以成为一个可以独立运行的基本单元,并且可以同时执行一个进程。换句话说,在进程的整个生命周期中,操作系统通过进程PCB管理和控制并发进程。过程控制块是系统用于过程控制的数据结构。系统根据进程的PCB来检测进程是否存在。因此,进程控制块是进程存在的唯一标志。当系统创建一个进程时,它需要为它创建一个PCB;当进程结束时,系统回收其PCB,进程结束。过程控制块的内容过程控制块主要包括以下四个方面的信息。过程标识信息过程标识用于对过程进行标识,通常有外部标识和内部标识。外部标识符由流程的创建者命名。通常是一串字母和数字。当用户访问进程时使用。外部标识符很容易记住。内部标识符是为了方便系统而设置的。操作系统为每个进程分配一个唯一的整数作为内部标识符。通常是进程的序列号。描述性信息(process scheduling message)描述性信息是与流程调度相关的一些有关流程状态的信息,包括以下几个方面。流程状态:表

《Linux操作系统》实验五-作业任务和进程管理

《Linux操作系统》 实验报告 实验五:作业任务和进程管理

一、实验目的 (1) 掌握UNIX系统作业、任务和进程管理的任务,了解Linux系统进程管理的图形界面; (2) 了解UNIX的系统进程间通信机制,掌握信号操作和终止进程的命令。 (3) 了解任务和作业管理命令at和batch; (4) 掌握UNIX系统的进程定时启动管理命令crontab; (5) 了解进程的挂起,掌握fg,bg等命令。 二、实验环境 一台装有Windows操作系统PC机,上装有虚拟机系统VMWare,实验过程通过VMWare系统启Linux系统工作。 三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果) 1)进程管理与查询 (1)进程状态查询 1.ps –ef | more #显示所有进程及启动参数 2. ps –ajx | more #以作业方式显示进行信息

3. ps –el | more #以长格式显示所有进程信息 4.pstree –p 5.pstree -a

(2)终止进程的执行 1.终止某一已知PID进程:ps –9 PID(1)#PID由用户自己选择 2.在当前终端上执行命令:man ps 3、换一终端在其运行:ps –e | grep man #确定进程PID

4.终止进程执行:kill –9 PID #PID是上命令查询的结果 4.终止所的同名进程 终止上例中的man命令:killall man或 killall –9 man 分别至少在2个不同终端上登录,然后在其中的一个终端上分别执行以下命令,并观察和分析原因。 killall bash killall –9 bash 执行killall -9 bash命令时,终端窗口关闭 (3) 进程的挂起及前后台调度 在一个终端上起动命令man man,在不退出man命令的情况下按下组合键Ctrl+Z,观察反映。 答:先退出当前页面,返回进入终端时的页面 先后执行命令jobs和fg命令,并观察反映。

进程管理实验报告

进程的控制 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new

program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。 3 .实验步骤 (1)gedit创建进程1.c (2)使用gcc 1.c -o 1编译并./1运行程序1.c #include #include #include #include void mian(){ int id; if(fork()==0) {printf(“child id is %d\n”,getpid()); } else if(fork()==0) {printf(“child2 id %d\n”,getpid()); } else {id=wait(); printf(“parent id is %d\n”,getpid()); }

Linux操作系统进程管理的分析与应用

Linux操作系统进程管理的分析与应用(1)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北目录 1、程序和进程; 1.1 进程分类; 1.2 进程的属性; 1.3 父进程和子进程; 2、进程管理; 2.1 ps 监视进程工具; 2.1.1 ps参数说明; 2.1.2 ps 应用举例; 2.2 pgrep 3、终止进程的工具 kill 、killall、pkill、xkill; 3.1 kill 3.2 killall 3.3 pkill 3.4 xkill 4、top 监视系统任务的工具; 4.1 top 命令用法及参数; 4.2 top 应用举例; 5、进程的优先级: nice和renice; 6、关于本文; 7、后记; 8、参考文档; 9、相关文档; 1、程序和进程; 程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。 一个运行着的程序,可能有多个进程。比如 https://www.sodocs.net/doc/de11358473.html, 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,

apache服务器将会创建有多个httpd进程来对其进行服务。 1.1 进程分类; 进程一般分为交互进程、批处理进程和守护进程三类。 值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。比如在Fedora或Redhat中,我们可以定义httpd 服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd, /etc/init.d/httpd 就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。 [root@localhost ~]# chkconfig --level 35 httpd on 由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。比如,我们是不是访问 https://www.sodocs.net/doc/de11358473.html, ,https://www.sodocs.net/doc/de11358473.html, 的httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。 Linux操作系统进程管理的分析与应用(2)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北 1.2 进程的属性; 进程ID(PID):是唯一的数值,用来区分进程; 父进程和父进程的ID(PPID); 启动进程的用户ID(UID)和所归属的组(GID); 进程状态:状态分为运行R、休眠S、僵尸Z; 进程执行的优先级; 进程所连接的终端名; 进程资源占用:比如占用资源大小(内存、CPU占用量); 1.3 父进程和子进程; 他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。 在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行;

第二章_进程管理习题修改汇总

一、选择题 1.在进程管理中,当 C 时,进程从阻塞状态变为就绪状态。 A.进程被进程调度程序选中 B.等待某一事件 C.等待的事件发生 D.时间片用完 2.分配到必要的资源并获得处理机时的进程状态是 B 。 A.就绪状态 B.执行状态 C.阻塞状态 D.撤消状态 3.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是 D 。 A.时间片用完 B.等待某事件发生 C.等待的某事件已发生 D.被进程调度程序选中4.进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是 B 。 A.时间片用完 B.等待某事件发生 C.等待的某事件已发生 D.被进程调度程序选中5.下列的进程状态变化中, C 变化是不可能发生的。 A.运行→就绪B.就绪→运行C.等待→运行D.等待→就绪 6.一个运行的进程用完了分配给它的时间片后,它的状态变为A 。 A.就绪 B.等待 C.运行 D.由用户自己确定7.操作系统通过 B 对进程进行管理。 A. JCB B. PCB C. DCT D. CHCT 8.一个进程被唤醒意味着 D 。 A. 该进程重新占有了CPU B. 它的优先权变为最大 C. 其PCB移至等待队列队首 D. 进程变为就绪状态 9.多道程序环境下,操作系统分配资源以 C 为基本单位。 A. 程序 B. 指令 C. 进程 D. 作业 10. 从下面的叙述中选出一条正确的叙述: (1)操作系统的一个重要概念是进程,不同的进程所执行的代码也不同。

(2)操作系统通过PCB来控制和管理进程,用户进程可从PCB 中读出与本身运行状态相关的信息。 (3)当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中。 (4)当进程申请CPU得不到满足时,它将处于阻塞状态。(5)进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的唯一标志。 11. 从下面的叙述中选出4条正确的叙述: (1)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。 (2)进程被挂起(suspend)后,状态变为阻塞状态。 (3)信号量的初值不能为负数。 (4)线程是CPU调度的基本单位,但不是资源分配的基本单位。(5)在进程对应的代码中使用wait、signal操作后,可以防止系统发生死锁。 (6)管程每次只允许一个进程进入。 (7)wait、signal操作可以解决一切互斥问题。 (8)程序的顺序执行具有不可再现性。 二、是非题 1.进程是动态的概念 2.进程执行需要处理机 3.进程是有生命期的

实验三-进程管理

实验三进程管理 一、实验目的 1.熟悉和理解进程和进程树的概念,掌握有关进程的管理机制 2.通过进程的创建、撤销和运行加深对进程并发执行的理解 3.明确进程与程序、并行与串行执行的区别 4.掌握用C 程序实现进程控制的方法 二、实验学时 2学时 三、实验背景知识 所涉及的系统调用 1、exec( )系列(exec替换进程映像) 系统调用exec( )系列,也可用于新程序的运行。fork( )只是将父进程的用户级上下文拷贝到新进程中,而exec( )系列可以将一个可执行的二进制文件覆盖在新进程的用户级上下文的存储空间上,以更改新进程的用户级上下文。exec( )系列中的系统调用都完成相同的功能,它们把一个新程序装入内存,来改变调用进程的执行代码,从而形成新进程。如果exec( )调用成功,调用进程将被覆盖,然后从新程序的入口开始执行,这样就产生了一个新进程,新进程的进程标识符id 与调用进程相同。 exec( )没有建立一个与调用进程并发的子进程,而是用新进程取代了原来进程。所以exec( )调用成功后,没有任何数据返回,这与fork( )不同。exec( )系列系统调用在UNIX系统库unistd.h中,共有execl、execlp、execle、execv、execvp五个,其基本功能相同,只是以不同的方式来给出参数。 #include int execl(const cha r *pathname, const char *arg, …); int execlp(const char *, const char *arg, …); int execle(const char *pathname, const char *arg, …, const char *envp[ ]); int execv(const char *pathname, char *const argv[ ]); int execvp(const char *, char *const argv[ ]); 参数: path参数表示你要启动程序的名称包括路径名。 arg参数表示启动程序所带的参数,一般第一个参数为要执行命令名,不是带路径且arg必须以NULL结束。 返回值:成功返回0,失败返回-1 注:上述exec系列函数底层都是通过execve系统调用实现. 1)带l 的exec函数:execl,execlp,execle,表示后边的参数以可变参数的形式给出且都以一个空指针结束。 #include

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

第二章-进程管理习题及答案

第二章进程管理习题及答案 一、填空题 1.进程的静态描述由三部分组成:① 、② 和③ 。 【答案】①PCB、②程序部分、③相关的数据结构集 【解析】PCB是系统感知进程的唯一实体。进程的程序部分描述了进程所要 完成的功能,而数据结构集是程序在执行时必不可少的工作区和操作对象。后两 部分是进程完成所需功能的物质基础。 2.进程存在的标志是。 【答案】进程控制块PCB 【解析】系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。 3.① 是现代操作系统的基本特征之一,为了更好地描述这一特征而 引入了 ② 这一概念。 【答案】①程序的并发执行,②进程 【解析】程序的并发执行和资源共享是现代操行系统的基本特征。程序的并 发执行使程序失去了程序顺序执行时所具有的封闭性和可再现性。在程序并发执 行时,程序这个概念不能反映程序并发执行所具有的特性,所以引入进程概念来 描述程序并发执行所具有的特点。 4.给出用于进程控制的四种常见的原语① 、② 、③ 和④ 。【答案】①创建原语、②撤消原语、③阻塞原语、④唤醒原语 【解析】进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程 以及完成进程各状态间的转换,从而达到多个过程高效率地并行执行和协调,实 现资源共享的目的。把那些在管态下执行的具有特定功能的程序段称为原语。 5.进程被创建后,最初处于① 状态,然后经② 选中后进入③ 状态。 【答案】①就绪,②进程调度程序,③运行 【解析】进程的从无到有,从存在到消亡是由进程创建原语和撤消原语完成的。被创建的进程最初处于就绪状态,即该进程获得了除处理机以外的所有资源,处于准备执行的状态;从就绪状态到运行状态的转换是由进程调度程序来完成的。 6.进程调度的方式通常有① 和② 方式两种。 【答案】①可剥夺、②非剥夺 【解析】所谓可剥夺方式,是指就绪队列中一旦有优先级高于当前运行进程 的优先级的进程存在时,便立即发生进程调度,转让处理机。而非剥夺方式则是指:即使在就绪队列中存在有优先级高于当前运行进程的进程,当前进程仍将继 续占有处理机,直到该进程完成或某种事件发生(如I/O事件)让出处理机。 7.轮转法主要是用于① 的调度算法,它具有较好的② 时间, 且对每个进程来说都具有较好的③ 性。

操作系统-进程管理实验报告

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include #include #include #include int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){ printf("b\n"); } 1/11

else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没有固定的顺序。 (2)进程的控制 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 将父进程的输出改为father process completed 2/11

实验一 进程管理

实验一进程管理 1. 实验目的 ⑴加深对进程概念的理解,明确进程和程序的区别; ⑵进一步认识并发执行的实质; ⑶分析进程争用资源的现象,学习解决进程互斥的方法; ⑷了解Linux系统中进程通信的基本原理。 2. 实验准备 ⑴阅读Linux的sched.h源码文件,加深对进程管理的理解。 ⑵阅读Linux的fork.h源码文件,分析进程的创建过程。 3. 实验内容 ⑴进程的创建 编写一段程序,使用系统调用fork ( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。 ⑵进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 如果在程序中使用系统调用lockf ( )来给每一个进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。 ⑶软中断通信 编制一段程序实现进程的软中断通信。要求:使用系统调用fork ( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上发来的中断信号(既按Del键);当捕捉到中断信号后,父进程系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child process 1 is killed by parent! Child process 2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed! 在上面的程序中增加语句signal (SIGINT, SIG_IGN) 和signal (SIGQUIT, SIG_IGN),观察执行结果,并分析原因。 4. 实验指导

实验 进程管理与系统监视

实验报告 学院:专业:班级:成绩: 姓名:学号:组别:组员: 实验地点:实验日期:指导教师签名: 实验8项目名称:进程管理 1、实验目的 理解进程管理的基本原理方法,掌握在Linux系统中查看进程状态、控制进程以及调整进程优先级等基本方法。 2、实验内容 2.1 进程管理的基本概念 什么是进程管理?要理解这个概念,就必须理解什么是进程。进程是在《操作系统原理》课程中的一个核心概念。进程(Process)是程序的一个执行过程。进程需要占用各种系统资源,包括CPU、内存等,需要读写各类文件,调用各种系统功能。自然,从进程的创建到撤销,操作系统会为它安排一切。不过,操作系统的安排是根据固定的算法所进行,纵使这些算法能根据当前情况不断调整,但不可能预先知道你的需要,然后让某个进程在特定某个时间挂起,让某个进程的优先级升高等等。因此,进程管理是指根据当前实际需求,对进程加以特定的控制。 作为一个管理员,定时查看当前系统中各个进程的具体状态,捕捉各种进程运行的异常,合理分配各类资源,特别是CPU资源给不同的进程,对各类进程有计划地控制等等,都属于进程管理的内容。系统为管理员提供了一系列的工具和命令,以让管理员完成管理工作。 2.2进程管理的基本方法 2.2.1查看进程状态 获知进程状态是进程管理的第一步。UNIX系统为进程留了许多接口、命令和工具。最典型的是/proc文件系统。这是一个特殊的文件系统。在此文件系统中,每个目录对应于一个进程,目录的名称即为进程的PID号。进入某个进程对应的目录,里面有若干文件,这些文件记录了该进程当前运行的各种相关状态信息。应用程序可通过对这些文件打开并读取(部分甚至还能通过写文件控制进程)来获取进程信息。 例子:查看/proc文件系统 #cd /proc/ #ls

实验一进程管理实验

实验一linux进程的创建与控制 【实验目的】 1、加深对进程概念的理解,明确进程和程序的区别; 2、进一步认识并发执行的实质; 3、分析进程争用资源的现象,学习解决进程互斥的方法; 【实验环境】 编程环境:TC或者VC 操作系统软件:linux 【准备知识】 一.基本概念 1、进程的概念;进程与程序的区别。 2、并发执行的概念。 3、进程互斥的概念。 二.系统调用 系统调用是一种进入系统空间的办法。通常,在OS的核心中都设置了一组用于实现各 种系统功能的子程序,并将它们提供给程序员调用。程序员在需要OS提供某种服务的时候,便可以调用一条系统调用命令,去实现希望的功能,这就是系统调用。因此,系统调用就像 一个黑箱子一样,对用户屏蔽了操作系统的具体动作而只是控制程序的执行速度等。各个不同的操作系统有各自的系统调用,女口windows API,便是windows的系统调用,Linux的系 统调用与之不同的是Linux由于内核代码完全公开,所以可以细致的分析出其系统调用的机制。 三.相关函数。 1 fork()函数 fork()函数创建一个新进程。 其调用格式为:int fork(); 其中返回int取值意义如下: 正确返回:等于0 :创建子进程,从子进程返回的ID值; 大于0 :从父进程返回的子进程的进程ID值。

错误返回:等于一1创建失败。 2 wait()函数 wait()函数常用来控制父进程与子进程的同步。在父进程中调用wait()函数,则父进程被阻塞,进入等待队列,等待子进程结束。当子进程结束时,会产生一个终止状态字,系统会向父进程发出SIGCHLD言号。当接到信号后,父进程提取子进程的终 止状态字,从wait()函数返回继续执行原程序。 其调用格式为:#i nclude #i nclude / (pid_t) wait(i nt *statloc) ; 正确返回:大于0:子进程的进程ID值; / 等于0:其它。 错误返回:等于一1调用失败。 3 exit()函数 exit() 函数是进程结束最常调用的函数,在main()函数中调用return,最终也是调用exit()函数。这些都是进程的正常终止。在正常终止时,exit()函数返回进程 结束状态。 其调用格式为:#in elude <> void exit(i nt status) ; 其中status为进程结束状态。 4 kill()函数 \ kill()函数用于删除执行中的程序或者任务。 其调用格式为:kill(i nt PID,i nt IID) ; 其中:PID是要被杀死的进程号,IID为向将被杀死的进程发送的中断号。 关于Linux下的C语言编程 1 )编辑器可使用vi 2 )编译器使用gee 格式:gee optio n file name 例如:gee -o main 主要的option -o指定输出文件名(不指定则生成默认文件) 其它的参数见帮助(man gee)

最新整理Linux操作系统的进程管理详解

L i n u x操作系统的进程管理详解 L i n u x操作系统中进程的管理是很重要的一部分,下面由学习啦小编为大家整理了L i n u x操作系统的进程管理详解的相关知识,希望对大家有帮助! L i n u x操作系统的进程管理详解 对于L i n u x的进程的管理,是通过进程管理工具实现的,比如p s、k i l l、p g r e p等工具; L i n u x操作系统的进程管理/1、 p s监视进程工具; p s为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用t o p工具; 1.p s的参数说明; p s提供了很多的选项参数,常用的有以下几个; l长格式输出; u按用户名和启动时间的顺序来显示进程; j用任务格式来显示进程; f用树形格式来显示进程; a显示所有用户的所有进程(包括其它用户); x显示无控制终端的进程; r显示运行中的进程;

w w避免详细参数被截断; 我们常用的选项是组合是a u x或l a x,还有参数f 的应用; p s a u x或l a x输出的解释; U S E R进程的属主; P I D进程的I D; P P I D父进程; %C P U进程占用的C P U百分比; %M E M占用内存的百分比; N I进程的N I C E值,数值大,表示较少占用C P U时间; V S Z进程虚拟大小; R S S驻留中页的数量; W C H A N T T Y终端I D S T A T进程状态 D U n i n t e r r u p t i b l e s l e e p(u s u a l l y I O) R正在运行可中在队列中可过行的; S处于休眠状态; T停止或被追踪;

进程管理实验报告

进程管理实验报告 1 .实验目的 通过进程的创建、撤消和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。 【答:进程概念和程序概念最大的不同之处在于: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 (4)进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。】2 .实验内容 (1) 了解系统调用fork()、execvp()和wait()的功能和实现过程。 (2) 编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,而子进程则重复显示字符串“child:”和自己的标识数。 (3) 编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用execvp()更换自己的执行代码,新的代码显示“new program.”。而父进程则调用wait()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。

(3)运行并查看结果 child’s pid=2894 child’s pid=2994 parent’s pid=2849 child’s pid=2897 child’s pid=2897 parent’s pid=2849 child’s pid=2894 child’s pid=2994 parent’s pid=2849 (4)gedit创建进程2.c 使用gcc 2.c -o 2编译并./2运行程序2.c#include #include #include #include #include(6)运行并查看结果 new program ! -rw-r–r--. 1 root root 2456 Apr 14 2019 /etc/passwd child peocess PID:29035 4 .思考 (1) 系统调用fork()是如何创建进程的?

实验一、进程调度实验报告

实验一、进程调度实验报告

广东技术师范学院实验报告 学院:计算机科学学 院 专业: 计算机科学与 技术(师范) 班级:成绩: 姓名:学号:组别:组员: 实验地点:实验日期:指导教师签名: 实验名称:实验一、进程调度实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解 二、实验类别 综合性实验。综合高级语言编程、进程调度模型、进程调度算法及数据结构等多方面的知识 三、实验内容和步骤 1.编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等 该题根据老师给的代码用Visual C++运行,结果以及分析如下: 预习情况操作情况考勤情况数据处理情况

结果分析:根据上述输入的三个进程的信息可以得到:优先级最高的是进程cc 最先调度进程cc的状态为运行态,需要执行的时间为10当前就绪队列状态为:进程aa先级比较高,处于就绪队列前面,而进程bb先级是三者中最低的,所以处于就绪队列的最后。而此时这两个进程的状态都为就绪态。

结果分析:当进程cc了一个时间片之后而它已占用CPU时间已达到所需要的运行时间,则将它的优先级减1之后,再将三个进程按优先级的大小排列,从中选择优先级大的进程进入运行状态,则该次进入运行态的是进程aa 按照这种方式一直运行下去: 直到:

相关主题