操作系统期末复习资料Word文档下载推荐.docx
- 文档编号:19199952
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:25
- 大小:135.92KB
操作系统期末复习资料Word文档下载推荐.docx
《操作系统期末复习资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《操作系统期末复习资料Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
之一:
资源复用
既然资源不够,那就尽量实现共享
空分复用共享:
把资源细分成更小的单位,把这些单位分给各个进程使用
典型例子:
内存,磁盘
时分复用共享:
资源本身不能再分,那么可以把使用它的时间细分,把时间片分给各个进程,大家轮流用
典型:
CPU
之二:
资源虚化
这个技术源于以下的问题:
如果大家同时都要使用一种独占设备,怎么办?
比如多个用户同时请求打印服务
通俗地说,所谓虚化,就是创造出一种虚拟的资源,然后将若干个这种虚拟资源,对应于一种实际的真实资源,进程需要使用真实资源时,只需要使用这种虚拟资源即可,由操作系统来负责协调各个虚拟资源同时对真实资源的访问,进程无需关心竞争问题。
之三:
资源抽象
计算机的外围设备,如磁盘,内存等,都有对外的接口,但很难于直接使用,资源抽象就是为了解决这个问
思路:
对内封装实现细节,对外提供更方便的接口
做法:
创建软件来屏蔽硬件资源的物理特性和接口细节,简化对硬件操作、控制和使用,使程序员在编程序时,不需要了解硬件知识,而专心于问题的解决。
6、三种基础抽象方法(正确区分)
(1)进程抽象:
对于进入主存的当前运行的程序在CPU上的状态的一种抽象,包括处理器状态和内存状态
(2)虚存抽象:
物理内存被抽象成一种数组形式的虚拟主存,给进程造成独占整个主存的假象,由操作系统负责管理虚拟主存到真实物理内存的对应。
(3)文件抽象:
将磁盘、光盘的存储介质设备上存放的信息抽象为一个逻辑字节流,称为“文件”,用户通过创建、打开、读写、关闭等操作来控制文件,或者控制磁盘等的运行。
7、操作系统几大主要功能
1、处理器管理2、存储器管理3、设备管理
4、文件管理5、网络与通信管理6、提供用户接口
8、三种基本的操作系统类型、他们各自使用于什么地方
(1)批处理操作系统适合处理一些事先安排好步骤,无需人工干预,而执行时间长的工作(计算大型的微分方程)
(2)分时操作系统允许多个用户同时连接到操作系统上,进行交互式访问(以时间片形式分给每个用户的每个进程)
(3)实时操作系统有一些应用场合,操作系统在运行时,需要及时快速地响应来自外界的请求,对外部事件和数据,需要进行快速处理并及时给予回应(飞机自动驾驶系统,导弹自动控制系统,银行业务处理系统等)
注:
除了以上三种基本的类型外,还可以有下面一些类型:
微机操作系统:
如DOS,Windows,Linux等
网络操作系统:
如Unix,NetWare,WindowsNT等
9、系统调用的概念、作用,特别理解它是内核对外的唯一接口
(1)概念:
给编程使用的接口
(2)作用:
①内核可以基于权限和规则对资源访问进行裁决,保证系统的安全性②对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,且使编程效率提高。
PS:
系统调用是应用程序获得操作系统服务的唯一途径
11、API、库函数与系统调用
系统调用尽管已经对内核服务进行了一定的抽象,但还是很难用,需要对其进一步的包装。
API(ApplicationProgramInterface)是一个函数定义,说明如何获得给定的服务。
库函数与API的概念差不多,都是提供经过包装的、更好用的接口,来为程序员编写程序提供方便
库函数和API中,可以是对系统调用的包装,也可以是对其他非系统调用的函数的包装。
第二章处理器管理
1、处理器管理的内容
处理器管理的主要任务是对处理器进行分配,并对其进行有效的控制和管理。
在现代操作系统中,处理器的分配和运行都是以进程为基本单位的,因而对处理器的管理也可以视为对进程的管理。
(程是程序的一次执行)
2、理解处理器管理在操作系统中的核心地位
(1)处理器管理是操作系统中最核心的部分,因为它管理的也是计算机中最重要的硬件
(2)处理器管理负责管理、调度和分配处理器,并控制程序的执行。
(3)处理器管理的优劣直接影响系统的性能
(4)操作系统中最重要的是处理器管理
(5)处理器管理中最重要的是处理器调度
3、特权指令与非特权指令
特权指令:
仅供内核使用的指令(启动设备、设置时钟、控制中断屏蔽位、清空主存、建立存储键、加载PSW等敏感性操作)
非特权指令:
非特权指令,是指可以被应用程序使用的一些指令,当然内核也可以使用
如果应用程序执行特权指令,会导致非法执行而产生保护中断,继而转向操作系统的“用户非法执行特权指令”的异常处理程序进行处理
4、处理器状态:
核心态、用户态,它们之间的切换,尤其是用户态如何转为核心态
核心态(管态):
运行在内核上,可以执行所有指令,可以访问所有内存与其他资源,可以改变处理器状态
用户态(目态):
运行在一般应用程序上,只能执行非特权指令,只能访问属于该进程的内存和其他资源,不能改变处理器状态,除非采用特定的方式
它们之间的切换(从用户态到核心态):
(1)程序请求操作系统的服务,执行系统调用。
(2)程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理程序或异常处理程序工作。
通过中断机制发生,是用户态到核心态的仅有途径。
5、PSW(程序状态字)里面装了什么(系统不一,内容各异)?
PSW用来指示处理器状态,控制指令的执行顺序,并且保留和指示与运行程序有关的各种信息,主要作用是实现程序状态的保护和恢复。
每个正在执行的程序都有一个与其当前状态相关的PSW,而每个处理器都设置一个硬件的PSW寄存器,一个程序占用处理器执行时,其PSW将占用硬件PSW寄存器。
6、中断的概念
在程序执行过程中,遇到急需处理的事件时,暂停中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他执行程序。
7、中断的分类(按事件的来源和实现的手段)
硬中断:
由硬件发给CPU的中断
(1)外中断(中断、异步中断),来自处理器之外的硬件产生的中断信号(键盘中断,设备中断)
1可屏蔽中断
2不可屏蔽中断:
紧急情况,不可忽略,须立即处理
(2)内中断(异常、同步中断),来自处理器内部的硬件产生的中断。
不可屏蔽,一旦出现须立即响应,进行处理
①访管中断:
由执行系统调用而引起
②硬件故障中断:
电源失效、协处理器错误、奇偶校验错误等
3程序性异常:
非法操作、地址越界、页面故障、调试指令等
软中断:
由软件发给软件的中断
(1)信号:
用于内核或进程,对某个进程的中断
(2)软件中断:
用于硬中断服务程序对内核的中断
8、为何外部中断有些可屏蔽,而异常都不可屏蔽*
有一些中断,是比较紧急的情况,是不可以忽略的,CPU在收到这些中断信号后,必须马上进行处理,否则会引起系统的问题,这些就是不可屏蔽中断。
9、异常的几种处理方式
1故障(Fault):
发生问题处理完毕后,再执行一次原来的指令
2陷阱(Trap):
执行特定的调试指令时触发,被调试的进程遇到所设置的断点处会暂停等待
3终止(Abort):
某些错误发生后,无法恢复,不会返回原进程,有时甚至需要重启计算机
4编程异常(ProgrammedException):
用于实现系统调用
总结:
故障发生后,处理完毕后将原来引发故障的指令再执行一遍
陷阱与编程异常发生后,处理完毕之后,执行原指令的下一条指令
终止则不再返回原来的指令。
11、中断处理的一般过程
是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU暂时停止正在运行的程序,转到为该内部/外部事件或预先安排的事件服务的程序中去,服务完毕,再返回去继续运行被暂时中断的程序,这个过程称为中断。
12、时钟中断及其作用(主要的两大作用)
时钟是内核进行调度工作的重要工具,利用定时器能够确保内核可以获得控制权
(1)规定时间内,内核可以获得CPU控制权
(2)获取时间
13、进程的概念,进程包括哪些东西(代码,数据,管理结构)
进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位。
控制块:
存储进程的标志信息,现场信息和控制信息,每一个进程分配一个进程控制块
程序块:
组成程序的代码集合
数据块:
全局数据
栈:
用来管理函数调用关系的结构
(通俗讲:
进程就是一个正在执行的程序)
14、进程与程序的区别与联系(为什么要引入进程)
程序:
存放在磁盘上的文件
进程:
运行着的程序实例,包括代码,数据,信号,栈等多种信息
在多道程序设计之下,原来的“程序”概念已经不能用来描述这时候的情况了,程序只是一个静态的概念,而进程是一个动态的概念
15、进程的几种状态,它们之间的转换(尤其注意,不存在从阻塞态到运行态的转换)
(1)运行态(running):
满足运行条件、占有CPU
(2)就绪态(ready):
满足运行条件、不占有CPU(等待被调度)
(3)等待态(wait):
不满足运行条件、不占有CPU,也叫睡眠,阻塞
为了便于管理,特意加了:
新建态(new)和终止态(exit),描述进程刚创建和结束时候的两种状态
挂起态(suspend),指暂时把进程换到磁盘缓冲区内
(1)就绪→执行
处于就绪状态的进程,当进程调度分配了处理机后,该进程便由就绪状态转变成执行状态。
(2)执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片而不得不让出处理机,于是进程从执行状态转变成就绪状态。
(3)执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
(4)阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
16、进程的三种上下文
(1)用户级上下文(userlevelcontex):
进程自己的代码、数据、栈等
(2)系统级上下文(systemlevelcontex):
进程陷入内核后,内核所使用的内存管理信息表、核心栈,也包括进程控制块
(3)寄存器上下文(registercontex):
各个寄存器当时的信息,用于保护和恢复现场
17、进程控制块的概念和作用
进程存在的唯一标识
内核用来记录和刻画进程状态的数据结构
管理和调度进程的依据
18、进程切换的过程*
19、线程的概念
线程是进程中能够并发执行的实体,是进程的组成部分,也是处理器调度和分派的基本单位。
传统的进程,都是运行在同一个处理器上,在同一个进程内,是串行的。
线程只有三态(运行、就绪、等待)由于线程不是资源的拥有单位,挂起状态对于线程是没有意义的。
20、为什么要引入线程?
引入了线程,是为了减少程序并发执行时所付出的时空开销,使得并发力度更细、并发性更好。
(实质是把CPU的分配权,进行进一步的细分)
对外:
就可以把进程的不同部分放到不同的处理器上
对内:
可以在一个功能暂时不执行时,转而去执行其他的功能
21、线程与进程的区别与联系
线程与进程的主要区别,就是进程有自己的独立空间,线程没有自己完全独立的空间。
各个线程共享进程的代码区和全局数据区,各个线程执行的代码区的不同代码,访问全局数据的不同数据。
22、为什么线程没有挂起态?
由于线程不是资源的拥有单位,挂起状态对于线程是没有意义的。
(线程的挂起和激活,是随着宿主进程挂起和激活)
23、什么叫处理器调度
(原因:
主存、处理器与作业、进程之间,永远是供不应求的关系)
按照何种原则挑选作业进入主存运行,如何把处理器进行分配
24、三种调度层次,哪种是必需的?
高级调度(作业调度)
中级调度(进程调度)
低级调度(线程调度)必须的,但中级和高级调度,则可有可无。
25、衡量一个调度算法好坏的标准
1资源利用率
2吞吐量
3公平性
4响应时间
5周转时间
一言蔽之,先公平,后效率
26、会计算调度的“平均周转时间”(实际操作)
P122
27、几种典型的调度算法:
先来先服务,短作业优先,时间片轮转,优先级调度,彩票调度(实际操作)
P126~132
第三章同步、通信与死锁
0、并发管理任何一个时间点有多个进程同时在运行
1、并行情况下会出现的问题、原因*
2、同步的目的(书上,课件均无结果,复习课上听到的作为依据)
(1)使得并行情况下结果依然保持确定性
(2)限制越少越好
3、Peterson算法
Dekker算法的演化)一种纯软件算法,通过两个变量来实现互斥访问临界区。
是免锁编程的基本算法之一,这个算法设计得很巧妙,核心就是三个标志位是怎样控制两个方法对临界区的访问的。
4、信号量的定义,取值含义,PV操作
信号量:
表示物理资源的实体,是一个与队列有关的整型变量。
取值:
用一个结构型数据结构表示,有两个分量
(1)信号量的值
(2)信号量队列的指针
PV操作:
P(s):
将信号量value值减1,若结果小于0,则执行P操作的进程被阻塞,排入与s信号量有关的list所指队列中;
若结果大于等于0,则执行P操作的进程继续执行。
V(s):
将信号量value值加1,若结果不大于0,则执行V操作的进程从信号量s有关的list所指队列中释放一个进程,使其转换为就绪态,自己则继续执行;
若结果大于0,则执行V操作的进程继续执行。
另种说法:
强大的同步原语,既可以用于进程同步,也可以用于进程通信
信号量sem为一个整型变量,对它可以有两个操作:
增加(V)、减少(P)
P操作(down):
sem-1
if(sem<
0)
睡眠
V操作(up):
sem+1
=0)
唤醒
5、PV操作实现生产者消费者问题
P179
intB;
semaphorefull;
empty=1;
full=0;
cobegin
processproducer(){processcomsumer(){
while(true){while(true){
produce();
P(full);
P(empty);
take()fromB;
Append()toB;
V(empty);
V(full);
consum();
}
}}
6、唤醒睡眠机制实现生产者消费者问题
P188~189?
如果生产者发现缓冲区满了,则唤醒消费者,自己睡眠
如果消费者发现缓冲区空了,则唤醒生产者,自己睡眠
7、几种进程间的通信机制
(1)信号通信机制
(2)管道通信机制
(3)共享主存通信机制
(4)信息传递机制
(5)信号量机制
8、死锁的概念
如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁。
9、死锁产生的四个必要条件、破坏死锁方法的原则
(1)互斥条件
(2)占有和等待(3)不剥夺条件(4)循环等待
这四个条件是死锁发生的必要条件,只要其中有一个不成立,则不会发生死锁
解决方法:
1死锁防止----分别破坏四个条件之一
2死锁避免----可以允许前三个条件发生,但不允许第四个条件发生
3死锁检测与恢复----定期检测,发生死锁后采取措施
4不采取任何措施
破坏条件
(1):
不大现实的做法,因为资源的独占性通常是不可改变的
破坏条件
(2):
进程运行前,只有资源全部申请到了,才能运行,运行过程中不能再申请新的资源
破坏条件(3):
当进程去申请新的资源时,必须释放原来占用的资源,重新申请
破坏条件(4):
建立一种策略,对资源进行分类,只能按照某种规则进行资源申请
结束所有进程,重启操作系统
撤销处于死锁状态的所有进程
逐个撤销处于死锁状态的进程,回收其占用的资源,直到死锁解除
逐个剥夺处于死锁状态进程占用的资源,直到死锁解除
回滚到死锁发生前的状态
10、银行家算法的思想
系统中的所有进程放入进程集合,在安全状态下系统收到进程的资源请求后,先把资源试探性地分配给它。
现在,系统将剩下的可用资源和进程集合中其他进程还需要的资源数作比较,找出剩余资源能满足的最大需求量的进程,从而保证进程运行完毕归还全部资源。
这时,把这个进程从进程集合中删除,归还其所占用的所有资源,系统的剩余资源则更多,反复执行上述步骤。
最后检查进程集合,若为空则表明本次申请可行,系统处于安全状态,可以真正实施本次分配;
否则,只要进程集合非空,系统便处于不安全状态,本次资源分配暂不实施,让申请资源的进程等待。
(约束条件每个客户必须预先说明自己所要求的最大资金量。
每个客户每次提出部分资金量申请和获得分配。
如果银行家满足客户对资金的最大需求量,那么客户在资金运作后,应在有限时间内全部归还银行。
)
11、给定一个分配方案,判断是否会产生死锁(实际操作)
第4章存储管理
1、编译、链接和加载都干了些什么*
编译、链接与加载
编译器完成的是代码的翻译,在链接之前,它不确定具体的地址,而是把需要重定位地址的地方写到符号表里。
连接器把各个“可重定位目标文件”组合成一个可执行文件,并确定具体的地址。
加载器根据文件中的地址,以及具体的内存管理方案,把程序加载到特定的位置。
编译:
将源程序翻译为机器指令,生成目标文件,这些目标文件并不能直接执行。
链接:
将多个目标文件模块装配成一个完整的程序,它解析符号表,把对符合的引用转换成具体的数值地址。
加载:
执行程序之前,当获得了一块实际的内存之后,加载器根据该内存的首地址,再次修改和调整可执行文件中的地址,完成地址的最后绑定。
2、现代计算机系统的存储器层次
现代的存储器,已经不仅仅指内存了,它包括了寄存器,缓存,内存,磁盘这样一种层次结构
特点:
(从下往上)访问速度越来越快,容量越来越少,价格越来越贵
金字塔型(从下往上)磁带,磁盘,主存储器,高速缓存,寄存器
3、几种不太主流的内存管理方法:
固定分区、可变分区、伙伴系统(考的不多)
(1)固定分区:
主存空间被划分成固定数目、大小不等的分区,每个分区可执行一个作业,各作业并发执行。
执行方法:
根据当天的作业情况,进行分区;
建立“主存分配表”;
根据待运行作业的内存需求,选择合适的分区,载入运行。
(2)可变分区:
根据作业的大小选择分区,但分区的划分是根据作业和空余内存来动态分配的。
每当来一个新进程,从可用内存中划分出一块连续的区域,供进程使用,没有合适的区域,则等待别的进程释放内存。
(3)伙伴系统:
任何尺寸为2^i的空闲块,都可以分解成两个2^(i-1)的块,反过来也可以把他们合并起来,这两个块,成为伙伴。
建立一个空闲数组free[i],i=0,…N,每个元素表示一个链表,该链表中的元素是大小为2^i的分配单元。
5、分页系统牵涉到哪些东西(涉及实际操作)
(1)页面
(2)页表(3)页表基址寄存器(4)MMU
6、一级页表、二级页表中虚拟地址到物理地址的映射(联系5,涉及实际操作)
7、虚拟空间的大小(实际操作)
8、页表项里主要记录了什么
记录了物理页面的内存起始地址,以及其他的关于该物理页面的信息
9、在Intel处理器下,虚拟地址的构成(一级页表、二级页表)(实际操作)
11、段式管理的概念
段式管理:
一个进程分成几个部分,每一个部分占据一个区(逻辑)
段式管理最大的一个特点:
每个段都是一个独立的虚拟地址空间。
(这里的“段”,指的是逻辑段,它们也要通过某种映射机制,把逻辑段,映射为物理内存的专门区域)
12、段式管理能解决页式管理哪两个问题*
共享内存
进程所需内存超过虚拟内存
13、段式管理的虚拟空间大小(实际操作)
建议:
段式与页式联系着记忆
长度:
页式(固定)段式(可变)
虚拟空间大小:
页式(透明,相对固定)段式(不透明,不定)。
。
(每一个段长都根据需要,各有长短,但实际上,每一个段最长可以有最大虚拟空间地址
因此采用段式管理,每个进程的虚拟地址空间,可以远大于4G(以32位机器为例))
14、段式管理下,虚拟地址的组成(实际操作)
(段寄存器、段选择符
在实模式下,CS,DS,ES,SS用来存放一个段的基地址
在保护模式下,它们存放了新的东西—段选择符,里面存放了段表内偏移
因为怕不够,Intel又增加了两个段寄存器FS,GS
段表、段表项
它们的关系跟页表、页表项的关系一样,段表里面放了很多段表项,Intel里叫“段描述符”
段描述符里存放了,该逻辑段,会被映射到的物理段的基地址
段选择符里存放了应该访问第几个段描述符,即上面图中的“段号”
段选择符结构(段表内偏移)
段描述符结构(段表项)
段表基址寄存器
同CR3一样,每一个进程,都有一个段表,他保存的是该进程的段表的基地址)
15、根据给定的虚拟地址,算出物理地址(简单的方式)
16、虚拟存储
虚拟存储器:
在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理主存容量大得多的、可寻址的“主存储器”。
实际上,虚拟存储器对用户隐蔽可用物理存储器的容量和操作细节,虚拟存储器的容量与物理主存大小无关,而受限于计算机的地址结构和可用的磁盘容量,如Intelx86的地址线是32位,则程序可寻址范围是4GB,Windows和Linux都为应用进程提供一个4GB的逻辑主存。
17、局部性的概念,有什么用*
局部性:
某存储单元被引用之后,程序倾向于过短时间再次引用该单元(时间局部性),或者倾向于过一段时间引用该单元附近的存储单元(空间局部性)
以下为关于局部性的一些研究成果:
1程序中大部分是顺序结构,分支与函数调用等跳转结构较少
2循环结构由少量代码组成,多次执行
3过程调用深度并不大
4数组、记录之类的结构,一般是分配连续的空间
5程序中不少部分是互斥的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 期末 复习资料