【操作系统实验/Golang】实验2:进程(线程)同步

news2024/11/24 9:26:47

1 实验问题描述

以生产者-消费者模型为基础,在Windows环境下创建一个控制台进程,在该进程中创建读者写者线程模拟生产者和消费者。

Writer线程写入数据,然后将数据放置在一个空缓冲区buffer中供Reader线程读取。Reader线程从缓冲区中获得数据,然后释放缓冲区buffer。

当Writer线程写入数据时,如果没有空缓冲区可用,那么Writer线程必须等待Reader线程释放出一个空缓冲区。

当Reader线程读取数据时,如果没有满的缓冲区,那么读入线程将被阻塞,直到新的数据被写进去。

  1. 输入
    N:缓冲区大小(取16)

  1. 输出
    按照以下格式输出每一次生产和消费过程,如:

write/read

content

index

production num

write

---

0

1

read

---

0

0

------

----

---

---

2 测试数据

N = 16

3 流程图

  1. Test-and-Set

  1. Mutex

  1. Empty&Full

  1. Empty&Full&Mutex

4 实验结果

  1. Test-and-Set

  1. Mutex

  1. Empty&Full

  1. Empty&Full&Mutex

5 实验代码

OS-Experiments/exp2 at main · Jackkee27/OS-Experiments

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv5+Tesseract-OCR 实现车牌号文本识别

来源:投稿 作者:王同学 编辑:学姐 最近看到了各种各样的车牌识别,觉得挺有意思,自己也简单搞一个玩玩。 1.预期效果2.整体流程3.准备数据集4.训练YOLOv5模型 4.1 下载源码 4.2 安装环境 4.3 修改配置文件 4.4 训练模型…

史上最详python中while语句循环(建议收藏)

名字:阿玥的小东东 学习:python正在学习c 主页:阿玥的小东东 目录 前言 1. 什么是while语句? 2. while语句可以干啥吖 3.while的详细讲解 4.死循环 5.用while语句写个小游戏 前言 今天呢我们来学习一下python中的while语句 …

「Moonbeam社区之声」首期活动回顾

感谢大家参加本次Moonbeam Community Voice「社区之声」新系列活动。Moonbeam计划定期举行这个系列活动,分享Moonbeam社区近期状况,以及来自社区的建议和分享。顾名思义,这是基于社区的分享活动。 Community Voice「社区之声」旨在成为讨论影…

第8章:切片

1.切片的引入 【1】切片(slice)是golang中一种特有的数据类型 【2】数组有特定的用处,但是却有一些呆板(数组长度固定不可变),所以在 Go 语言的代码里并不是特别常见。相对的切片却是随处可见的,切片是一种建立在数组类型之上的抽象&#xf…

AVL平衡树

前置知识 平衡树 平衡树指的是任意节点的子树的高度差都小于等于 111 的二叉查找树。 因为他是平衡的,我们做树上的操作就可以降到 O(logn)O(log_n)O(logn​) 的时间复杂度。 AVL平衡树 因为对于树有可能进行插入或删除操作,使得树有可能不平衡&…

抓取HTTPS失败和乱码

第一步:电脑安装SSL证书 选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,如果设置了安全防护,会ranging输入系统的帐号密码 这时开始安装charles证书,一路点击下一步即可 第二步&#xf…

【MySQL进阶教程】锁的详细介绍

