摘要:
多生产者-多消费者问题 一、问题背景及分析 这里的“多”指种类多而不是数量多。多种生产者和多种消费者共享同一片缓冲区,且一种消费者只接受特定的一种生产者生产的产品。 二、问题实现 同样,实现互斥的 P 操作一定要在实现同步的 P 操作之后,否则可能引起“死锁”。 三、问题思考 ( 阅读全文
posted @ 2024-11-08 09:32
Wind_730
阅读(70)
评论(0)
推荐(0)
摘要:
吸烟者问题 一、问题背景及分析 即“可以生产多种产品的单生产者和多消费者”的问题。生产者可生产 A/B/C 产品,每种产品都有各自的不同种消费者接受。 注:这里的缓冲区容量为1,所以可以不设置 mutex 的互斥信号量(同一时刻,四个同步信号量中至多只有一个值为1) 二、问题实现 阅读全文
posted @ 2024-11-08 09:32
Wind_730
阅读(40)
评论(0)
推荐(0)
摘要:
信号量实现进程互斥、同步、前驱关系 P、V 操作必须成对出现。缺少 P(mutex) 就不能保证临界资源的互斥访问。缺少 V(mutex) 会导致资源永不被释放,等待进程永不被唤醒。 一、实现进程互斥 注:下图中的第一行对信号量的初始化只是简化写法,并不严格遵循结构体的相关 阅读全文
posted @ 2024-11-08 09:31
Wind_730
阅读(27)
评论(0)
推荐(0)
摘要:
生产者-消费者问题 一、问题背景及分析 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注:这里的“产品”理解为某种数据) 生产者、消费者共享一个初始为空、大小为 n 的缓冲区。 只有缓冲区没满时,生产者才能把 阅读全文
posted @ 2024-11-08 09:31
Wind_730
阅读(95)
评论(0)
推荐(0)
摘要:
信号量机制 1965年由荷兰学者 Dijkstra 提出 一、概念 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。 信号量甚实就是一个变量(可以是一个整数,也可以是更复杂的(数据结构)记录型变量),可以用一个信号量来表示系统中某种资源的 阅读全文
posted @ 2024-11-08 09:30
Wind_730
阅读(67)
评论(0)
推荐(0)
摘要:
互斥锁 备注:此处仅为简介,互斥锁、自旋锁以及其他锁需跳转至其他详细的解析 前两节介绍的几种算法和实现基本都属于自旋锁(while 忙等,不满足“让权等待”原则) 阅读全文
posted @ 2024-11-08 09:22
Wind_730
阅读(19)
评论(0)
推荐(0)
摘要:
进程互斥的硬件实现方法 一、中断屏蔽方法 利用“开/关中断指令"实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区的情况)。 优点:简单、高效 缺点:不适用于多处理机;只适用于操作系统内核进程,不适 阅读全文
posted @ 2024-11-08 09:21
Wind_730
阅读(82)
评论(0)
推荐(0)
摘要:
进程互斥的软件实现方法 一、单标志法 二、双标志先检查法 三、双标志后检查法 四、Peterson算法 理解:如同现实生活中的给红包的拉扯,谁最后说了客气话(在代码里即谁的while最先表现为true),谁就失去了资源 阅读全文
posted @ 2024-11-08 09:18
Wind_730
阅读(27)
评论(0)
推荐(0)
摘要:
进程同步与进程互斥 一、进程同步 ——回顾:进程的异步性,指各并发执行的进程以各自独立的、不可预知的速度向前推进。 同步,亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的 阅读全文
posted @ 2024-11-08 09:15
Wind_730
阅读(43)
评论(0)
推荐(0)
摘要:
调度算法(一) (1)前言 此处列举的三种算法主要关心对用户的公平性、平均周转时间、平均等待时间等评价系统整体性能的指标,但是不关心“响应时间”,也并不区分任务的紧急程度,因此对于用户来说,交互性很糟糕。 因此这三种算法一般适合用于早期的批处理系统,当然, FCFS 算法也常结合其他的算法使用,在现 阅读全文
posted @ 2024-11-08 09:06
Wind_730
阅读(57)
评论(0)
推荐(0)

浙公网安备 33010602011771号