计算机操作系统知识复习

1. 关于信号量的P、V操作

信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。两个原子操作wait(S)和signal(S)也被称作P、V操作;其中P(S)是让信号量减1的操作,如果S>=0,则该进程继续执行,否则该进程进入等待状态,排入等待队列;V(S)是让信号量加1的操作,如果S>0,则改进程继续执行,否则释放队列中第一个等待信号量的进程(改变队列中某个等待状态的进程的状态为就绪状态), 本进程继续执行。
经典问题有:生产者-消费者问题,读者-写者问题,哲学家进餐问题;
哲学家进餐问题的改进解法:
(1)至多只允许四位哲学家同时去拿左筷子,最终能保证至少有一位哲学家能进餐,并在用完后释放两只筷子供他人使用。
(2)仅当哲学家的左右手筷子都拿起时才允许进餐。
(3)规定奇数号哲学家先拿左筷子再拿右筷子,而偶数号哲学家相反。

2. 死锁

所谓死锁(Deadlock),是指多个进程在运行 过程中因争夺资源而造成的一种僵局(DeadlyEmbrace),当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
产生死锁的原因可归结为如下两点:

(1) 竞争资源。当系统中供多个进程共享的资源如打印机、公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。

(2) 进程间推进顺序非法。进程在运行过程中,请求和释放资源的顺序不当,也同样会导致产生进程死锁。
产生死锁的必要条件:

(1) 互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求该资源,则请求者只能等待,直至占有该资源的进程用毕释放。

(2) 请求和保持条件:指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

(3) 不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

(4) 环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,…,Pn}中的P0正在等待一个P1占用的资源; P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。

避免死锁:银行家算法

3. 内存管理

虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。
分页与分段的比较:
(1)对程序员的透明性:分页透明,但是分段需要程序员显示划分每个段。
(2)地址空间的维度:分页是一维地址空间,分段是二维的。
(3)大小是否可以改变:页的大小不可变,段的大小可以动态改变。
(4)出现的原因:分页主要用于实现虚拟内存,从而获得更大的地址空间;分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。

转载于:https://www.cnblogs.com/lululululu/p/10470930.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值