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