首页 > 系统相关 >操作系统综合题之“采用记录型信号量机制实现上述两个进程的同步算法(代码补充)”

操作系统综合题之“采用记录型信号量机制实现上述两个进程的同步算法(代码补充)”

时间:2024-03-20 16:56:59浏览次数:37  
标签:full 操作系统 int 整数 综合题 信号量 item buffer 缓冲区

1.问题:设有无穷多个整数缓冲区(即为无界缓冲池),A进程从输入设备逐个地读入整数并写入缓冲区,B进程则逐个地从缓冲区取出整数进行打印。其中存放整数的变量为item,缓冲区名为buffer,读取过程使用函数getAItem(int * item)来完成,而打印整数使用函数printAItem(int item)来完成。请用记录型信号量机制实现上述两个进程的同步算法,要求:补充完整下列算法程序中带标号处空缺的内容。(注:每个空缺部分的代码可能是多行代码)

structure semaphore full;

int buffer[];// 缓冲区

int in,out;// 缓冲区的入口指针量和出口指针量

____(1)______

 

void processA()

{

int item;// 存放整数的变量

____(2)______

}

 

void processB()

{

int item;// 存放整数的变量

____(3)______

}

 

答:

(1)in = 0;out = 0;full.value = 0;

(2)while(TRUE){

getAItem(&item);

buffer[in++] = item;

signal(full);

}

(3)while(TRUE){

wait(full);

item = buffer[out++];

printAItem(item);

}

 

标签:full,操作系统,int,整数,综合题,信号量,item,buffer,缓冲区
From: https://www.cnblogs.com/saoge/p/18085604

相关文章

  • 操作系统综合题之“采用记录型信号量机制实现爸爸与妈妈进程的同步(爸妈擀饼问题)”
    1.问题:爸爸擀面,妈妈烙饼,面板上只能容纳两张擀好的饼,只有当面板上有空闲空间时,爸爸才能把擀好的饼放在面板上。只有当面板上有时,妈妈才能从面板上取饼。试采用记录型信号量机制实现爸爸与妈妈进程的同步答:设置两个信号量资源:varempty,full:semaphore初始两个资源信号量:empty.......
  • 信号量和pv操作
           ......
  • 系统盘扩容01-安装统信UOS桌面操作系统1060启用系统扩容
    原文链接:系统盘扩容01-安装统信UOS桌面操作系统1060启用系统扩容Hello,大家好啊!今天,我非常高兴地为大家开启一个新的系列文章——在统信UOS上扩容系统盘。随着我们对电脑的日常使用,系统盘的空间往往会逐渐变得不够用,特别是在安装了大量软件或数据积累后。为了改善这一状况,扩......
  • 【uCore实验Lab1】清华大学操作系统实验
    系列文章目录文章目录系列文章目录一、关于内联汇编二、uCore结构布局以及启动过程1.uCore结构布局2.启动过程三、开启A20、进入保护模式1.开启A202.进入保护模式四、实现分段机制1.段选择子结构2.段描述符结构3.进程的内存布局4.GDT的初始化五、加载uCoreKernel六......
  • 操作系统实验-与文件读写有关的系统调用函数用法
    1、open函数点击查看代码#include<fcntl.h>//头文件intopen(constchar*pathname,intflags,mode_tmode);pathname:要打开文件的路径名;flags:用于指定文件的打开方式和行为,以下是一些常见的标志,都通过宏进行了定义;O_RDONLY:只读方式打开文件。O_WRONLY:只写方式打......
  • 操作系统实践之路——五、初始化(2.Linux初始化)
    文章目录一、全局流程二、从BIOS到GRUB三、GRUB是如何启动的四、详解vmlinuz文件结构五、流程梳理-1六、内核初始化从_start开始七、流程梳理-2参考资料前言​本章节将讨论一下Linux如何去做初始化。一、全局流程​在机器加电后,BIOS会进行自检,然后由BIOS加载......
  • 操作系统
    进程管理-进程状态三态与五态 进程管理-前趋图进程的同步与互斥互斥:同类资源竞争关系同步:进程间的协作关系进程管理-pv操作进程管理-死锁问题216+1026*5131页面置换算法:最优算法(理想型,不现实)随机算法先进先出(FIFO)算法:有可能产生抖动......
  • 操作系统内存管理笔记
    单级页表分页储存页表页表中的页表项是连续存放的,因此页号可以是隐含的,不需要占用空间页表中的块号所记录的只是内存块号,而非内存块的起始地址案例一假设某系统物理内存大小为4GB,页面大小为4KB,则每个页表项至少应该为多少字节解答:由题目可知,内存块大小=页......
  • 操作系统的启动过程介绍
            操作系统的启动过程、引导加载程序和系统初始化是计算机启动的关键步骤,这些步骤确保了计算机硬件和软件的正确配置以及操作系统的顺利运行。下面将详细介绍这些过程。        启动过程        计算机的启动过程通常从按下电源按钮开始。当......
  • C#判断操作系统位数 - 开源研究系列文章
          今天将开发的那个校时管理器应用程序复制到公司的电脑上进行使用,结果运行的时候报错了,想着应该是操作系统位数不支持导致的,于是写了此文进行判断。(对于有源码的读者请自己编译程序为32位的进行使用)      该代码非常简单,就是判断一下句柄的位数:1、源码;......