一、名词解释

1.进程上下文

进程执行活动全过程的静态描述。

包括计算机中与执行该进程有关的各寄存器的值、程序段在经过编译之后形成的机器指令代码集(正文段)、数据集、各种堆栈和PCB结构。

* 进程控制块PCB中应包含信息:进程控制符,处理机状态,进程调度信息,进程控制信息。

2.直接制约

一组在异步环境下的并发进程,各自的执行结果互为对方的执行条件,从而限制各进程执行速度的过程。

3.临界区

每个进程中访问临界资源的那段程序代码。

4.进程同步

进程同步是指一组并发进程由于相互合作,共同完成某种任务,因而相互等待,使得各进程按一定的速度执行的过程。

5.内核线程

由操作系统完成创建和撤销,用来执行一个指定的函数线程。

二、选择题

1.进程的三个基本状态是(阻塞)、(就绪)、(执行)。由(就绪)到(执行)是由进程调度所引起的;由(执行)到(阻塞)是正在执行的进程发生了某事件,使之无法继续执行而引起的。

2.在一个单处理机系统中,存在n个进程,则最多有(n-1)个进程处于就绪队列,(n)个进程处于阻塞状态。

3.在分时系统中,导致进程创建的典型事件是(用户登陆);在批处理系统中,导致进程创建的典型事件是(作业调度);由系统专门为运行中的应用进程创建新进程的事件是(提供服务)。在创建进程时,(为进程分配CPU)不是创建所必需的步骤。

A:(1)用户注册;(2)用户登录;(3)用户记账;(4)用户通信。

B:(1)作业录入;(2)作业调度;(3)进程调度;(4)中级调度。

C:(1)分配资源;(2)进程通信;(3)共享资源;(4)提供服务。

D:(1)为进程建立PCB;(2)为进程分配内存等资源;(4)将进程插入就绪队列。

4.在生产者—消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。它们的初值应分别是(1)、(0)和(+n)。

5.下面的叙述中,正确的一条是(信号量的初值不能为负数)。

(1)一个进程的状态发生变化总会引起其他一些进程的状态发生变化。

(2)进程被挂起后,状态变为阻塞状态。

(3)信号量的初值不能为负数。

(4)在进程对应的代码中使用wait、signal操作后,可以防止系统死锁。

三、填空题

1.进程特征包括其结构特征、并发性、(动态性)、独立性和(异步性)。

2.若进程的用户程序段在执行时,该进程处于(用户态),也称为(目态)。

3.PCB中包含有进程的描述信息、(控制信息)以及(资源信息),是进程动态特征的集中反映。

4.进程空间分为用户空间和(系统空间)。

5.在比较进程和程序时,进程是(动态)的概念,而程序是(静态)的概念。

* 进程和程序区别

6.由共享公有资源而造成的对并发进程执行速度的制约称为(资源共享)。

7.进程同步机制应遵循的原则包括(空闲让进)、(忙则等待)、(有限等待)和(让权等待)。

8.进程通信包括(共享存储器)、(管道)和(消息传递系统)三种方式。

9.线程的基本状态包括(执行)状态、(就绪)状态和(阻塞)状态。

* 线程管程客户机-服务器系统

10.在间接通信方式中,进程之间的通信需要通过(消息邮箱)来暂时存放消息。

四、判断题

1.(F)操作系统的一个重要概念是进程,不同进程所执行的代码也不同。

2.(F)操作系统通过PCB来控制和管理进程,用户进程可从PCB中读出与本身运行状态相关的信息。

3.(F)当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中。

4.(F)当进程申请CPU得不到满足时,它将处于阻塞状态。

5.(T)管程每次只允许一个进程进入。

6.(T)wait、signal操作可以解决一切互斥问题。

7.(F)程序的顺序执行具有不可再现性。

8.(F)临界区是指进程中用于实现进程同步的那段代码。

9.(T)当某进程处于静止就绪状态时,该进程在外存。

10.(F)原语可以并发执行,并且其执行过程可以被中断。

五、问答题

1. 在操作系统中,何为进程“忙等”和“饥饿”?它们分别有什么缺点?

忙等是当临界资源忙碌,即正在被访问时,其他访问进程必须不断进行测试的状态。

忙等的缺点是不符合让权等待的原则,造成处理机时间的浪费,同时很难将它们用于解决复杂的进程同步问题。

饥饿是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。

饥饿的缺点是等待时间过长造成处理机时间的浪费,同时给进程推进和响应带来明显影响。

2. 试写出下图所示各个进程的前驱关系,并使用信号量机制(每一个前驱关系给一个信号量)设计程序执行所有进程。

p1() {S1;signal(a); signal(b);}

