前言 大家好吖,欢迎来到 YY 滴操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁 本博客主要内容,收纳了一部门基本的操作系统题目,供yy应对期中考试复习。大家可以参考
Semaphore Vs1=0;
Semaphore Vs2=0;
Main(){
Cobegin{
producer //生产者进程
while(true){
送产品到缓冲区;
V(Vs1); //允许取产品
P(Vs2); //阻止送产品
}
consumer //消费者进程
while(true){
P(Vs1); //阻止取产品
从缓冲区取产品;
V(Vs2); //允许送产品
}
}
coend
}
semaphore empty=n; //初始时空的缓冲区单元个数
semaphore full=0; //初始时满的缓冲区个数
semaphore mutex=1; //控制对临界区访问的互斥信号量
main(){
cobegin{
procducer //生产者进程
while(true){
P(empty); //递减一个空缓冲区单元
P(mutex); //互斥访问缓冲区
送一个产品到缓冲区;
V(mutex); //允许访问缓冲区
V(full); //递增一个满缓冲区单元
}
consumer
while(ture){ //消费者进程
P(full); //递减一个满缓冲区
P(mutex); //互斥访问临界区
从缓冲区取一个产品;
V(mutex); //允许访问缓冲区
V(empty); //递增一个空缓冲区单元
}
}
coend
}
semaphore Sa=1;
semaphore Sb=0;
main(){
cobegin{
进程Ai(i=1,…,n)
while(true){
P(Sa); //互斥A发消息
向缓冲区发送消息;
V(Sb); //允许B取消息
}
进程B
while(true){
P(Sb); //互斥B取消息
从缓冲区取消息;
V(Sa); //允许A发消息
}
}
coend
}