第2章 进程线程11作业
- 格式:ppt
- 大小:205.00 KB
- 文档页数:43
第二章进程和线程作业答案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,可以。
某一阻塞态进程等到的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。
作业、进程、线程1. 基本概念作业:⽤户在⼀次解决或是⼀个事务处理过程中要求计算机系统所做的⼯作的集合,它包括⽤户程序、所需要的数据集控制命令等。
作业是由⼀系列有序的步骤组成的。
作业的完成要经过作业提交、作业收容、作业执⾏和作业完成4个阶段。
在执⾏⼀个作业可能会运⾏多个不同的进程。
进程:程序在⼀个数据集上的⼀次运⾏过程。
是操作系统资源分配的基本单位。
在Windows下,进程⼜被细化为线程,也就是⼀个进程下有多个能独⽴运⾏的更⼩的单位. 进程还拥有⼀个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。
线程:是进程中的⼀个实体,是被操作系统独⽴调度和执⾏的基本单位。
⼀个进程包含⼀个或多个线程。
线程只能归属于⼀个进程并且它只能访问该进程所拥有的资源。
当操作系统创建⼀个进程后,该进程会⾃动申请⼀个名为主线程或⾸要线程的线程。
主线程将执⾏运⾏时宿主, ⽽运⾏时宿主会负责载⼊CLR。
简单总结:作业是向计算机提交任务的任务实体,⽽进程是执⾏实体,是资源分配的基本单位,线程是处理机调度的基本单位。
2. 进程2.1 进程的概念主要有两点:第⼀,进程是⼀个实体。
每⼀个进程都有它⾃⼰的地址空间,⼀般情况下,包括⽂本区域(text region)、数据区域(data region)和堆栈(stack region)。
⽂本区域存储处理器执⾏的代码;数据区域存储变量和进程执⾏期间使⽤的动态分配的内存;堆栈区域存储着活动过程调⽤的指令和本地变量。
第⼆,进程是⼀个“执⾏中的程序”。
程序是⼀个没有⽣命的实体,只有处理器赋予程序⽣命时,它才能成为⼀个活动的实体,我们称其为进程。
2.2 进程特征 动态性:进程的实质是程序在多道程序系统中的⼀次执⾏过程,进程是动态产⽣,动态消亡的。
并发性:任何进程都可以同其他进程⼀起并发执⾏ 独⽴性:进程是⼀个能独⽴运⾏的基本单位,同时也是系统分配资源和调度的独⽴单位; 异步性:由于进程间的相互制约,使进程具有执⾏的间断性,即进程按各⾃独⽴的、不可预知的速度向前推进 结构特征:进程由程序、数据和进程控制块三部分组成。
第二章作业第一次作业: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. 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。
第2章进程与线程习题2参考解答1.简要回答下列问题。
1)进程和线程有什么区别?2)线程是如何创建的?怎样设置线程的优先级?3)前台线程和后台线程有什么区别?如何将一个线程设置为后台线程?【解答】1)一个完整的进程拥有自己独立的内存空间和数据,但是同一个进程内的线程是共享内存空间和数据的。
一个进程对应着一段程序,它是由一些在同一个程序里面独立的同时运行的线程组成的。
线程有时也被称为并行运行在程序里的轻量级进程,这是因为它的运行依赖于进程提供的上下文环境,并且使用的是进程的资源。
在一个进程里,线程的调度有抢占式或者非抢占的模式。
在抢占模式下,操作系统负责分配CPU时间给各个线程,一旦当前的线程使用完分配给自己的CPU时间,操作系统将决定下一个占用CPU时间的是哪一个线程。
因此操作系统将定期的中断当前正在执行的线程,将CPU 分配给在等待队列的下一个线程。
所以任何一个线程都不能独占CPU。
每个线程占用CPU的时间取决于进程和操作系统。
进程分配给每个线程的时间很短,以至于我们感觉所有的线程是同时执行的。
2)C#中创建线程的工作是通过使用System.Threading名称空间下的Thread类的构造方法来完成的,如创建一个线程实例输出字符“a”1000次。
Thread thread=new Thread(new ThreadStart(func1));thread.Priority=ThreadPriority.Normal;thread.Start();static void func1(){for(int i=0;i<1000;i++){Console.WriteLine("a");}}C#中System.Threading名称空间下的ThreadPriority枚举类定义了线程可能具有的所有优先级的值,优先级由高到低排序为:Highest,AboveNormal,Normal,BelowNormal,Lowest。
操作系统第二章进程与线程1. 1进程与程序的重要区别之一是 [单选题] *A、程序有状态而进程没有B、程序可占有资源而进程不能C、进程有状态而程序没有(正确答案)D、进程能占有资源而程序不能2. 2下列关于进程和线程的叙述中,正确的是( )。
[单选题] *A、不管系统是否支持线程,进程都是资源分配的基本单位(正确答案)B、线程是资源分配的基本单位,进程是调度的基本单位C、系统级线程和用户级线程的切换都需要内核的支持D、同一进程中的各个线程拥有各自不同的地址空间3. 3下面所述步骤中,( )不是创建过程所必需的。
[单选题] *A、由调度程序为进程分配CPU(正确答案)B、建立一个进程控制块C、为进程分配内存D、将进程控制块链入就绪队列4. 4下列操作中,导致创建新进程的操作是( )。
I用户登录成功 II设备分配成功 III启动程序执行 [单选题] *A、仅 I和IIB、仅II和IIIC、.仅I和III(正确答案)D、I、II和III5. 5当被阻塞进程所等待的事件出现时,例如所需数据到达或等待的I/O操作已经完成,则调用唤醒原语操作,将等待该事件的进程唤醒。
请问唤醒被阻塞进程的是( )。
[单选题] *A、父进程B、进程本身C、另外的或与被阻塞进程相关的进程(正确答案)D、子进程6. 6进入内存的作业状态为( ) [单选题] *A、就绪状态B、阻塞状态C、后备状态D、执行状态(正确答案)7. 7一个进程的基本状态可以从其他两种基本状态转换过来,这个基本状态是( )。
[单选题] *A、就绪状态(正确答案)B、阻塞状态C、运行状态D、完成状态8. 8进程控制块主要包括四个方面用于描述和控制进程运行的信息。
其中,( )主要是有处理器各种寄存器的内容所组成。
[单选题] *A、进程标识符信息B、进程调度信息C、处理器状态信息(正确答案)D、进程控制信息9. 9下面所列进程的3种基本状态之间的转换关系不正确的是( )。
现代操作系统第二章进程与线程习题1. 图2-2中给出了三个进程状态,在理论上,三个状态可以有六种转换,每个状态两个。
但是,图中只给出了四种转换。
有没有可能发生其他两种转换中的一个或两个?A:从阻塞到运行的转换是可以想象的。
假设某个进程在I/O上阻塞,而且I/O 结束,如果此时CPU空闲,该进程就可以从阻塞态直接转到运行态。
而另外一种转换(从阻塞态到就绪态)是不可能的。
一个就绪进程是不可能做任何会产生阻塞的I/O或者别的什么事情。
只有运行的进程才能被阻塞。
2.假设要设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换。
CPU需要哪些信息?请描述用硬件完成进程切换的工作过程。
A:应该有一个寄存器包含当前进程表项的指针。
当I/O结束时,CPU将把当前的机器状态存入到当前进程表项中。
然后,将转到中断设备的中断向量,读取另一个过程表项的指针(服务例程),然后,就可以启动这个进程了。
3.当代计算机中,为什么中断处理程序至少有一部分是用汇编语言编写的?A:通常,高级语言不允许访问CPU硬件,而这种访问是必需的。
例如,中断处理程序可能需要禁用和启用某个特定设备的中断服务,或者处理进程堆栈区的数据。
另外,中断服务例程需要尽快地执行。
(补充)主要是出于效率方面的考量。
中断处理程序需要在尽量短的时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配部分。
4.中断或系统调用把控制转给操作系统时,为什么通常会用到与被中断进程的栈分离的内核栈?A:内核使用单独的堆栈有若干的原因。
其中两个原因如下:首先,不希望操作系统崩溃,由于某些用户程序不允许足够的堆栈空间。
第二,如果内核将数据保留在用户空间,然后从系统调用返回,那么恶意的用户可能使用这些数据找出某些关于其它进程的信息。
5.一个计算机系统的内存有足够的空间容纳5个程序。
这些程序有一半的时间处于等待I/O的空闲状态。
第二章 进程管理程序在顺序执行(①顺序性:每个操作必须在下一个操作开始之前结束。
②封闭性:程序一旦开始运行,独占全部资源,其执行结果不受外界因素影响。
③可再现性:当程序重复执行时,只要程序执行的环境和初始条件相同,必将获得相同的结果。
)时和并发执行(并发、资源共享、制约关系和动态等特征)时,分别具有哪些特征什么叫进程(进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
)为什么要引入进程的概念1. 进程的基本特征是什么(动态、共行、独立)•请叙述进程与程序的关系和差别2. 进程有哪几种基本状态请画出各状态之间的状态变化图并说明状态转换的典型原因3. 什么是PCB包含哪些主要内容其作用是什么(是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。
)(为什么说PCB 是进程存在的唯一标志) 4. 下列哪些情况是对的:⑴ 进程由自己创建⑷ 进程由于自己解除挂起⑵ 进程由于自己阻塞 ⑸ 进程由于自己唤醒 ⑶ 进程由于自己挂起⑹ 进程由自己撤消5. 请解释忙等待与阻塞的区别。
6. 用进程状态变迁图,我们可以说明有关处理机管理的大量内容,⑴ 什么“事件”引起每次显著的状态变迁⑵ 当人们观察系统中所有进程时,我们能够看到由某一进程产生的一次状态变迁也可能引起一进程的变迁。
在什么情况下,进程变迁3能立即引起一进程的变迁1发生⑶ 在什么情况下,如果有的话,将发生下述因果变迁: 21; 32; 41⑷ 在什么情况下,如果有的话,下述变迁不会立即引起其它变迁发生a) 1;b) 2;c) 3;d) 47. 操作系统的内核是什么8. 原语与非内核程序在执行上有什么不同9. 什么是进程的控制包括哪些基本内容(进程的创建,进程的撤消,进程的阻塞,进程的唤醒,进程的挂起,进程的激活,改变进程的优先级…等) 10. 什么是线程试说明进程与线程的关系与区别。
第2章进程与线程习题1.多个作业能够并行运行,比它们顺序执行完成的要快。
假设有两作业同时开始执行,每个需要10分钟的CPU时间。
如果顺序执行,那么最后一个作业需要多长时间可以完成?如果并并行执行又需要多长时间?假设I/O等待占50%。
(来源:A.S.Tanenbaum《现代操作系统(原书第3版)》P95)解:因为I/O等待占50%,所以当一个作业时,CPU利用率近似为50%,设I/O等待时间为x,满足x/(x+10)=50%解得每个作业的等待时间x=10分钟,完成一个作业需要20分钟所以,当两作业顺序执行时,最后一个作业完成需要20+20=40分钟;当两个作业并行执行时,最后一个作业完成需要20+20-10=30分钟2.一个快餐店有四类雇员:(1)领班,接收顾客点的菜单;(2)厨师,准备饭菜;(3)打包工,将饭菜装在袋子里;(4)收银员,将食品袋交给顾客并收钱。
它们采用的进程间通信方式是什么?(来源:A.S.Tanenbaum《现代操作系统(原书第3版)》P96)解:由管道的定义:在一个shell管道中,第一个进程的输出必须传送给第二个进程然后沿着管道传递下去。
我觉得题目所描述的进程通信方式为管道。
因为在餐厅里,当领班接受到顾客点的菜单时,传递给厨师,厨师接收到领班的菜单时,就准备饭菜,待准备好饭菜之后,由打包工将准备好的饭菜装进袋子里,收银员再将装好的饭菜交给顾客并收钱。
就像管道一样,一个进程的输出必须传送给第二个进程,然后沿着管道继续传递下去。
3.今有3个并发进程R、S、T,它们共享一个缓冲区B。
进程R负责从输入设备读入信息,每读出一个记录后就把它存入缓冲区B中;进程S利用缓冲区B加工进程R存入的记录;进程T把加工完毕的记录打印输出。
缓冲区B一次只能存放一个记录。
只有在进程T把缓冲区里的记录输出后,才能再往里放新的记录。
试用信号量及期P、V操作控制这3个进程间的正确工作关系。
(来源:宗大华《操作系统(第二版)》P162)解:P、V操作如下:由P 、V 操作图以及题意可设置初始信号量s1、s2、s3分别为1、0、0。