SCAU操作系统知识点之(五)并发:互斥和同步

1、互斥的概念

互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源。

用硬件实现进程互斥时,中断禁用适于单 CPU 系统,多 CPU 系统可使用专用机器指令

2、临界资源与临界区

临界区:一段代码,在这段代码中进程将访问共享资源,当一个进程已经在这段代码中运行时,另外一个进程就不能在这段代码中执行。
临界资源:一次仅允许一个进程使用的共享资源。

3、信号量含义,semWait,semSignal含义(重点

信号量含义:
信号量s的值表示可用资源个数。
s=1时:有一个临界资源可用,一个进程可进入临界区。
s=0时:临界资源已分配,一个进程已进入临界区。
s<0时:临界区已被占用,|s|是该资源的等待队列长度(阻塞进程个数)
S.count >= 0:可以执行semWait(s)而不被阻塞的进程数。
S.count < 0: 阻塞在s.queue中的进程数。

semSignal(s)(P(s)):本进程释放一个资源。
semWait(s)(V(s)):本进程请求一个资源。

==多个semWait()的次序不能颠倒,否则可能导致死锁。==多个semSignal()操作的次序可任意。
semWait(s)、semSignal(s)操作必须成对出现。

4、信号量原语定义

在这里插入图片描述

5、用信号量实现互斥与同步

在这里插入图片描述
在这里插入图片描述

6、有限缓冲的生产者/消费者问题

缓冲池一次只能让一个进程访问。设一信号量s,初值为1.
生产者需要空缓冲来发送数据,设一信号量empty,初值为k。
消费者需要满缓冲来获取数据。设一信号量full,初值为0.

在这里插入图片描述

7、进程间通过“消息传递”交换信息:无阻塞send和阻塞receive。

无阻塞send和阻塞receive:接收者阻塞,直到请求的信息到达。

SCAU综合实验课程中的文件操作与字符处理是一门非常重要的课程,它教授了如何使用计算机来操作文件以及对文件中的字符进行处理。 文件操作是指使用计算机来创建、打开、读取、写入、修改和关闭文件的过程。在实验中,我们学习了如何使用C++编程语言来实现这些文件操作。通过实践,我们可以掌握文件的基本操作,比如创建文件、打开已存在的文件、从文件中读取数据、向文件中写入数据和关闭文件等等。这些操作对于日常的文件处理工作非常有用。 字符处理是指对文件中的字符进行操作和处理的过程。我们学习了如何使用C++语言中的字符串类和字符数组来对字符进行处理。通过实验,我们可以掌握字符串的创建、拼接、截取、替换和转换等操作。这些操作可以帮助我们更好地处理文件中的文本数据,比如查找特定的字符、计算字符串的长度、在字符串中查找子字符串等等。 此外,我们还学习了一些常见的文件操作和字符处理的应用,比如统计一个文件中的字符数、单词数和行数,将一个文件中的大写字母转换为小写字母,将一个文件中的所有空格替换为换行符等等。这些应用可以帮助我们更好地理解文件操作和字符处理的实际应用场景,并提高我们的实际操作能力。 综上所述,SCAU综合实验中的文件操作与字符处理课程是非常实用和重要的一门课程,它教授了我们使用计算机来操作文件和处理字符的技能和知识。通过学习这门课程,我们可以提高我们的实际操作能力,为以后的工作做好准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值