山东大学操作系统课设lab3
实验三 使用信号量解决生产者/消费者同步问题(lab3)
实验目的
使用操作系统信号量机制,编写程序解决生产者/消费者同步问题。
理解Nachos的信号量是如何实现的
信号量问题主要是对信号量的的占用。分为两个角色来考虑信号量,一个是生产者,一个是消费者。
生产者/消费者问题是如何用信号量实现的
生产者负责生产message;等待buffer中是否有空位;获取互斥锁;将一条message放入buffer中;释放互斥锁; buffer中message++。
消费者等待通知有Message;获取互斥锁;取出一条message;释放互斥锁;buffer中message–。
在Nachos中是如何创建并发线程的
常规操作:
#include <fcntl.h>//访问权限、创建文件模式、非阻塞标记
#include <stdlib.h>//定义了五种类型、一些宏和通用工具函数。
#include <unistd.h>//提供对 POSIX 操作系统 API 的访问功能的头文件的名称
主要程序在prodcons.cc中
定义3个信号量;2个资源信号量,nempty,full;1个互斥信号量,mutex。