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