操作系统复习提纲


第一章

1.设计现代OS的主要目标是什么?
方便性、有效性、可扩充性、开放性。
方便性,一个未配置OS的计算机系统是及其难用的。用户要想直接在计算机硬件上运行自己所编写的程序就必须是用机器语言编写,如果配置了OS可以极大的方便用户,使计算机变得易学易用。
有效性,可以提高系统资源的利用率和系统的吞吐量。
可扩充性,为了适应计算机硬件、体系结构以及计算机发展的要求,OS必须具有很好的可扩充性,近年来OS已经广泛采用微内核结构,微内核结构方便添加新功能和模块,以及对原有模块的修改,具有良好的可扩充性。
开放性,是指系统遵循世界标准规范,随着计算机日益普及,计算机硬件和软件的兼容性问题便提到了议事日程。
方便性和有效性是设计OS最重要的两个目标。
2.四个基本特征
在这里插入图片描述并发与并行区别:
并发:两件事不能同时干
并行:两件事可以同时干

第二章

1.进程定义、特征和基本状态
进程定义:
是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的最小单位(在未引入线程的情况下,进程是系统进行资源分配和调度的基本单位
进程特征:
1)并发性:指多个进程实体同存于内存中,且在一段时间内同时运行。并发性是进程的重要特征,同时也成为操作系统的重要特征。
2)动态性:进程的实质是进程实体的一次执行过程,因此,动态性是进程最基本的特征。
3)独立性:进程实体是一个独立运行、独立分配资源和独立接受调度的基本单位。
4)异步性:指进程按各自独立的、不可预知的速度向前推进,或者说实体按异步方式运行。
进程基本状态:
创建状态、就绪态、运行态、结束状态、阻塞态
在这里插入图片描述阻塞不能到运行态,就绪态不能到阻塞态
2.PCB作用
进程控制块PCB作用:进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,操作系统是根据PCB来对并发执行的进程进行控制和管理的,PCB是进程存在的唯一标识,常驻内存。
3.哲学家进餐
n个进程 n个资源
每个进程需要两个资源才可以运行
进程之间只有互斥,没有协作
有问题:当所有人都拿右筷子会产生死锁
解决:
1)两根筷子同时拿起
2)n个筷子,最多有n-1个人吃饭
3)让相邻两个人去拿一根筷子,谁拿到再去拿另一根筷子(奇数拿左边,偶数拿右边,拿到以后再去拿另一边的)
4.线程定义:
定义:在引入线程的操作系统中,线程是进程中的一个实体,是处理器调度和分派的基本单位。线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源(如程序计数器、一组寄存器和栈等),但它可与同属一个进程的其他线程共享进程所拥有的全部资源。
调度的基本单位是线程,资源分配的最小单位是进程。

第三章

1.死锁定义、四条件、预防
死锁定义:多个进程因竞争资源而造成的一种僵局,如果没有外力,这些进程将无法推进。
死锁的发生必须具备下列四个必要条件:
(1) 互斥条件
(2) 请求和保持条件
(3) 不可抢占条件
(4) 循环等待条件
死锁的预防:
(1) 破坏循环等待条件
(2) 破坏请求和保持条件
(3) 破坏不可抢占条件
2.不安全状态和死锁关系
系统进入了不安全状态也不一定会导致死锁,死锁是不安全状态的真子集。
3.临界资源不会发生死锁
某系统中有 3 个并发进程竞争资源 R,每个进程都需要 5 个 R,那么至少有( )个 R,才能保证系统不会发生死锁。
A.12 B.13 C.14 D.15
解题方法:每个进程所需资源数 - 1,再相加,就是发生死锁的临界资源数
eg:进程P1,P2,P3,所需资源数分别为n1,n2,n3,则临界资源数为 (n1-1) + (n2-1) + (n3-1)
解题步骤:3个进程,每个进程需5个资源
临界资源数:(5-1)*3 = 12
每个进程都得到4个资源,即无法执行,也没有多余资源,于是就出现死锁。如果再有1个多余资源,不管给任何一个进程,该进程就可以执行;执行完之后释放出5个资源,于是其它进程也可以执行,就不会发生死锁
所以最小需要12 + 1 = 13个资源。
选B
4.银行家算法
首先根据还剩的资源数来按需分配,先分配一个等其结束后就可以将资源解放,这个程序的资源就回到了公共部分,如果都满足的情况可以随便选,资源分配的这个序列叫做安全序列。
在这里插入图片描述
1)还剩多少=已有的-剩下的
A:3-2=1
B:14-9=5
C:12-10=2
D:12-12=0
2)MAX:已有的 All:已分配的 Need:所需要的 Avail:各类资源还剩多少
Need=MAX-ALL work:第一次为Avail,之后为work+all的值
在这里插入图片描述
3) P2ALL+提出的
P2Need-提出的
Avail-提出的
再将表进行替换,在使用2)中寻找安全序列方法,看是否能找到

