
操作系统
轮子学长
这个作者很懒,什么都没留下…
展开
-
死锁
一、死锁产生的原因1.竞争资源引起死锁2.进程推进顺序不当二、死锁产生的必要条件1. 互斥条件:进程对分配给他的资源进行排他性使用。2. 请求和保持条件进程已经占有至少一个资源,又提出了新资源请求,而该资源已经被使用。同时,不释放自身资源。3.不剥夺条件进程已获得的资源在使用结束之前不能被剥夺。4.环路等待环形链存在。如:P1占用P2的资源,P2占有P1原创 2013-06-07 21:39:30 · 1130 阅读 · 0 评论 -
进程同步与异步
同步:过程的执行有一定的顺序,也就是说必须一步一步执行。举个例子,在socket中,服务器accept()等待客户端的连接,这里的等待实际上就是阻塞了,在客户端连接之前,该过程不会往下执行。在同步阻塞中,应用程序执行到需要IO操作,会执行一个系统调用,然后讲控制权交给内核,此时应用程序便发生的堵塞。内核得到控制权后,开始执行这个系统调用,执行完毕后会向应用程序返回响应,应用程序得到响应后,原创 2013-11-21 10:24:50 · 1404 阅读 · 0 评论 -
进程同步
竞争条件竞争条件:操作系统能够并发运行多个进程/线程,这些进程可能共享某些数据。多个进程并发访问同一数据时,进程的推演顺序将影响最后的执行结果。 举个例子,进程P1和P2共享资源(数据)count(初始值为5). P1中执行count++; P2中执行count--; P1和P2并发执行。 因为count++和count--都不是原子操作,它们都需要经过一下步骤:register=cou原创 2016-07-19 11:41:14 · 775 阅读 · 0 评论 -
死锁
原文出处:http://blog.youkuaiyun.com/windeal3203什么是死锁所谓死锁: 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。也就是说,有一组进程集合,在这个集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。为什么会有死锁死锁产生的原因主要有两个,竞争资源: 资源因原创 2016-08-03 21:16:27 · 640 阅读 · 0 评论 -
内存管理、分段、分页
内存管理为什么要有内存管理 多道程序操作系统中,进程的并发执行依赖于CPU调度。CPU能访问的存储器只有内存和(处理器中的)寄存器(机器指令可以用内存地址作为参数)。 寄存器价格昂贵且存储空间小,因此进程执行的指令以及指令使用的数据主要还是保存在内存上。(如果这些数据不在内存中,CPU在使用前也需要将数据移到内存中)。 由上可见,CPU要执行的进程(指令和数据)需要存储在内存原创 2016-08-25 14:48:18 · 1780 阅读 · 0 评论