操作系统
野猫 吉吉
野猫很温柔
展开
-
操作系统之生产者与消费者
生产者消费者模型描述生产者/消费者问题可以描述为:两个或者更多的进程(线程)共享同一个缓冲区,其中一个或多个进程(线程)作为“生产者”会不断地向缓冲区中添加数据,另一个或者多个进程(线程)作为“消费者”从缓冲区中取走数据。生产者/消费者模型关注的是以下几点:n 生产者和消费者必须互斥的使用缓冲区n 缓冲区空时,消费者不能读取数据n 缓冲区满时,生产者不能添加数据生产者/消费者模型的优点在于:...原创 2020-02-15 11:13:35 · 7942 阅读 · 4 评论 -
poll & epoll & select 三种IO函数区别联系
时间复杂度1.sellect:O(N)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。2.poll:O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然...原创 2020-01-23 22:47:09 · 291 阅读 · 0 评论 -
银行家算法
在了解银行家算法之前,我们先了解一下死锁的概念和它的相关知识。死锁概念 :多个进程相互等待,互不相让,导致所有进程无限期等待。死锁分为 资源死锁 和通信死锁。资源死锁:每个进程都在等待其他进程释放资源。资源死锁时最常见的死锁类型。通信死锁:由于信息丢失,导致通信双方互相等待对方发送消息。一般可以设置超时时间来解决。资源死锁条件1)互斥条件:一个进程不能被两个以上的进程同时占有。2)...原创 2020-01-21 22:04:15 · 1334 阅读 · 0 评论 -
读写者问题
只要求读文件的进程称为reader进程,其他进程称为writer进程。允许多个进程同时读一个共享对象,但不允许一个writer进程和其他reader进程同时或writer进程同时访问一个共享对象。简单来说,读写者问题是保证一个writer进程必须与其他进程互斥的访问共享对象的同步问题。三句话来说,就是:读读共享;写写互斥;读写互斥...原创 2020-01-17 21:26:10 · 428 阅读 · 2 评论