p2() {wait(a);S2; signal(c); signal(d);}

p3() {wait(b);S3; signal(e);}

p4() {wait(c);S4; signal(f);}

p5() {wait(d);S5; signal(g);}

p6() {wait(e);S6; signal(h);}

p7() {wait(f);wait(g); wait(h); S7;}

void main(){

semaphore a, b,c, d, e, f, g, h;

a.value =b.value= c.value =e.value =f.value =g.value = h.value =0;

cobegin

p1(); p2();p3(); p4(); p5(); p6(); p7();

coend

}

3. 桌上有个能盛下5个水果的空盘子。父亲不停地向盘中放苹果或桔子,儿子不停地从盘中取出桔子,女儿不停地从盘中取出苹果。规定3人不能同时从盘中取放水果。试用信号量实现3人代表的进程之间的同步。

semaphore empty= 5, orange = 0, apple = 0, mutex = 1;

Dad() {

while (1) {

wait(empty);//如果先申请临界资源再申请空盘子,则可能出现申请临界资源成功却因为申请空盘子失败而阻塞,结果后面的进程想申请临界资源却无法申请而阻塞,造成连锁反应;

wait(mutex);

将水果放入盘中;

signal(mutex);

if (放入的是桔子)  signal(orange);

else  signal(apple);

}

}

Son() {

while (1) {

wait(orange);

wait(mutex);

从盘中取一个桔子;

signal(mutex);

signal(empty);

享用桔子;

}

}

Daughter() {

while (1) {

wait(apple);

wait(mutex);

从盘中取一个苹果;

signal(mutex);

signal(empty);

享用苹果;

}

}

void main(){

cobegin

Dad(); Son();Daughter();

coend

}

4. 有3个进程PA,PB和PC协作解决文件打印问题,PA将文件记录从磁盘中读入内存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每次执行打印一个记录,缓冲区的大小与记录大小一样。请使用PV操作实现进程的同步。

semaphoreempty1,full1,empty2,full2;
empty1=empty2=1;full1=full2=0;

process PA{
        while(1){
            从输入设备上读信息;
            P(empty1);
            将读入的信息放入缓冲区1;
            V(full1);
        }
    }
process PB{
        while(1){
            P(full1);
            从缓冲区1中取出内容;
            V(empty1);
            P(empty2);
            将缓冲区1中的内容复制到缓冲区2;
            V(full2);
        }
    }

process PC{
        while(1){
            P(full2);
            从缓冲区2中取出内容;
            V(empty2);
            打印内容;
        }

}
void main(){

cobegin

PA(); PB();PC();

coend

}

5. 嗜睡理发师问题:一个理发店有一个有N张沙发的等候室和一个放有1张理发椅的理发室组成,没有顾客理发师理发师便去睡觉,当一个顾客走进理发店时,如果所有的沙发都已被占用,他便离开理发店;否则,如果理发师正在为其他顾客理发,该顾客就找一张空沙发坐下等待,如果理发师因无顾客正在睡觉,由新到的顾客唤醒理发师理发,在理发完成后,顾客必须付费收费后才能离开理发店,试用PV操作实现此同步问题。

int count=0;
semaphore mutex=1, sofa=N, empty=1, full=0, payment=0, receipt=0;
guest(){

P(mutex);
if(count>=N){
V(mutex);
离开理发店;
}
else{
count=count+1;
P(mutex);
if(count>1){

P(sofa);
在沙发上就座;
P(empty);
从沙发上起来;
V(sofa);
}
else 唤醒理发师;
在理发椅上就座;
V(full);
理发;
付费;
V(payment);
P(receipt);
从理发椅上站起来;
V(empty);
P(mutex);
count=count-1;
V(mutex);
离开理发店;

}

}
barber(){

while(1){

P(full);
替顾客理发;
P(payment);
收费;
V(receipt);
}
}
void main(){

cobegin

guest();barber();

coend

}

