![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 70
醋姑娘
这个作者很懒,什么都没留下…
展开
-
操作系统:死锁预防和必要条件循环等待的误区
死锁产生的必要条件首先,要注意此处的“必要条件”,和数学中充分必要的定义是一致的,即:(1)如果产生了死锁,那么必要条件一定成立;(2)反之,如果所有必要条件均成立,也不一定会死锁。(这是很容易弄混的一点。)另外,(1)的逆否命题:(3)如果其中任意一个必要条件不成立,那么就不会死锁。死锁预防死锁预防是死锁处理策略之一。就是根据上述(3)的原理,通过设置某些限制条件,破坏产生死锁的4个必要条件中的一个或多个,以防止死锁。必要条件之一:循环等待必要条件中的循环等待是指:存在一种进程资源的循环原创 2021-10-22 19:13:29 · 2386 阅读 · 0 评论 -
操作系统-关于fork&父进程&子进程
前言这学期在学操作系统,目前感觉还是挺有意思的。操作系统老师:“鼓励你们大开脑洞多试试,会有各种奇异的结果,但是最后居然都能解释出来。”本文是根据课上讲解+自行实践写的。测试环境:Ubuntu正文关于fork()的3种返回值这里提到的fork和下面程序中使用的fork()是一个C语言库函数,不是系统调用级别的fork();它根据不同的情况会返回3种类型的值。(而系统调用级别的f...原创 2018-10-10 14:02:07 · 3378 阅读 · 0 评论 -
Peterson算法的简单分析
最近操作系统学到进程同步,介绍了Peterson算法。第一种(谦让式)上课教材《操作系统概念》第七版(翻译版)和百度百科,还有查到的绝大部分的资料中,都是下面这种方法实现的。下面代码是教材中摘的(P169)。/*进程Pi的结构*/do{ flag[i] = TRUE; turn = j; while(flag[j] && turn == j); //临界区 f...原创 2018-11-20 18:36:25 · 19470 阅读 · 16 评论 -
基于Bootstrap的h5简单模拟CPU调度算法
一、说明模拟了下面三种CPU调度算法FCFS,先到先服务SRTF,抢占式最短剩余时间优先RR,轮询实验要求gantt图计算每个进程的等待时间计算平均等待时间其他前端使用了Bootstrap框架,因为时间紧迫而且确实效果还行。github地址:?待补二、实现效果进程信息FCFSSRTF?RR三、实现时的一些思考用户添加的顺序 != CPU...原创 2018-11-17 10:40:55 · 1056 阅读 · 1 评论 -
进程同步的三个经典问题
1. 有限缓存问题 Bounded-Buffer Problem要求:producer和consumer,二者不能对buffer进行操作当buffer满的时候,就不允许producer继续写当buffer空的时候,就不允许consumer继续读信号量及其初始化Semaphore mutex = 1; //buffer的锁Semapore full = 0; //满位的数量S...原创 2018-11-25 19:25:48 · 1706 阅读 · 0 评论 -
三种内存管理机制下的MMU
一、连续内存分配MMU中有两个寄存器,基地址寄存器(base)和界限寄存器(limit),对应当前执行的进程的基地址和地址空间的大小——一个进程对应一对base和limit。MMU先把CPU传来的逻辑地址和limit的值比较,合法的值是小于limit的,且是严格小于,因为刚好等于limit时,已经超出进程的地址空间了。地址不合法会发生寻址错误,陷入trap。二、分段MMU要做的事情就是...原创 2019-01-06 20:10:54 · 846 阅读 · 1 评论