操作系统进程同步
- 格式:ppt
- 大小:137.00 KB
- 文档页数:19


《进程同步与互斥》实验报告
实验序号:01 实验项目名称:进程同步与互斥
学 号 姓 名 专业、班
实验地点 指导教师 时间
一、实验目的
1、掌握基本的进程同步与互斥算法,理解生产者-消费者问题。
2、学习使用Windows 2000/XP中基本的同步对象,掌握相关API的使用方法。
3、了解Windows 2000/XP中多线程的并发执行机制,实现进程的同步与互斥。
4、设计程序,实现生产者-消费者进程(线程)的同步与互斥;
二、实验环境
Windows 2000/XP + Visual C++ 6.0
三、实验内容
以生产者-消费者模型为依据,在Windows 2000/XP环境下创建一个控制台进程,在该进程中创建n个线程模拟生产者和消费者,实现进程(线程)的同步与互斥。
四、设计思路和流程框图
生产者进程的功能:生产东西,供消费者消费;消费者进程的功能:消费生产者生产的东西。生产者生产产品并存入缓冲区供消费者取走使用,消费者从缓冲器内取出产品去消费。在生产者和消费者同时工作时,必须禁止生产者将产品放入已装满的缓冲器内,禁止消费者从空缓冲器内取产品。
五、源程序(含注释)清单
#include #include
#include
#include
#include
//定义一些常量;
//本程序允许的最大临界区数;
#define MAX_BUFFER_NUM 10
//秒到微秒的乘法因子;
#define INTE_PER_SEC 1000
//本程序允许的生产和消费线程的总数;
#define MAX_THREAD_NUM 64
//定义一个结构,记录在测试文件中指定的每一个线程的参数
struct ThreadInfo
{
int serial; //线程序列号
char entity; //是P还是C
第二章 进程同步
一、选择最合适的答案
1. 用P、V操作管理临界区时,信号量的初值一般应定义为( )。
A.–1 B.0 C.1 D.任意值
2. 有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是( )。
A.1至 –(m-1) B.1至m-1 C.1至–m D.1至m
3. 在下面的叙述中,正确的是( )。
A.临界资源是非共享资源 B.临界资源是任意共享资源
C.临界资源是互斥共享资源 D.临界资源是同时共享资源
4. 对进程间互斥地使用临界资源,进程可以( )
A.互斥地进入临界区 B.互斥地进入各自的临界区
C.互斥地进入同一临界区 D.互斥地进入各自的同类资源的临界区
5. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示( )。
A.一个进程进入了临界区,另一个进程等待
B.没有一个进程进入临界区
C.两个进程都进入了临界区
D.两个进程都在等待
6. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=-1时表示( )。
A.一个进程进入了临界区,另一个进程等待
B.没有一个进程进入临界区
C.两个进程都进入了临界区
D.两个进程都在等待
7.当一进程因在记录型信号量S上执行P(S)操作而被阻塞后,S的值为( )。
A.>0 B.<0 C.≥0 D.≤0
8.当一进程因在记录型信号量S上执行V(S)操作而导致唤醒另一进程后,S的值为( )。
A.>0 B.<0 C.≥0 D.≤0
9.如果信号量的当前值为-4,则表示系统中在该信号量上有( )个进程等待。
山东大学操作系统实验报告4进 程同步实验
计算机科学与技术学院实验报告
实验题目:实验四、进程同步实验 学号:
日期:20120409 班级:计基地12 姓名:
实验目的
加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互
操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案了 Linux
系统 IPC进程同步工具的用法,练习并发协作进程的同步与互斥操作的编与调试技术
实验内容
抽烟者问题假设一个系统中有三个抽烟者进程每个抽烟者不断地卷烟并抽烟抽烟者卷起并抽掉一颗烟需要有三种材料烟草纸和胶水一个抽烟者有烟草一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有种材料但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者卷起并抽掉一颗烟后会发信号通知供应者让它继续提供另外的两种材料。这过程重复进行 请用以上介绍 IPC同步机制编程实现该问题要求的功能
硬件环境@CPUi3-2350MIntel?Cor42.30GHz MobileIntel?Sandybridgex86/MMX/SSE2
4G
内存3操作系统:20.1 GB
磁盘:
软件环境:
ubuntu13.04
实验步骤:
(1)新建定义了producer和consumer共用的 文件。ipc.h函数原型和变量的IPC.
(2)新建ipc.c文件,编写producer和consumer共用的IPC的具体相应函数。
(3)新建Producer文件,首先定义producer
的一些行为,利用系统调用建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。
(4) 新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。
操作系统自测题三
一 选择题
1.以下________操作系统中的技术是用来解决进程同步的。
A.管道 B.管程 C.通道 D.DMA
2.以下________不是操作系统的进程通信手段。
A.管道 B.原语 C.套接字 D.文件映射
3.如果有三个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为________。
A.3 B.2 C.1 D.0
4.下面有关进程的描述,________是正确的。
A.进程执行的相对速度不能由进程自己来控制
B.进程利用信号量的P、V操作可以交换大量的信息
C.并发进程在访问共享资源时,不可能出现与时间有关的错误
D.P、V操作不是原语操作
5.信号可以用来实现进程之间的________
A.调度 B.同步与互斥 C.同步 D.互斥
6.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示________。
A.没有进程进入临界区
B.有1个进程进入了临界区
C.有2个进程进入了临界区
D.有1个进程进入了临界区并且另一个进程正等待进入
7.信箱通信是一种________方式。
A.直接通信 B.间接通信 C.低级通信 D.信号量
8.以下关于临界区的说法,________是正确的。
A.对于临界区,最重要的是判断哪个进程先进入
B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区
C.信号量的初值非负,在其上只能做P、V操作
D.两个互斥进程在临界区内,对共享变量的操作是相同的
9.并发是指________。
A.可平行执行的进程 B.可先后执行的进程 C.可同时执行的进程 D.不可中断的进程
10.临界区是________。
A.一个缓冲区 B.一段数据区 C.一段程序 D.栈
11.进程在处理机上执行,它们的关系是________。