第四章

1.原语
原子语句,不可分割,执行不可中断(要么全部执行,要么都不执行)
分类:
请求(Req)型原语,用于高层向低层请求某种业务
证实(Cfm)型原语,用于提供业务的层证实某个动作已经完成
指示(Ind)型原语,用于提供业务的层向高层报告一个与特定业务相关的动作
响应(Res)型原语,用于应答,表示来自高层的指示原语已收到
2.动态分区分配
基于顺序搜索的动态分区分配算法
顺序搜索:是指依次搜索空闲分区链上的空闲分区,去寻找一个其大小能满足要求的分区。
碎片:内存空间不断被划分,会留下许多难以利用的、很小的空闲分区。
首次适应算法FF
要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止,缺点是低址部分会不断被划分,形成碎片。
循环首次适应算法NF
在为进程分配内存空间时,不再是每次都从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找。实现可通过设置一起始查寻指针,用于指示下一次起始查寻的空闲分区,并采用循环查找方式。缺点缺乏大的空闲分区。
最佳适应算法BF
总是把能满足要求、又是最小的空闲分区分配给作业,为了加速寻找,该算法要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。缺点产生许多碎片。
最坏适应算法WF
在扫描整个空闲分区表或链表时,总是挑选一个最大的空闲区,分割一部分空间给作业使用。要求将所有的空闲分区按其容量以从大到小的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求即可。缺点缺乏大的空闲分区。
基于索引搜索的动态分区分配算法
快速适应算法
又称为分类搜索法。是将空闲分区根据其容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表,同时在内存中设立一张管理索引表,该表的每一个表项对应了一种空闲分区类型,并记录了该类型空闲分区链表表头的指针。
该算法仅需要根据进程的长度,寻找到能容纳它的最小空闲区链表,并取下第一块进行分配即可。在分配过程中,不会对任何分区产生分割。
伙伴系统 ​​
伙伴系统是连续存储分配的一种办法。它比较好地折中了分配和回收过程中分配块的位置碎片和合并的问题。伙伴系统地概念如下图:整个可分配分区大小为2的幂次方,当需要的内存空间大于当前块的一半的时候就将整个分区分配给进程,如果小于当前分区的一半,就将当前分区对半分开,将其中一半继续与需要的内存大小进行比较,递归进行下去,直到满足所需内存大小大于分区一半。可以看到这种分配方式内部碎片最大为分区大小的一半减一。
哈希算法
构造一张以空闲分区大小为关键字的哈希表,该表的每一个表项记录了一个对应的空闲分区链表表头指针。
3.分页存储管理方式
页表结构:页块+页号
在这里插入图片描述1)方法
先将页和块对应起来
因为1K=1024,用1023取余1024得出
此时页号为0,页内地址为1023
由于一个物理块对应1024,页号0对应的物理块为2
2*1024+1023(页内地址)=3071得出物理地址
特殊:由于4500/1024=4(定义一共有0,1,2,3页,现在已经超出范围)
答题时写:因为页号不小于页表长度,产生越界
2)在这里插入图片描述4.分段存储管理方式
在这里插入图片描述方法:
0代表段号,能放10K(段长)的数据
再判断137是否在这个范围内,在这个范围说明合法所以物理地址=段的始址+段内地址,不在这个范围说明不合法。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

第五章