前言 本文为 【MySQL进阶教程】锁 相关知识,下边将对锁的概述,全局锁(包含全局锁的介绍,语法与特点),表级锁(包含表级锁的介绍,表锁,元数据锁,意向锁&#xf…

第一封信|感觉孤独?找个借口联系

首发:https://bornforthis.cn/letter/2023/01.html 孤独不等于寂寞 你好,我是悦创。 这里是《悦创来信去无方向的信》,给你邮寄的第一封信,信的主题是“孤独 vs 寂寞”,很高兴你拆开此信。 一到冬季,情…

10条必备的markdown常用语法

10条必备的markdown常用语法markdown笔记写起来会比较方便,而且也方便复制,下面我总结一下常用的markdown常用语法可能不同的程序markdown语法不太一样,但是都差不多的1.标题一级标题、二级标题等等这个不多说了。最多支持六级标题## 内容1 …

鲲志说:向我跌宕起伏,喜忧参半的2022致敬!

今天是2022的倒数第二天,就着CSDN的活动正好为自己做一个年度总结,也确实需要做一个年度总结来正式和过去的一年道个别 回想这一年,确实经历了很多,寒冬裁员、千里相赴见双方父母、成功夺冠🐑。。。成年人的世界确实很…

Web3中文|2023加密圈开年首雷?美国当局调查Genesis母公司DCG

据彭博社周五报道,纽约联邦检察官和美国证券交易委员会(SEC)正在调查数字货币集团(DCG)在其借贷子公司Genesis的内部转账问题。 报道援引知情人士的话称,DCG已收到纽约东区检察官关于提供文件和面谈的要求…

ebpf中的percpu map的注意事项与剖析

1 背景 故事还要从一次翻车现场说起。 为了统计各个CPU上的系统调用数据按照cpu分别进行统计,我参考了kernel Documents中关于percpu map的一段原话: Values stored in BPF_MAP_TYPE_ARRAY can be accessed by multiple programs across different CPUs.…

python转C++格式学习笔记

我是主写python的,但是感觉算法上想精进的话,还是得用c写,所以笔记主要记录的是c与python不太一样的地方,听的是y总的算法基础课,结合y总的讲义,白框里面是自己的理解,大家取精华,去…

已解决pip使用阿里云镜像安装第三方模块失败

已解决(pip使用阿里云镜像安装第三方模块失败)ERROR: Could not find a version that satisfies the requirement xpinyin (from versions: none) ERROR: No matching distribution found for xpinyin WARNING: The repository located at mirrors.aliyu…

2023年,我们还需要一部游戏手机吗?

这世界上本没有路,走的人多了,也便成了路。可实际情况全都如此吗?眼下,游戏手机的路似有还无。2022年12月下旬,刚晋升为小米集团总裁的卢伟冰,在宣传自家的Redmi K60系列时,称“K60宇宙&#xf…

npm无法使用的坑及其解决

1.(如果是第一次可以跳过这个步骤)如果你是下载了nodejs的话,那么请以此删除一下的文件:(他们可能有也可能没有,但有的话把它们删除) C:\Program Files (x86)\nodejs C:\Program Files\nodejs C:\Users{User}\AppData\Roaming\npm&#xff08…

【强训】Day05

努力经营当下,直至未来明朗! 文章目录一、选择二、编程1. 统计回文:sparkles: 2. 连续最大和[dp]答案1. 选择2. 编程普通小孩也要热爱生活! 一、选择 下面的程序 编译运行后,在屏幕上显示的结果是() pub…

LWIP(二)——LWIP有3种编程接口,RAW、NETCONN和SOCKET

目录 1. RAW 2. NETCONN 3、SOCKET LWIP有3种编程接口,RAW、NETCONN和SOCKET。它们的易用性从左到右依次提高,而执行效率从左到右依次降低,用户可以根据实际情况,平衡利弊,选择合适的 API 进行网络应用程序的开发。…

性价比高的香港物理服务器怎么选用?

​  从事跨境业务,对于网络流量大且速度、安全网络要求高的企业,通常建议选用香港物理服务器。物理服务器以非共享方式租给一个特定的客户,比较满足一些企业的高要求。当然,在进行比较并选择性价比高的香港物理服务器时&#xf…

Flink 知识点整理及八股文问题<第二、三部分 Flink快速上手和部署>

本篇为Flink的第二、三部分&#xff0c;Flink快速上手和Flink部署&#xff0c;全篇参考自 尚硅谷2022版1.13系列 整个系列的目录如下&#xff1a; &#x1f49a;<一>Flink简介 &#x1f49a;<二>Flink快速上手 &#x1f49a;<三>Flink 部署 &#x1f49a;&l…