第二章 进程的描述与控制相关推荐

  1. 模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制

    操作系统第二章--进程的描述与控制 前趋图和程序执行 前趋图 前趋图是一个有向无循环图DAG,用来描述进程之间执行的前后关系 初始结点:没有前趋的结点 终止结点:没有后继的结点 重量:表示该结点所含有 ...

  2. 【操作系统】 第二章 进程的描述与控制

    第二章 进程的描述与控制 2.1 什么是进程 程序代码+相关数据+程序控制块PCB 当处理器开始执行一个程序的代码时,称这个执行的实体为进程 2.1.1 进程和进程控制块PCB PCB(Process ...

  3. 【操作系统】第二章--进程的描述与控制--笔记与理解(2)

    笔记理解之后可以进行深入解释→[操作系统]第二章–进程的描述与控制–深入与解释(2) 文章目录 第二章--进程的描述与控制--笔记与理解(2) 经典进程的同步问题 生产者-消费者问题 读者-写者问题 ...

  4. 操作系统 第二章 进程的描述与控制(4)进程同步(重点)

    计算机操作系统 读书笔记 第二章 进程的描述与控制 进程同步(重点) 计算机操作系统 前言 进程同步 一.进程同步的基本概念 1.1 两种形式的制约关系 1.2 临界资源(Critical Resou ...

  5. 操作系统第二章进程的描述与控制

    第二章进程的描述与控制 前驱图和程序执行 程序并发执行 程序的并发执行 程序并发执行时的特征 间断性 失去封闭性 不可再现性 进程的描述 进程的定义 进程是程序的一次执行 进程是一个程序及其数据在处理 ...

  6. 【操作系统】第二章-进程的描述与控制

    第二章.进程的描述与控制 前言 在传统的操作系统中,为了提高资源利用率和系统吞吐量,通常采用多道程序技术,将多个程序同时装入内存,并使之并发运行,传统意义上的程序不再能独立运行.此时,作为资源分配和独 ...

  7. 考研OR工作----计算机操作系统简答题及疑难知识点总结(第二章 进程的描述与控制)

    计算机操作系统从第二章开始内容会变得异常多,还是希望能够帮助到大家,在这一章阿婆主还会把书上的典型的PV操作题给打上来,给大家用作参考,如果有问题的地方,还请大家在文章下方留言,我好更正,或者你们有更 ...

  8. 操作系统第二章-进程的描述与控制

    前趋图和程序执行 1.前趋图 所谓前趋图(PG),是指一个有向无环图,可记为DAG,用于描述进程之间执行的先后顺序,具体见书上P35. 没有前趋的结点称为初始结点,没有后继的结点称为终止结点,每个结点 ...

  9. 操作系统学习笔记——第二章 进程的描述与控制(二)

    2.3 进程控制 进程控制是对系统中的全部进程实施有效的管理,包括进程创建.终止.进程阻塞和唤醒. 一.进程的创建 二.进程的终止 三.进程的阻塞与唤醒 四.进程的挂起与激活 一.进程的创建 创建原语 ...

最新文章

  1. R语言head函数和tail函数获取dataframe、列表list、向量vector的头部和尾部数据:tail提取数据对象的尾部数据、head提取数据对象的头部数据、默认6条数据、自定义设置返回条数
  2. Android中如何使用ViewPager实现类似laucher左右拖动效果
  3. Spring Boot 2.2.1 正式发布,需特别注意这个注解的使用!
  4. CPL DPL RPL的区别 一致性代码段和非一致性代码段
  5. [I2C]I2C总线协议图解
  6. HTML5 ArrayBufferView之DataView
  7. 【机器学习基础】撒花!李宏毅机器学习 2021 版正式开放上线
  8. VTK:图表之VisualizeDirectedGraph
  9. 【数据分析】Superset 之三 Docker操作管理
  10. spark 持久化机制入门
  11. 架构-LAMP特级学习(网站加速解决方案)
  12. 小米路由器无线网无法连接到服务器,小米路由器桥接后进不了路由器设置
  13. cpu开启超线程linux,Linux开发人员声称除非禁用超线程否则可以利用英特尔CPU
  14. iOS 仿YY直播心形动画 烟花动画
  15. 思维导图分享以及MindManager使用说明
  16. ESP32-C3 flash encryption secure boot
  17. matlab watershed函数简单实现_薛定宇教授大讲堂(卷):MATLAB程序设计|文末赠书...
  18. 【转帖】姑娘不是你想追,想追就能追。
  19. Go Signal信号
  20. js中动态添加/插入HTML代码块,并通过JQuery动态绑定点击事件

热门文章

  1. 用C语言制作爱心,如何用C语言画一个“心形”
  2. 对于初学PS的你来说一定要注意的13个坏习惯!!
  3. 解锁阿迪达斯营销姿势,分析阿迪达斯成功背后的营销策略
  4. 基于SpringBoot的外卖项目(详细开发过程)
  5. openGL之API学习(一八零)POINTS LINES TRIANGLES QUADS 绘图顺序规则
  6. Arduino “学生寝室”门禁管理(红外遥控+舵机+无源蜂鸣器+DHT11温湿度传感器+LCD1602+LED灯)
  7. 微信UA,品牌手机少见微信UserAgent 部分型号2020年9月最新版本
  8. Swift语言基础笔记(二)
  9. Lumion10.3 更真实的置换材质质感
  10. 2022款联想yoga16s和联想小新pro16的区别 联想yoga16s和联想小新pro16哪个好