昆明理工大学操作系统复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0、为了提高操作系统的可适应性和可扩展性,在现代操作中都毫无例外地实现了设备独立性,也称为设备无关性。
其基本含义是:应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。
在实现了设备独立性的功能后,可带来以下两方面的好处。
1) 设备分配时的灵活性
2) 易于实现I/O重定向
设备独立性是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。
1.进程与程序的区别是什么?
进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。
通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。
进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。
进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。
2.什么是局部性原理?什么是抖动?如何减少抖动现象?
局限性又表现在下述两个方面:
(1) 时间局限性。如果程序中的某条指令一旦执行,则不久以后该指令可能
再次执行;如果某数据被访问过,则不久以后该数据可能再次被访问。产生
时间局限性的典型原因,是由于在程序中存在着大量的循环操作。
(2) 空间局限性。一旦程序访问了某个存储单元,在不久之后,其附近的存
储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,其典型情况便是程序的顺序执行。
局部性原理是指在几乎所有程序的执行过程中,在一段时间内,CPU总是集中地访问程序中的某—个部分而不是对程序的所有部分具有平均的访问概率是指当给进程分配的内存小于所要求的工作区时,由于内存外存之间交换频繁,访问外存的时间和输入输出处理时间大大增加,反而造成CPU因等待数据而空转,使得整个系统性能大大下降.在物理系统中,为防止抖动的产生,在进行淘汰或替换时,—般总是把缺页进程锁住, 不让其换出,从而防止抖动发生.防止抖动发生的另一个办法是设置较大的内存工作区。
1. 抖动的原因
前面说过, 抖动是由于页故障率很高而引起的, 页故障率高的原因主要有如下两点:
(1) 分给进程的页架数过少: 如果分配给一个进程内存页架数过少, 使得所需要的“活动”页面不能全部装入内存, 则它在其运行过程中可能会频繁地发生缺页中断, 这是引起抖动的最主要原因. 所谓“活动”页面就是进程在一段时间内所需访问的那些页面. 这一概念与程序的局部性有关, 也就是说, 在一段时间内, 程序所执行的代码和所访问的数据是相对集中的, 这些代码和数据所对应的页面就是“活动”页面. 当然, 进程的“活动”页面是随时间而动态变化的, 这是由于进程的执行是由一个局部向另一个局部变化的过程。
(2) 页面置换算法不合理: 一个不适当的页面置换算法可能将不久的将来
会用到的页面淘汰出去, 这也是形成抖动的一个原因。
(3) 程序结构:程序结构也是应当考虑的因素. 滥用的转移指令、分散的全局变量都会破坏程序的局部性, 从而增加页故障率, 甚至引起抖动。
2. 抖动的处理
根据抖动产生的原因, 可以采取如下处理方法。
(1) 增加分给进程的页架面数: 使得一个进程在其运行过程中所需要的“活动”页面都能调入内存, 这是解决抖动问题最有效的方法. 那么, 一个进程的“活动”页面个数究竟为多少呢? 这既与进程有关, 也与进程的执行时刻有关. 两个长度相同的进程, 其“活动“页面的个数可能不同; 同一进程在不同时刻其“活动”页面的个数可能也不同. 如此, 系统需要根据进程的动态运行情况掌握其“活动”页面的个数. 这里, Denning 的工作集模型和页故障率反馈模型都是非常有效和适用的, 请参看6.5.1.7和6.5.1.8的介绍。
(2) 改进页面置换算法: 首先可以考虑采用LRU算法, 如开销过大或硬件支持不够, 可选择NUR算法, 通常问题可以得到解决。
(3) 修改程序结构。
3.死锁的必要条件
(1)资源独占性。资源被诸进程互斥使用,即一个资源每次只能被一个进程所占用;
(2)资源的不可抢占性。一个资源被进程占用后,除非该进程用完自行释放,否则不能被别的进程强行抢占;
(3)资源的部分分配。一个进程在占有了一些分配给它资源后,仍要求占用其他的资源;
(4)循环等待资源。系统中若干进程之间对资源的使用形成了一种循环等待的状况,即第一个进程占用了第二个进程所需资源,第二个进程占用了第三个进程所需资源,依次类推,最后一个进程又占用了第一个进程所需资源。
4. 什么是分页?什么是分段?二者主要有何区别?
分页是将一个进程的逻辑地址空间分成若干大小相等的部分,每一部分称作页面。
分段是一组逻辑信息的集合,即一个作业中相对独立的部分。
分页和分段的主要区别是:
--页是信息的物理单位,段是信息的逻辑单位;
--页的大小是由系统固定的,段的长度因段而异,由用户决定;
--分页的作业地址空间是一维的,分段的作业地址空间是二维的。
7. 运行安全性检查算法如下:
1)Work = Available;Finish = false;
2)寻找满足如下条件的i:
Finish[i]==false并且Need[i]≤Work[i];
如果不存在,则转步骤4);
3)Work = Work + Allocation[i];Finish[i] = true;
转步骤2)
4)如果对于所有i,Finish[i] = true,则系统处于安全状态,否则处于不安全状态。
路口问题