×
操作系统教程操作系统的定义和功能操作系统的类型

进程管理

与进程有关的时间操作系统CPU调度操作系统调度算法操作系统FCFS调度操作系统FCFS护航效果操作系统FCFS与开销操作系统最短作业优先(SJF)调度预测SJF进程的CPU突发时间最短剩余时间优先(SRTF)调度算法循环调度算法循环调度算法示例最高响应比下(HRRN)调度最高响应比下(HRRN)调度示例优先级调度非抢占式优先级调度抢先式优先级调度

同步

进程同步简介临界区问题锁定变量机制测试集锁定机制优先级反转开启可变或严格的交替方式感兴趣变量机制帕特森(Peterson)解决方案同步机制无需等待睡眠和唤醒信号量介绍计算信号量的问题计算信号量的问题二进制信号量或互斥量

死锁

死锁简介处理死锁的策略死锁预防避免死锁避免死锁使用RAG进行死锁检测死锁检测和恢复

内存管理

内存管理简介固定分区动态分区压缩(碎片整理)用于动态分区的位图链表动态分区分区算法分页技术分页技术实例二进制地址基础知识物理和逻辑地址空间页表从页表映射到主内存页表项查找最佳页面大小虚拟内存后备缓冲器按需分页转换页表页面替换算法Belady异常分段分页与分段比较分段的分页

文件管理

文件的属性文件上的操作文件访问方法目录结构一级目录两级目录树型结构目录非循环图结构化目录文件系统文件系统结构主引导记录(MBR)磁盘中的数据结构内存中的数据结构目录实现目录实现连续分配链表分配文件分配表索引分配链接索引分配索引节点空闲空间管理磁盘调度

开启可变或严格的交替方式


Turn Variable或Strict Alternation Approach是在用户模式下实现的软件机制。 这是一个繁忙的等待解决方案,只能为两个进程实施。 在这种方法中,使用实际上是锁的转弯变量。

这种方法只能用于两个进程。 一般来说,让两个进程是:Pi和Pj。 它们共享一个称为转变量的变量。 程序的伪代码可以给出如下。

对于进程Pi

Non - CS   
while (turn ! = i);   
Critical Section   
turn = j;   
Non - CS

对于进程Pj

Non - CS   
while (turn ! = j);  
Critical Section   
turn = i ;  
Non - CS

锁变量方法的实际问题是只有当锁变量为1时进程才进入临界区。不止一个进程可以同时看到锁变量为1,因此互斥不能得到保证。

这个问题在转向变量方法中得到解决。 现在,只有当转向变量的值等于进程的PID时,进程才能进入临界区。

只有两个可能的值是可变的,i或j。 如果它的值不是i,那么肯定会是j,反之亦然。

在入口部分,一般来说,进程Pi不会进入临界区,直到它的值为j,或者进程Pj将不会进入临界区,直到其值为i。

最初,两个进程Pi和Pj可用并且想要执行到临界区。

转向变量等于i,因此Pi将有机会进入临界区。 在Pi完成临界区之前,Pi的值仍然为I

Pi完成其临界区并指定j转变。 Pj将有机会进入临界区。 转变值仍然是j直到Pj完成其临界区。

严格交替法分析

让我们根据四个要求分析严格交替方法。

相互排斥
严格的交替方法在每种情况下都提供相互排斥。 此过程仅适用于两个进程。 这两个进程的伪代码是不同的。 只有在看到转弯变量等于其过程ID时才会进入该过程,否则不会进入。因此,无论进程如何,进程都不能进入临界区。

进程

这一机制无法保证进展。 如果Pi不想进入临界区,那么Pj被无限期阻挡。 Pj必须等待很长时间,因为转向变量将保持为0,直到Pi将其分配给j。

可移植性
该解决方案提供了便携性。 它是在用户模式下实现的纯粹的软件机制,不需要操作系统的任何特殊指令。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)