![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统原理
爱全栈的工程师
路漫漫其修远兮,吾将上下而求索。
展开
-
如何用管程实现生产者消费者问题?
文章目录管程的概念和结构管程主要特征管程语法用管程实现互斥用管程实现同步条件变量管程实现生产者消费者问题管程的概念和结构信号量是操作系统提供的一种同步机制,优点是有效、灵活,缺点是容易出错、死锁。管程是高级语言提供的一种同步机制。包括Concurrent Pascal、Pascal-Plus、Moodula-2、Modula-3、Java等。管程是一个软件模块,由三部分组成:一个或多个过程...原创 2020-04-17 17:16:07 · 2412 阅读 · 1 评论 -
经典同步问题三——读者写者问题
系列同步问题:经典同步问题一——生产者和消费者问题https://blog.csdn.net/weixin_36465540/article/details/105560002经典同步问题二——哲学家进餐问题https://blog.csdn.net/weixin_36465540/article/details/105564907问题描述多个进程共享存储区,读取数据的称为读者,写数据的...原创 2020-04-16 19:48:56 · 492 阅读 · 0 评论 -
经典同步问题二——哲学家进餐问题
哲学家进餐问题问题描述五个哲学家住在一起,每个人的生活由吃饭和思考组成。饭桌上有一盘菜,五个人每个人一个盘子一支叉子。想吃饭的哲学家会到桌子边的位置上,拿起左、右两个叉子,从中间的盘子中取菜放到自己的盘子中。条件:防止叉子互斥使用;防止死锁和饥饿。解决方案一给哲学家和叉子分别从0到4标号,0号哲学家吃饭时需要0和1号叉子,1号哲学家需要1和2号叉子……4号哲学家需要4和0号叉子。即 i ...原创 2020-04-16 19:11:12 · 302 阅读 · 0 评论 -
CPU调度算法——FCFS算法/SJF算法/优先级调度算法/RR算法
文章目录一、先来先服务(FCFS)调度算法二、最短作业优先(SJF)算法1. 非抢占式SJF2. 抢占式SJF三、优先级调度算法1. 非抢占式优先级调度算法2. 抢占式优先级调度算法四、时间片轮转(RR)算法五、多级队列调度一、先来先服务(FCFS)调度算法非抢占式调度,选择就绪队列中等待最长时间的进程。评价:简单;系统开销小;对长进程有优势;更利于多CPU处理的进程。带权周转时间=周转时...原创 2020-04-16 18:08:40 · 23356 阅读 · 0 评论 -
经典同步问题一——生产者和消费者问题
不懂得结构型信号量的小伙伴可参考下面博文,之后再阅读本博文,更易于理解https://blog.csdn.net/weixin_36465540/article/details/105559848生产者和消费者问题问题描述一个或多个生产者产生数据并放在缓冲区中,每次一个。一个或多个消费者从缓冲区取数据项并消费,每次一个。条件:1 在任意时间只能一个生产者或消费者访问缓冲区——互斥2...原创 2020-04-16 15:59:57 · 583 阅读 · 0 评论 -
如何用结构型信号量实现互斥和同步
信号量方法的基本原则:两个或多个进程可以用信号的方法进行协作;进程可以在任何地方停下来以等待收到特定的信号;信号的实现是用一种称为信号量(Semaphore)的特殊变量。信号量S就是一个特殊变量,包含一个整数值。在S上可以执行两个原子操作:**wait(S)**用来接受信号,也称为P操作;**signal(S)**用来发送信号,也称为V操作。信号量分类:计数信号量(Counting Sema...原创 2020-04-16 15:56:15 · 512 阅读 · 0 评论