操作系统
操作系统二三事
周一竟然读博了
既然选择了,那就磕吧!!!
展开
-
搞清楚死锁
死锁定义一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象成为进程死锁。为何死锁资源数量有限、锁和信号量错误使用活锁和饥饿活锁:活锁区别与死锁,死锁是每个进程都得不到CPU时间片不能上CPU,而活锁是先加锁再轮询的,可以获取CPU时间片执行,但是由于不能获得到资源,等待CPU时间片用完后,就下CPU。整体来看,没有阻塞但是也没有实质性进展。饥饿:饥饿是由资源分配策略导致的某一进程长时间不能获取CPU时间片运行,这种现象叫做饥饿。死锁必要条件互斥原创 2020-08-16 21:58:16 · 182 阅读 · 0 评论 -
进程同步互斥以及通信机制
进程之所以会产生同步和互斥问题,一切源于进程的并发执行。如果是单个进程的话,是不可能产生互斥和同步问题的。一个最经典的例子就是ATM问题:进程互斥由于各个进程要求使用共享资源,而这些资源需要排他性使用,各个进程之间竞争使用这些资源,这一关系称为进程互斥。临界资源:系统中某些资源一次只允许一个进程使用临界区:各个进程中对某个临界资源实施操作的程序片段临界区使用原则:没有进程在临界区时,想进入临界区的进程可以进入不允许两个进程同时处于临界区临界区外运行的进程不得阻塞其他进程进入临界区不得原创 2020-08-16 20:37:50 · 936 阅读 · 0 评论 -
CPU调度算法
最近在看操作系统,总结一下CPU的调度算法。在介绍CPU调度算法之前,首先讨论设计调度算法是需要考虑的几个问题:1.进程控制块PCB中需要记录哪些信息2.进程优先级以及就绪队列的组织(动态优先级还是静态优先级)3.抢占式调度与非抢占式调度4.I/O密集型与CPU密集型进程5.时间片(时间片如何选择)批处理系统中的调度算法先来先服务(FCFS)方式:顾名思义,按照进程就绪的先后顺序使用CPU,不可抢占优点:公平,实现简单缺点:长进程后面的短进程需要等待很长时间,不利于用户体验改变调度原创 2020-08-16 19:03:01 · 1432 阅读 · 0 评论 -
进程与线程模型
最近在面试,进程与线程模型几乎必问,所以就想来整理整理。定义进程:具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位。线程:是进程中的一个运行实体,是CPU调度的单位。前几天面试的时候,面试官问我进程是资源调度的独立单位,线程是CPU调度的基本单位,难道CPU不属于资源吗?我当时就蒙了,好像是啊。后来我专门查了一下。注意:这两个说法都没有毛病,只是线程是后来引入的,线程继承了进程是CPU调度单位的属性,但是进程仍然是资源的拥有者,线程不拥有资源,而是和处于同一进原创 2020-08-16 18:10:53 · 939 阅读 · 0 评论