1、操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 习题四参考答案(P97) 4-3 什么是进程?进程与程序的主要区别是什么? 答:进程,即是一个具有一定独立功能的程序关于某个数据集合的一 次活动。 进程与程序的主要区别是: (1)程序是指令的有序集合,是一个静态概念,其本身没有任何运 行的含义, 进程是程序在处理机上的一次执行过程, 是一个动态概念。 (2)程序作为软件资料可长期保存,而进程是有生命期的,因创建 而产生、因调度而执行、因得不到资源而暂停、因撤消而消亡。 (3)程序是记录在介质上指令的有序集合,而进程则由程序、数据 和进程控制块 3 部分组成。 (4)进程与程序之
2、间无一一对应关系。不同的进程可以包含同一程 序,同一程序在执行中也可以产生多个进程。 (5)进程是一个独立的 运行单位,也是系统进行资源分配和调度的独立单位。而程序无此概 念。 4-6 进程有哪几个基本状态?试画出进程状态变迁图,并标明发生变 迁的可能原因。 答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻 塞、挂起、睡眠) 。 1操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 (1) (2) (3) (4) 进程调度程序把 处理机分配给进 程 进程因某事件 (如 等待I/O完成)变 成阻塞状态 时间片 用完 就绪 阻塞 运行某事件被解除 (如I/O完成)4-9
3、我们用进程流图来描述一组合作进程执行的先后次序。试用信号 灯的 P、V 操作实现如图 4.22(a)、(b)中所示进程之间的同步,并写 出程序描述。 p7 p5 p6 f s P2 P3 P1 f sP4 图4.22(b) 图4.22(a) (a)解:Main() int s12=0,s13=0,s14=0; cobegin P 1; P 2; P 3; 2操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 P 4; c oe nd P1() p1 execute; V (s 12); V (s 13); V (s 14); P2() P (s 12); p2 execute;
4、P3() P (s 13); p3 execute; P4() P (s 14); p4 execute; (b)略 3操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 4-11 如图 4.24 所示, get、copy、put三进程共用两个缓冲区 s、t(其 大小为每次存放一个记录) 。 get 进程负责不断地把输入记录送入缓冲 区 s 中, copy 进程负责从缓冲区 s 中取出记录复制到缓冲区 t 中,而 put 进程负责从缓冲区 t 中取出记录打印。试用 P、V 操作实现这三 个进程之间的同步,并写出程序描述。 缓冲区S 缓冲区T put copy get 解:Main
5、() int sa=1,sb=0;/ sa 表示缓冲区 S 是否为空,sb 表示是否为满。 int ta=1,tb=0;/ ta 表示缓冲区 T是否为空,tb 表示是否为满。 cobegin ge t; c opy; put; coend Get() while(1) P (sa); input data to buffer S; V(sb); 4操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 Copy () while(1) P(sb); copy data from buffer S; V (sa); P(ta); input copy-data to buffer T;
6、 V(tb); Put() while(1) P(tb); output data to buffer S; V(ta); 4-12 什么是进程的互斥与同步?同步和互斥这两个概念有什么联系 和区别? 答:在操作系统中,当一个进程进入临界区使用临界资源时,另一个 进程必须等待,当占用临界资源的进程退出临界区后,另一进程才被 允许去访问此临界资源。我们称进程之间的这种相互制约关系为互5操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 斥。 进程同步是指多个相关进程在执行次序上的协调。这些进程相互合 作,在一些关键点上可能需要互相等待或互通消息。 4-13 在一个实时系统中,有两个进
7、程 p 和 q,它们是循环运行的。循 环进程 p 每隔 1 秒钟由脉冲寄存器(REG)获得输入,并把它累计 到一个整型变量(W)中,同时清除脉冲寄存器。循环进程 q 则每 隔 1 小时输出这个整形变量的内容并把它复位。系统提供标准的 I/O 过程 input 和 output,并提供系统调用命令 delay(seconds)。试拟定 出这两个进程并发活动的程序描述。 解:设置一个互斥信号量 mutex 用来实现进程 p 和 q 对共享变量 W 的互斥使用。 Main() int mutex=1; int W=0; cobegin p; q; coend p() 6操作系统课后习题参考答案 湖北
8、工业大学信息工程学院计算机系 沈华 while(1) delay(1); P(mutex); W=W+input(REG); V(mutex); REG=0; q() while(1) delay(3600); P(mutex); output(W); W=0; V(mutex); 4-18 什么是线程?线程和进程有什么区别? 答:线程有时也称为轻量级进程,它是比进程更小的活动单位,它是 进程中的一个执行路径。一个进程可以有多个执行路径即线程。 线程和进程的主要区别如下: 7操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 (1)线程是进程的一个组成部分。一个进程可以有多个线程
9、,而且 至少有一个可执行的线程。 (2)进程是资源分配的基本单位,它拥有 自己的地址空间和各种资源。线程是处理机调度的基本单位,它只能 和其他线程共享进程的资源,而本身并不具有任何资源。 (3)进程的 多个线程都在进程的地址空间内活动。这样,在以线程为单位进行处 理机调度和切换时,由于不发生资源变化特别是地址空间的变化,因 此切换时间较短。而以进程为单位进行处理机调度和切换时,由于涉 及到资源转移及现场保护等问题, 将导致切换时间变长和资源利用率 降低。 (4)线程和进程一样,都有自己的状态和相应的同步机制。但 是,由于线程没有自己单独的程序和数据空间,因而不能像进程的程 序和数据那样交换到外存去。 (5)进程的调度和控制大多由操作系统的内核完成,而线程的控制 既可以由操作系统内核完成,也可以由用户控制完成。8