
Operating Systems
文章平均质量分 82
HerdingCat
我很菜的
展开
-
关于并发控制的简单整理
此处对并发控制的一些整理(前辈留的东西太多)我们先来看一个栗子:有两个机器人厨师,独立的同时在做菜,完成的菜品需要装盘。然而盘子只能有一个,这就比较尴尬啦,谁先用盘子,谁后用盘子?并发控制就是对多个进程(或线程)的资源所有权进行合理分配,以防进程之间发生必要的与资源相关的冲突。原创 2016-11-02 09:16:39 · 874 阅读 · 1 评论 -
好像是dekker算法的小历史
实在是无奈,OS老师一定要自学这篇博文的内容。大神,我就在此处全篇引用你的代码啦,包涵。以下正文 ……………………………………………………………………………… 对于每份代码,要求对代码写注释,写原理,还写缺陷。 int flag = 0; void process( ) { ... while(flag != 0) { /*do noting*/ } flag = 1; 访问临界区 flag =原创 2016-10-26 16:40:10 · 1026 阅读 · 0 评论 -
这死锁了,你有钥呀
看看“银行家算法”和“死锁检测算法”这两把钥匙,怎么开死锁。原创 2016-12-09 20:30:08 · 777 阅读 · 0 评论 -
如何使用信号量处理问题
从信号量的理论跨越到对其应用解决实际的问题,对于我这种人来说,是一个挑战。关于对信号量的一些理论性描述,在上次的整理中已经说明,此处就直接上题啦。1、生产者---消费者问题2、哲学家进餐问题3、理发师睡眠问题4、读者---写者问题5、两个进程流图,用信号量的P、V操作分别实现进程间的同步。6、一带闸门的运河,其上又两架吊桥。吊桥坐落在一条公路上,为使该公路避开一块沼泽地原创 2016-11-13 19:03:34 · 2035 阅读 · 0 评论 -
死锁了,怎么办?
早晨,迷糊的两个室友一个拿了牙膏,一个拿了牙刷。两个人同时,想拿到对方的东西,好在一个室友发现自己拿错了,相视一笑,说句调侃的话,就完事啦。 如果在计算机中,只用一套牙膏牙刷。此时两个进程,循环等待,便构成了死锁。听老师说这是个很严肃的问题,我们要认真对待(严肃脸)。 那么死锁了,怎么办呢?老师说,书上都写着。(鸦雀无声)好嘛,还是看书吧。死锁条件和模型原创 2016-12-03 16:52:31 · 1619 阅读 · 0 评论 -
存储管理——虚拟内存
存储管理中虚拟内存是当内存容量不足时需要考虑的一个问题。那么:1)虚拟内存是否可实现?2)虚拟内存如何扩展内存容量?接下来看看,怎么内存是通过外存来扩展的。1) 虚拟内存是否可以实现? 为什么提出这个问题,实际上问的是这个问题:程序真的可以划分成很多块,取部分程序块装入较小的内存中,然后还能正确运行么? 面对后者提问,可以将程序的逻辑地址正确转化物理地址,实现程序的分块;同时为了高效原创 2016-12-27 22:17:34 · 516 阅读 · 0 评论 -
存储管理——置换策略
无论是否对内存进行扩容,如果面对这样的情况:需访问的数据或程序不在内存时,怎么将塞的满满当当的内存做出适当的调整,使新的程序装入内存,即内存的置换策略。下面将学习的几个置换策略重新描述一下。1. FIFO算法 将先进入内存的程序块,对于以后来说,可能是最先淘汰的。基于这个想法,采用先进先出的策略来做替换。 这个方法并没有考虑局部性原理,只考虑了程序的顺序执行。因而相对于后面的几个策略显得不原创 2016-12-27 22:22:25 · 1876 阅读 · 0 评论 -
存储管理——内存管理
存储管理中首先要面对的第一个boss是内存管理。内存管理需要考虑这两个问题: 1)内存管理需要解决什么问题? 2)内存管理方式有哪些?原创 2016-12-27 22:07:57 · 900 阅读 · 0 评论