操作系统A-第二章(进程、PV)作业解析

目录

1.什么是 PCB? PCB 主要哪些信息组成?多道程序设计为什么要引入 PCB?

2.有三个进程,Reader 进程读入数据 number1,将其放入缓冲器B1,Executor 进程将 B1 中数据取出,处理成数number2,将其放入缓冲器 B2,Printer 进程number2 数据取出打印,假设 B1 和 B2 只能存放一个数据,用 P、V 操作管理这三个进程的执行。

 3.设自行车生产车间有两个货架,货架 A 可以存放 8 个车架,货架 B 可以存放 20 个车轮;又设有 4 个工人,他们的活动是重复劳动,分别为:工人 1 加工一个车架放入货架 A 中;工人 2、3 分别加工车轮放入货架 B 中(每人每次放入 1 个车轮);工人 4 从货架 A 中取一个车架,再从货架 B 中取两个车轮,组装成一辆自行车。试用 PV 操作实现四个工人的合作。

 4.假定有一个成品仓库,总共能存放 8 台成品,生产者进程把生产成品放入仓库,消费者进程从仓库中取出成品消费。为了防止积压,仓库满时就停止生产。由于仓库搬运设备只有一套,故成品的存入和取出只能分别进行,试用 P、V 操作来实现该方案。

 5.有三个进程 R、W1、W2 共享一个缓冲器B,而 B 中每次只能存放一个数。当 B 中无数时,进程 R 可将从输入设备上读入的数存放到缓冲器 B 中;若存放到 B 中的是奇数,则允许进程 W1 将其取出打印;若存放到 B 中的是偶数,则允许进程W2 将其取出打印;同时规定:进程 R 必须等缓冲器中的数被取出后才能再存放下一个数;进程 W1 或 W2 对每次存入缓冲器的数只能打印一次;W1 和W2 都不能从空的缓冲器中取数。用 P、V 操作作为同步机制写出三个并发进程的同步算法。(动作部分可用文字描述)

6.三个进程 P1、P2、P3 互斥使用一个包含 N(N>0)个单元的缓冲区。P1 每次用 produce( )生成一个正整数并用 put( )送入缓冲区某个单元中;P2 每次用 getodd( )从缓冲区中取出一个奇数并用 countodd( )统计奇数个数;P3 每次用 geteven( )从缓冲区中取出一个偶数并用counteven( )统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。 


1.什么是 PCB? PCB 主要哪些信息组成?多道程序设计为什么要引入 PCB?

答:(1)PCB (Process control Block) 就是进程控制块, OS 对每个进程定义了一个数据结构—PCB,记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。
(2)PCB 中的信息主要有:标识符信息、处理机现场信息、进程调度信息、进程控制信息。
(3)内存中有多个程序并发运行,为了区分开这些进程,需要给每个进程赋予一个唯一的 ID号,即进程号;为了标识进程的家族关系,需要标识进程的父进程、子进程等家族信息;多个进程并发运行时,就必然要有进程切换,当发生进程切换时,需要把老进程的处理机现场信息保存下来,再把新进程的已保存的处理机现场信息加载到处理机的相应寄存器中,CPU就开始运行新的进程了,故需要记录进程的处理机现场信息;调度程序调度时要根据一些调度信息进程调度...故多道程序设计需要引入 PCB 记录这些相关的信息。(注:若给出其他合理说法,同样给分)

2.有三个进程,Reader 进程读入数据 number1,将其放入缓冲器B1,Executor 进程将 B1 中数据取出,处理成数number2,将其放入缓冲器 B2,Printer 进程number2 数据取出打印,假设 B1 和 B2 只能存放一个数据,用 P、V 操作管理这三个进程的执行。

操作系统A-第二章(进程、PV)作业解析_第1张图片

操作系统A-第二章(进程、PV)作业解析_第2张图片

 3.设自行车生产车间有两个货架,货架 A 可以存放 8 个车架,货架 B 可以存放 20 个车轮;又设有 4 个工人,他们的活动是重复劳动,分别为:工人 1 加工一个车架放入货架 A 中;工人 2、3 分别加工车轮放入货架 B 中(每人每次放入 1 个车轮);工人 4 从货架 A 中取一个车架,再从货架 B 中取两个车轮,组装成一辆自行车。试用 PV 操作实现四个工人的合作。

操作系统A-第二章(进程、PV)作业解析_第3张图片

 操作系统A-第二章(进程、PV)作业解析_第4张图片

操作系统A-第二章(进程、PV)作业解析_第5张图片

 操作系统A-第二章(进程、PV)作业解析_第6张图片

 操作系统A-第二章(进程、PV)作业解析_第7张图片

 4.假定有一个成品仓库,总共能存放 8 台成品,生产者进程把生产成品放入仓库,消费者进程从仓库中取出成品消费。为了防止积压,仓库满时就停止生产。由于仓库搬运设备只有一套,故成品的存入和取出只能分别进行,试用 P、V 操作来实现该方案。

操作系统A-第二章(进程、PV)作业解析_第8张图片

操作系统A-第二章(进程、PV)作业解析_第9张图片

 5.有三个进程 R、W1、W2 共享一个缓冲器B,而 B 中每次只能存放一个数。当 B 中无数时,进程 R 可将从输入设备上读入的数存放到缓冲器 B 中;若存放到 B 中的是奇数,则允许进程 W1 将其取出打印;若存放到 B 中的是偶数,则允许进程W2 将其取出打印;同时规定:进程 R 必须等缓冲器中的数被取出后才能再存放下一个数;进程 W1 或 W2 对每次存入缓冲器的数只能打印一次;W1 和W2 都不能从空的缓冲器中取数。用 P、V 操作作为同步机制写出三个并发进程的同步算法。(动作部分可用文字描述)

操作系统A-第二章(进程、PV)作业解析_第10张图片

操作系统A-第二章(进程、PV)作业解析_第11张图片

6.三个进程 P1、P2、P3 互斥使用一个包含 N(N>0)个单元的缓冲区。P1 每次用 produce( )生成一个正整数并用 put( )送入缓冲区某个单元中;P2 每次用 getodd( )从缓冲区中取出一个奇数并用 countodd( )统计奇数个数;P3 每次用 geteven( )从缓冲区中取出一个偶数并用counteven( )统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。 

操作系统A-第二章(进程、PV)作业解析_第12张图片

 操作系统A-第二章(进程、PV)作业解析_第13张图片

你可能感兴趣的:(操作系统,操作系统)