操作系统复习要点 精品.docx
- 文档编号:11782691
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:22
- 大小:27.84KB
操作系统复习要点 精品.docx
《操作系统复习要点 精品.docx》由会员分享,可在线阅读,更多相关《操作系统复习要点 精品.docx(22页珍藏版)》请在冰豆网上搜索。
操作系统复习要点精品
操作系统复习要点
1、概述部分
操作系统概念、特征、设计目标
2、进程管理部分
进程概念、组成、进程状态迁移图及迁移原因,进程间的关系、临机区概念,实现互斥的方法、P/V操作,引入线程的目的、线程与进程间的关系、死锁特征、资源分配图判定死锁的方法,常用调度算法。
3、内存管理部分
作业装入内存的方式,分区内存管理机制中的分区分配方法、特点、快表、分页管理机制原理、实现请求调页的内存管理机制的关键技术
4、文件管理部分
文件系统设计目标、管理磁盘空闲空间的方法、目录结构、FCB等
5、外设管理部分
I/0软件组成,设备驱动程序概念、四种I/O方式比较及其工作流程,设备管理目标。
复习题目
概述部分
1、什么是操作系统?
操作系统设计目标是什么?
由哪些部分组成?
各个部分主要解决什么问题?
操作系统(operatingsystem)是用户和计算机之间的界面.一方面操作系统管理着所有计算机系统资源,另一方面操作系统为用户提供了一个抽象概念上的计算机.在操作系统的帮助下,用户使用计算机时,避免了对计算机系统硬件的直接操作.
对计算机系统而言,操作系统是对所有系统资源进行管理的程序的集合;对用户而言,操作系统提供了对系统资源进行有效利用的简单抽象的方法
设计目标
Usergoals
operatingsystemshouldbeconvenienttouse,easytolearn,reliable,safe,andfast.
Systemgoals
operatingsystemshouldbeeasytodesign,implement,andmaintain,aswellasflexible,reliable,error-free,andefficient.
组成
ProcessManagement
MainMemoryManagement
Secondary-StorageManagement
I/OSystemManagement
FileManagement
ProtectionSystem
Networking
Command-InterpreterSystem
各部分主要解决问题见课本ppt
2、操作系统内核技术的发展?
什么是微内核?
并发和并行的区别?
发展
BatchSystems(作业批处理)
Time-SharingSystems(分时系统)
Personal-ComputerSystems
(PC系统)
ParallelSystems(并行系统)
DistributedSystems(分布系统)
Real-TimeSystems(实时系统)
一般来说OS的核心有以下几种:
1.单块核心(MONOLITHICKERNEL)
将所有OS功能放入核心.UNIX就是这种结构.
2.环状核心
分为核心,任务,用户几级,如MINIX.LINUX也有这种特征,大家也许注意到,LINUX增加某些种类的服务时不像UNIX,必须重新启动.这就是这种结构比UNIX先进的地方.
3.无内核:
不区分核心和用户程序的分别,这样省去了状态切换的时间,这种模式适合WEB服务器.
4.微内核
微内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是多线程的,第一代微内核,在核心提供了较多的服务,因此被称为'胖微内核',它的典型代表是MACH,它既是GNUHURD也是APPLESERVEROS的核心,可以说,蒸蒸日上.第二代为内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS
并发与并行是两个既相似而又不相同的概念:
并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生
进程管理部分:
1、为什么要引入进程?
为什么要引入线程?
从调度性、并发性、拥有的资源以及系统开销等方面,区别和比较进程和线程?
进程两个基本特性:
资源分配的独立单位
调度的基本单位
引入思想:
将进程资源分配和调度分开,引入线程。
启动一个新进程必须分配独立地址空间,建立众多的数据表来维护它的代码段、堆栈段,这是一种很“昂贵”的多任务工作方式。
运行于一个进程中的多个线程,彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间。
线程间彼此切换所需的时间也远远小于进程间切换所需要的时间时间。
创建一个新线程花费时间少(结束亦如此)
两个线程的切换花费时间少
同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核
适合多处理机系统
2、进程状态迁移图,引起状态迁移的原因和事件?
三五七状态迁移
引起状态迁移的原因和事件
正在运行的进程运行完毕;运行中的进程要求I/O;执行某种原语操作;一个比正在运行进程优先数更高的进程申请运行(可剥夺调度方式);分配给运行进程的时间片已经用完;主动放弃
3、进程组成?
PCB的含义?
Informationassociatedwitheachprocess.
Processstate
Programcounter
CPUregisters
CPUschedulinginformation
Memory-managementinformation
Accountinginformation
I/Ostatusinformation
PCB进程控制块:
是进程存在的唯一标志,它是记录进程生存期内状态变化的重要数据结构。
4、进程之间的关系?
什么是临界区?
如何实现临界区的互斥访问?
进程之间的关系:
同步互斥。
。
竞争协作?
。
。
在进程中涉及到临界资源的程序段叫临界区
如何实现临界区的互斥访问
软件方法:
先修改、后检查、后修改者等待
turn=j;描述可进入的进程(同时修改标志时)
在进入区先修改后检查,并检查并发修改的先后
检查对方flag,如果不在临界区则自己进入--空闲则入
否则再检查turn:
保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入--先到先入,后到等待
flag[i]=true;turn=j;
while(flag[j]&&turn==j);
criticalsection
flag[i]=false;
remaindersection
硬件方法:
1
Test-and-Set指令
该指令读出标志后设置为为TRUE
booleanTS(boolean*lock){
booleanold;
old=*lock;*lock=TRUE;
returnold;
}
while(TS(&lock));
criticalsection
lock=false;
remaindersection
5、P/V操作的含义?
信号量的含义?
如何定义信号量的初值?
如何利用P/V操作实现多个进程之间的同步和互斥?
如利用其实现单缓冲区的读写问题?
如何实现生产者消费者等问题?
P/V操作
是定义在信号量上的两个操作,是一种卓有成效的进程同步机制,执行P操作意味着申请分配一个单位的资源,执行V操作意味着申释放一个单位的资源。
信号量表示资源的实体,是一个与队列有关的整型变量。
初值
公用信号量用来实现进程间的互斥,初值为1,允许它所联系的一组进程对它执行P/V操作
私用信号量用来实现进程间的同步,初值为0或者某个正整数,仅允许拥有它的进程对其执行P/V操作。
信号量取值为非负值表示当前空闲资源数,若为负值其绝对值表示当前等待临界区的进程数
实现互斥
为临界资源设置一个互斥信号量mutex,初值为1;
在每个进程中,将临界区代码置于P(mutex)和V(mutex)原语之间
必须成对使用P和V原语:
遗漏P原语则不能保证互斥访问,遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程)
P(mutex)
CS
V(mutex)
RS
实现同步
前趋关系
并发执行的进程P1和P2中,分别有代码C1和C2,要求C1在C2开始前完成;
为每个前趋关系设置一个互斥信号量S12,其初值为0
P1P2
C1P(s12)
V(s12)C2
实现单缓冲区的读写问题
说明:
Mutes、w初值为1,readcount初值为0
Readcount用来记录当前有多少个读者在访问数据
Mutex用来保证读者之间互斥地修改readcount。
W是读者和写着公用的互斥变量,用来互斥读写同时进行
1读者优先
读者:
while(true){
P(mutex);
readcount++;
if(readcount==1)
P(w);
V(mutex);
读
P(mutex);
readcount--;
if(readcount==0)
V(w);
V(mutex);
};
写者:
while(true){
P(w);
写
V(w);
};
2写者优先
说明:
Mutes、w初值为1,readcount初值为0
Readcount用来记录当前有多少个读者在访问数据
Mutex用来保证读者之间互斥地修改readcount。
W是读者和写着公用的互斥变量,用来互斥读写同时进行
读者:
while(true){
P(w);
P(readcount);
V(w);
读
V(readcount);
};
写者:
while(true){
P(w);
fori:
=1tondoP(readcount);
写
fori:
=1tondoV(readcount);
V(w);
};
实现生产者消费者等问题
问题描述:
若干进程通过有限的共享缓冲区交换数据。
其中,"生产者"进程不断写入,而"消费者"进程不断读出;共享缓冲区共有N个;任何时刻只能有一个进程可对共享缓冲区进行操作。
解决:
full是“满”数目,初值为0,empty是“空”数目,初值为N。
实际上,full和empty是同一个含义:
full+empty==N
mutex用于访问缓冲区时的互斥,初值是1
每个进程中各个P操作的次序是重要的:
先检查资源数目,再检查是否互斥――否则可能死锁
实现
Producer
p(empty);
p(mutex);
oneunit->buffer;
v(mutex);
v(full);
Consumer
p(full);
p(mutex);
oneunit<-buffer;
v(mutex);
v(empty);
6、高级通信方式中,理解send()和receive()的工作过程。
发送进程需要发送消息时,执行send原语,产生自愿性中断,进入操作系统,操作系统为发送进程分配一个空缓冲区,并将所发送的消息从发送进程copy到缓冲区中,然后将该载有消息的缓冲区连接到接收进程的消息链链尾。
发送进程返回到用户态继续执行
接受进程
在以后某个时刻,接收进程执行到receive接收原语时,也产生自愿性中断进入操作系统。
操作系统将载有消息的缓冲区从消息链中取出,并把消息内容copy到接收进程空间,之后收回缓冲区。
完成了消息的接收,接收进程返回到用户态继续进行
7、有哪些常用调度算法?
引起进程调度的事件有那些?
多级反馈队列调度算法的分析?
常用调度算法
First-Come,First-Served(FCFS)Scheduling
Shortest-Job-First(SJF)Scheduling
Shortest-Remaining-Time-First(SRT
PriorityScheduling
RoundRobin(RR)
MultilevelQueue
引起进程调度的事件
Switchesfromrunningtowaitingstate.
Switchesfromrunningtoreadystate.
Switchesfromwaitingtoready.
Terminates.
多级反馈队列调度算法,是一种考虑较全面灵活的调度算法,它不必事先知道各作业所需执行时间,且它可以满足各种类型进程的需要,因此它是目前公认较好的一种进程调度算法。
(1)为提高系统吞吐量和降低作业平均周转时间而照顾短作业。
(2)为了得到较好的输入/输出设备的利用效率和对交互用户的及时响应,而照顾输入/输出型作业。
(3)在作业运行过程中,按作业运行情况能动态地考虑作业的性质是输入/输出型作业,还是计算型作业。
调度算法的实施过程
在采用多级反馈队列调度算法的系统中,调度算法的具体实施过程如下:
(1)设置多级就绪队列。
系统中有多个就绪进程队列,每个就绪队列对应一个调度级别,各级具有不同的优先级。
第1级队列的优先级最高,第2级队列优先级次之,其余级队列的优先级随级增大而降低。
(2)各级就绪队列具有不同大小的时间片。
优先级最高的第1级队列中进程的时间片最小,随着队列的级数增大其中进程的优先级降低,但时间片却增大。
(3)一个新进程在系统就绪队列中排队的规则。
当一个新进程进入内存后,首先被放到第1级就绪队列末尾。
该队列中的进程按FCFS原则分配处理机,并运行相应于该队列的一个时间片。
若进程在这个时间片中完成其全部工作,该进程离开就绪队列撤离系统;若进程运行完一个时间片后仍未完成,则该进程被强迫放弃处理机,放入下一级就绪队列的末尾。
(4)按队列优先级高到低进行进程调度。
每次进程调度都是从第1级就绪队列开始调度,仅当第1级队列空时,调度程序才调度第2级队列中的进程;依此类推。
第n级队列中的进程采用时间片轮转方法进行调度。
(5)一个进程进入较高优先级队列时可能要重新调度。
2.调度算法的性能
多级反馈队列调度算法具有较好的性能,能照顾到各种用户的需要。
能照顾到短型作业用户的要求
终端型用户提交的作业,大都属于交互型作业,因而作业通常较短小。
系统只要能使这些作业的进程在第1级队列所规定的一个时间片内完成,就可使终端型作业用户都感到满意。
能照顾到短批处理型作业用户的要求
对于极短的批处理型作业,如果仅在第1级队列中执行一个时间片即可完成,就可获得与终端型作业一样的响应时间。
能照顾到长批处理型作业用户的要求
对于长作业,它们对应的进程将依次进入第1,2…,直到第n级队列中经调度而得到运行,最后在第n级队列中按轮转方式被调度运行。
长作业一旦得到运行,它所获得的时间片就比较大。
能照顾到输入输出型作业用户的要求
照顾输入输出型作业是调度算法的宗旨,其目的是为了充分利用外部设备,以及对终端交互用户及时予以响应,通常输入输出型进程被唤醒可进入最高优先级队列,从而能很快得到处理机。
8、引起死锁的四个特征是什么?
如何针对这是个特征克服死锁?
资源分配图的方法判定死锁?
四个特征
Mutualexclusion
onlyoneprocessatatimecanusearesource.
Holdandwait
aprocessholdingatleastoneresourceiswaitingtoacquireadditionalresourcesheldbyotherprocesses.
Nopreemption
aresourcecanbereleasedonlyvoluntarilybytheprocessholdingit,afterthatprocesshascompleteditstask.
Circularwait
thereexistsaset{P0,P1,…,P0}ofwaitingprocessessuchthatP0iswaitingforaresourcethatisheldbyP1,P1iswaitingforaresourcethatisheldbyP2,…,Pn–1iswaitingforaresourcethatisheldbyPn,andP0iswaitingforaresourcethatisheldbyP0.
Deadlockcanariseiffourconditionsholdsimultaneously
DeadlockPrevention
MutualExclusion
notrequiredforsharableresources;mustholdfornonsharableresources.
CircularWait
imposeatotalorderingofallresourcetypes,andrequirethateachprocessrequestsresourcesinanincreasingorderofenumeration.
HoldandWait
mustguaranteethatwheneveraprocessrequestsaresource,itdoesnotholdanyotherresources.
Requireprocesstorequestandbeallocatedallitsresourcesbeforeitbeginsexecution,orallowprocesstorequestresourcesonlywhentheprocesshasnone.
Lowresourceutilization;starvationpossible
NoPreemption
Ifaprocessthatisholdingsomeresourcesrequestsanotherresourcethatcannotbeimmediatelyallocatedtoit,thenallresourcescurrentlybeingheldarereleased.
Preemptedresourcesareaddedtothelistofresourcesforwhichtheprocessiswaiting.
Processwillberestartedonlywhenitcanregainitsoldresources,aswellasthenewonesthatitisrequesting.
资源分配图的方法判定死锁
Ifgraphcontainsnocyclesnodeadlock.
Ifgraphcontainsacycle
ifonlyoneinstanceperresourcetype,thendeadlock.
ifseveralinstancesperresourcetype,possibilityofdeadlock.
内存管理部分
1、程序装入内存有几种方式?
什么是可重定位的装入技术?
常用程序装入技术:
绝对装入技术
可重定位装入技术
可重定位装入技术:
可执行文件中,列出各个需要重定位的地址单元和相对地址值,装入时再根据所定位的内存地址去修改每个重定位地址项,添加相应偏移量。
2、在动态分区分配中,有那些分区分配算法?
各个是如何实现的?
最先适配算法
循环最先适配算法
最佳适配算法
最坏适配算法
如何实现请看张老师ppt
3、什么是虚拟存储器?
其特征是什么?
虚拟存储器容量是如何确定的?
虚拟存储器是建立在主存-辅存物理结构基础之上,由附加硬件装置及操作系统存储管理软件组成的一种存储体系
(原谅我吧,这段是我google的==)
虚拟存储特征
不连续性
物理内存分配的不连续,虚拟地址空间使用的不连续
部分交换
与交换技术相比较,虚拟存储的调入和调出是对部分虚拟地址空间进行的
大空间
通过物理内存和快速外存相结合,提供大范围的虚拟地址空间总容量不超过物理内存和外存交换区容量
虚拟存储器的最大容量是由计算机的地址结构确定的,其实际容量是由内存和硬盘交换区容量之和确定的。
4、请求分页技术中,图示windows下的两级分页机制?
5、请求分页机制中,页面置换算法有那些,具体实施页面置换过程?
最佳算法(OPT)
最近最久未使用算法(LRU)
最不常用算法(LFU)
轮转算法(clock)
先进先出算法(FIFO)
具体实现见张老师ppt
6、在交换技术中,进程置换策略是什么?
固定分配局部置换策略:
它基于进程的类型(交互型或批处理型等),或根据程序员、系统管理员的建议,为每个进程分配一固定页数的内存空间,在整个运行期间都不再改变。
如果进程在运行中发现缺页,则只能从该进程在内存的固定页面中选出一页换出,然后再调入另一页,保证分配给该进程的内存空间不变。
可变分配全局置换策略:
系统为每个进程分配一定数目的物理块,而OS本身也保持一个空闲物理块队列。
当某进程发现缺页时,由系统从空闲物理块队列中,取出一物理块分配给该进程,并将欲调入的缺页装入其中。
当空闲物理块队列中的物理块用完时,OS才能从内存中选择一页调出,该页可能是系统中任一进程的页。
可变分配局部置换:
根据进程的类型或程序员的要求,为每个进程分配一定数目的内存空间;但当某进程发生缺页时,只允许从该进程在内存的页面中选出一页换出,而不影响其它进程的运行。
7、什么是快表?
其中内容是什么样子的?
什么是页表?
其结构是如何?
联想寄存器器——快表
为缩短查找时间,可以将页表从内存装入到关联存储器(TLB),按内容查找,即逻辑页号->物理页号
系统为每个进程建立一个页表,页表给出逻辑页号和具体内存块号相应的关系,
页表放在内存,属于进程的现场信息。
页表包含每页所在物理内存的基地址
文件管理部分
1、什么是文件?
是一组带标识的、在逻辑上有完整意义的信息项的序列。
标识是文件名:
信息项是构成文件内容的基本单位
长度是单个字节或多个字节
文件内容由文件建立者和使用者解释
2、什么是文件系统?
是操作系统中统一管理信息资源的一种软件。
3、文件系统设计目标是什么?
管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。
4、什么是文件的逻辑结构、物理结构?
逻辑结构是从用户角度研究文件的组织形式,分为:
²无结构文件:
构成文件的基本单位是字符,文件是有逻辑意义的、无结构的一串字符的集合
²有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统复习要点 精品 操作系统 复习 要点