随笔分类 - 操作系统
摘要:题目描述: 现有一个小巷,除安全岛可容2人暂时停身外,仅能容一人通过。A,B两头都允许行人进出,试用信号量和PV操作设计一个算法,让两头的行人顺利通过小巷。 解题模型: sem_t A_S;//A-S路段 sem_t B_S;//B-S路段 sem_t island;//岛 sem_t A;//对A
阅读全文
摘要:一、一个生产者、一个消费者共享一个缓冲区 int B; semaphore empty; //可以使用的空缓冲区数 semaphore full; //缓冲区内可以使用的产品数 empty=1; //缓冲区内允许放入一件产品 full=0; //缓冲区内没有产品 process producer()
阅读全文
摘要:问题描述: 有五个哲学家围坐在一圆桌旁,桌中央有一盘通心面,每人面前有一只空盘于,每两人之间放一把叉子。每个哲学家思考、饥饿、然后吃通心面。为了吃面,每个哲学家必须获得两把叉子,且每人只能直接从自己左边或右边去取叉子。 解决方案: 至多允许四个哲学家同时吃; Semaphore fork[5]={1
阅读全文
摘要:问题描述: 理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子 如果没有顾客,理发师便在理发椅上睡觉 一个顾客到来时,它必须叫醒理发师 如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开 程序模型: int waiting=0;//等候理发顾客数 int CH
阅读全文
摘要:有两组并发进程:读者和写者,共享一个文件F 读者可以同时读取文件 读者和写者不能同时对文件进行操作 两个读者也不能同时对文件进行操作 读者优先模型: 读者不释放写者的临界区资源,写者就不能进行操作 int readcount=0;//读进程计数 semaphore writeblock,mutex;
阅读全文
摘要:有界缓冲问题有n个生产者和m个消费者,连接在一个有k个单位缓冲区的有界缓冲上。其中,pi和cj都是并发进程,只要缓冲区未满,生产者pi生产的产品就可投入缓冲区;只要缓冲区不空,消费者进程cj就可从缓冲区取走并消耗产品。 模型: int k; //k个单位的缓冲区 typedef anyitem it
阅读全文
摘要:题目详情: 临界资源:一个盘子盘子 四个进程: ①父亲进程,生产苹果 ②母亲进程:生产橘子 ③儿子进程:吃苹果 ④女儿进程:吃橘子 程序源码: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h>
阅读全文
摘要:概念: 临界区**指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。 临界区调度原则: 1、如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。 2、任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有
阅读全文

浙公网安备 33010602011771号