1.虚拟存储器定义:虚拟存储器是指仅把作业的一部分装入内存便可运行作业的存储管理系统,它具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充,其逻辑容量由外存容量和内存容量之和决定,其运行速度接近于内存,成本接近于外存。
2.请求分页存储管理方式
请求页表机制:
状态位(存在位) P:指示该页是否已调入内存,状态位0表示不在内存,1表示已在内存中。
访问字段A:记录该页在一段时间内的访问次数,或者最近多久未被访问,为置换算法选择置换页提供参考;
修改位M:指示该页在调入内存后是否被修改过。
外存地址:指示该页在外存的地址,通常是物理块号。
缺页中断机构
在请求分页系统中,每当所要访问的页面不在内存时,便产生一缺页中断,请求 OS 将所缺之页调入内存。缺页中断作为中断,它们同样需要经历诸如保护 CPU 环境、分析中断原因、转入缺页中断处理程序进行处理、恢复 CPU 环境等几个步骤。但缺页中断又是一种特殊的中断,它与一般的中断相比,有着明显的区别,主要表现在下面两个方面:
在指令执行期间产生和处理中断信号。即在指令执行期间,发现所要访问的指令或数据不在内存时所产生和处理的。
一条指令在执行期间,可能产生多次缺页中断。并保证最后能返回到中断前产生缺页中断的指令处继续执行。
最佳置换(OPT)算法选择的被淘汰页面,将是以后永不使用的,或许是在最长时间内不再被访问(往后看哪个最晚被用到)的页面;采用最佳置换算法可保证获得最低的缺页率。但是由于无法预知哪一个页面是未来最长时间内不再被访问的,因而该算法是无法实现的;
先进先出(FIFO)算法淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。分配的块多缺页率会下降。
最近最久未使用(LRU)算法根据页面调入内存后的使用情况进行决策,选择最近最久未使用的页面予以淘汰(向前看哪个离他最远);该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问一来所经历的时间T,当需要淘汰一个页面时,选择现有页面中T值最大的,即最近最久未使用的页面予以淘汰。
缺页次数=有数字的列
置换次数=缺页次数-物理块数
缺页率=缺页次数/总数量

在这里插入图片描述在这里插入图片描述说明了并不是分配物理块越多越好

第六章

1.通道
定义:通道是一种通过执行通道程序管理I/O操作的控制器,它使主机(CPU和内存)与I/O操作之间达到更高的并行程度。由于它的任务是管理实现输入/输出操 作,提供一种传送通道,所以将这种部件称作“通道”。
缺点: 1)其指令单一
2)通道没有自己的内存
2.设备无关性
I/O设备无关性是指应用程序独立于具体使用的物理设备
3.磁盘调度算法特点
1)先来先服务(FCFS)算法:
FCFS算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。
优点是具有公平性。若只有少量进程需要访间,且大部分请求都是访问簇聚的文件扇区,则有望达到较好的性能;
2)最短寻找时间优先(SSTF)算法:
SSTF算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以便使每次的寻找时间最短。
缺点:种算法会产生“饥饿”现象。
3)扫描(SCAN)算法(又称电梯调度算法):
SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象
缺点:SCAN算法对最近扫描过的区域不公平,因此它在访问局部性方面不如FCFS算法和SSTF算法好。
4)循环扫描(C-SCAN)算法:
在扫描算法的基础上规定磁头单向移动来提供服务,回返时直接快速移动至起始端而不服务任何请求
在这里插入图片描述

4.分段与分页的区别
1)分页是出于系统管理的需要
分段的目的是为了更好地满足用户的需要
2)页的大小固定而且由系统决定
段的长度不固定
3)页的地址空间是一维的。
段的地址空间是二维的。
4)页是信息的物理单位
段则是信息的逻辑单位
5)分页有内部碎片无外部碎片
分段有外部碎片无内部碎片

第七章

1.按名存取
优点:用户只需要向系统提供所需要访问文件的名字,便能快速准确的找到指定文件在外存上的存储位置。
2.文件控制块
文件控制块(FCB)是用来存放控制文件需要的各种信息的数据结构。FCB的有序集合称之为文件目录。

第八章

1.一级容错、二级容错
1)一级容错(SFI-I)是最基本的一种磁盘容错技术,用于防止磁盘表面缺陷所造成的数据丢失
2)二级容错(SFI-II)用于防止磁盘驱动器和磁盘控制器故障所导致的系统不能正常工作,具体分为磁盘镜像和磁盘双工。

声明:仅用于个人学习

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值