操作系统
会飞的鱼_fly
这个作者很懒,什么都没留下…
展开
-
生产者和消费者问题
向原作者致敬!转载原文地址:http://blog.csdn.net/morewindows/article/details/7577591 继经典线程同步问题之后,我们来看看生产者消费者问题及读者写者问题。生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲转载 2017-04-07 11:56:58 · 363 阅读 · 0 评论 -
死锁、活锁&饥饿
死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象:死锁。”虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具转载 2017-05-24 21:09:35 · 442 阅读 · 0 评论 -
成组链接法
首先说一下,成组链接法出现的背景和意义,它的出现带来了什么好处。成组链接法作为文件存储空间管理方法之一(主要是空闲盘区的管理),还有其他三种管理方法分别是:空闲表法、空闲链表法和位示图法,它克服了空闲链表法表太长的缺点,但是保持了其优点,即分配和回收一个盘块比较简单。这么好的文件存储空间管理方法,我们当然要认真学咯。。首先来看文字解释:成组链接法是Unix系统中常见的管理空闲盘区的方法,它把空转载 2017-05-18 20:29:56 · 18447 阅读 · 7 评论 -
阻塞和非阻塞系统调用
阻塞 阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。有人也许会把阻塞调用和同步调用等同起来,实际上他是不同的。对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。例如,我们在CSocket中调用Receive函数,如果缓冲区中没有数据,这个函数就会一直等待,直到有数据才返回。而此时,当前线程还会继续处理各种各样的消息。如果主窗口和调用函转载 2017-05-31 20:36:19 · 6448 阅读 · 0 评论 -
用户级线程和内核级线程的区别
转载于http://col1.blog.163.com/blog/static/1909775192012719114033352/1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。 2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消转载 2017-06-01 09:49:10 · 5861 阅读 · 1 评论