操作系统综合复习资料.docx
《操作系统综合复习资料.docx》由会员分享,可在线阅读,更多相关《操作系统综合复习资料.docx(26页珍藏版)》请在冰豆网上搜索。
操作系统综合复习资料
引言:
一、计算机系统-->硬件子系统(中央处理器cpu、主存储器、辅助存储器、输入输出设备)、软件子系统(程序、数据)-->硬件资源、软件资源-->程序的执行要占用计算机系统的资源-->各用户(人、应用程序、其它计算机系统)对资源的请求和使用可能会有冲突-->计算机系统必须有控制和协调资源的分配、控制程序的执行-->计算机系统把资源管理和控制程序执行的功能集中组成一种软件,称为操作系统。
二、操作系统的两个设计目标:
1、使计算机系统使用方便
2、使计算机系统能高效地工作(扩充硬件的功能,使硬件的功能发挥得更好;使用户合理共享资源,防止相互干扰;以文件形式管理软件资源,保证信息的安全和快速存取。
三、操作系统的类型
1、操作系统的分类
用户要求计算机系统进行处理的一个计算问题称为一个“作业”。
按照操作系统提供的服务,大致可以把操作系统分为:
单道批处理系统;
多道批处理系统,多道系统能极大提高计算机系统的效率,表现为:
(1)并行工作,减少了CPU的空闲时间,提高了CPU的利用率。
(2)合理搭配多道使用不同资源的作业,可充分利用计算机系统的资源。
(3)直接在高速的磁盘上存取信息,缩短了作业执行时间,使单位时间内的处理能力得到提高。
(4)作业成批输入、自动选择和控制作业执行减少了人工操作时间和作业交接时间,提高了系统的吞吐率;
分时系统,具有同时性、独立性、及时性、交互性。
批处理兼分时系统中,由分时系统控制的作业称为“前台”作业,由批处理控制的作业称为“后台”作业。
实时系统:
在严格时间规定内处理必须结束;
网络系统:
可实现资源共享的,为计算机网络配置的的操作系统我们使有的windows是网络式系统;
分布式系统可协调多个计算机以完成一个共同任务的;
2、操作系统的功能:
处理器管理、存储器管理、文件管理、设备管理、作业管理。
计算机系统结构:
一、计算机系统是由硬件和软件组成的一种层次结构,从内到外的层次是:
硬件系统、软件系统、操作员(人)。
二、硬件环境
1、输入输出结构:
计算机系统中,CPU执行“启动外设(I/O)”指令时,把控制移交给I/O控制系统,完成外设与主存之间的信息传送,而CPU可继续并行执行程序,外设工作结束后形成一个“I/O操作结束”的中断事件通知CPU。
2、存储结构:
要执行的程序必须装入主存,CPU可直接访问主存。
外设只能与主存交换信息,辅存的信息只能被读入到主存才能供CPU访问。
3、硬件保护
<1>I/O保护
特权指令:
即可能影响系统安全的指令。
全文是为保护输入输出的完整性,把“启动I/O”等的一类可能影响系统安全的指令定义为特权指令。
特权指令的使用权限:
特权指令只允许操作系统使用,用户程序不能使用特权指令。
用户程序若要启动I/O,必须请求操作系统代为启动。
优点在于:
这种方式不但保证安全地使用外围设备,正确地传送信息,而且可减少用户为启动设备而必须了解外围设备特性以及启动等工作,大大方便了用户。
<2>管态和目态
中央处理器的两种工作方式:
管态和目态。
在管态下,中央处理器可执行包含特权指令在内的一切指令;
目态次于管态,在目态下,中央处理器不准执行特权指令。
操作系统在管态下工作,用户程序在目态下工作。
<3>存储保护
操作系统与硬件如何配合来实现存储保护的?
答:
硬件中设置了两个寄存器来限定用户程序执行时可以访问的空间范围。
这两个寄存器是基址寄存器和限长寄存器,用来限定用户程序执行时可以访问的主存空间范围。
程序执行时,系统对每一个访问内存的地址进行核对:
“基址寄存器值(存放用户程序在主存中的起始地址)≤访问地址≤基址寄存器值+限长寄存器值(存放用户程序占用主存的长度)”成立,则允许访问;否则,不允许访问。
这样就保护了该区域以外的存储信息不受到破坏,一旦程序执行中出错也不会涉及其他程序。
注:
中央处理器在管态下执行程序时候,对访问主存的地址不进行核对。
三、操作系统的结构
1、操作系统具有层次结构……
层次结构最大特点是整体问题局部化来优化系统,提高系统的正确性、高效性、使系统可维护、可移植。
主要优点是有利于系统设计和调试;主要困难在于层次的划分和安排。
2、操作系统与用户
(1)操作员接口(作业执行步骤)
操作系统提供给用户表示作业执行步骤的手段有两种:
作业控制语言和操作控制命令。
作业控制语言形成批处理作业。
操作控制命令进行交互处理。
(2)程序员接口(系统调用)
操作系统提供的系统调用主要有:
文件操作类,资源申请类,控制类,信息维护类系统调用往往在管态下执行。
当操作系统完成了用户通过“访管指令”请求的“系统调用”功能后,应使中央处理器从管态转换到目态工作。
处理器管理:
一、多道程序设计系统
“多道程序设计系统”简称“多道系统”,即多个作业可同时装入主存储器进行运行的系统。
在多道系统中一点必须的是系统须能进行程序浮动。
所谓程序浮动是指程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍不影响它的执行。
多道系统的好处在于:
提高了处理器的利用率;
充分利用外围设备资源;
发挥了处理器与外围设备以及外围设备之间的并行工作能力。
可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。
(关键词:
处理器,外围设备,资源利用率,单位算题量,吞吐率),但要注意对每个计算问题来说所需要的时间可能延长,另外由于系统的资源有限,会产生饱和,因此并行工作道数与系统效率不成正比。
二、进程
1、概念
进程是一个程序在一个数据集上的一次执行。
由定义知进程关键组成是程序、数据集。
进程通过一个控制块来被系统所指挥,因此进程由程序、数据集和进程控制块三部分组成。
进程控制块是进程存在的唯一标志.进程是要执行的,据这点可将进程的状态分为等待态然后是就绪态最后是运行态。
进程的基本队列也就是就绪队列和等待队列,(因为进程运行了,也就用不上排队了,也就没有运行队列了。
)
如果进程由一所在队列退出的操作称为出队,排入到一个指定的队列的操作称为入队。
系统中负责进程入队和出队的工作称为队列管理。
2、进程的调度
我们使用不同的调度是为了优化,具体说来是提高处理器利用率,增大吞吐量,减少等待时间,缩短响应时间。
常用的算法有先来先服务、优先数调度法、时间片轮转调度法、分级调度(分级调度法可理解为多队列法)。
顾名思义来先服务调度是先来者,先服务;优先数算法是对每个进程确定一个优先数,以决定先后。
时间片轮转法是把规定进程一次使用处理器的最长时间称为“时间片”。
让就绪进程按就绪的先后次序排成队列,依次运行。
分级调度算法是由系统设置多个就绪队列,每个就绪队列中的进程按时间片轮转法占用处理器,这就是分级调度算法。
3、进程的切换
进程切换指一个进程进处理器,另一个进程出处理器的过程。
若有一个进程从运行态变成等待态,或完成工作后就撤消,则必定会发生进程切换。
4、进程同步和通信
进程同步实际上是指并发进程之间的制约关系。
即一个进程的执行依赖另一个进程的消息。
没有消息时等待,有消息进被唤醒。
进程通信是进程之大量信息的方式。
5、进程和死锁(详细见后)
三、可再入程序
一个能被多个用户同时调用的程序称做“可再入”的程序。
可再入程序必须是纯代码,即在执行时自身不改变。
编译程序和操作系统程序通常都是“可再入”程序。
一、中央处理器存储下列中信息的速度依次为:
寄存器最快;通过系统总线存取主存储器的速度居中;辅助存储器最慢。
寄存器用来存放临时的工作信息和系统必须的控制信息。
主存储器是CPU能直接访问的惟一的存储空间。
主存储器中存放操作系统的核心部分,以及当前需执行的程序和数据。
主存储器以“字节(BYTE)”为单位进行编址
辅助存储器是存放操作下的非核心部分和其他程序和数据。
容量大且能永久保存信息
磁盘的信息可随机存取,磁带上的信息只能顺序存取。
二、储器的地址:
主存储器以字节为编址单位
1、物理地址与逻辑地址。
物理地址(绝对地址):
128MB的主存器有128×1024×1024=134217728字节,所以它的内存绝对地址就是从0到134217727。
逻辑地址:
用户程序中使用的从“0”地址开始的连续地址。
三、重定位
重定位即把逻辑地址转换成绝对地址。
重定位的方式有“静态重定位”和“动态重定位”两种。
(1)静态重定位
在装入一个作业时,把作业中的指令地址和数据地址全部转换成绝对地址。
这种转换工作是在作业开始前集中完成的,在作业执行过程中无需再进行地址转换。
所以称为“静态重定位”。
(2)动态重定位
在装入一个作业时,不进行地址转换,而是直接把作业装到分配的主区域中。
在作业执行过程中,每当执行一条指令时都由硬件的地址转换机构转换成绝对地址。
这种方式的地址转换是在作业执行时动态完成的,所以称为动态重定位。
动态重定位由软件(操作系统)和硬件(地址转换机构)相互配合来实现。
动态重定位的系统支持“程序浮动”,而静态重定位则不能。
页式管理
(1)采用页式管理,使主存空间充分利用,页不必为了得到连续空间而进行移动。
可以提高系统效率。
(2)页式存储管理中为什么要设置页表和快表?
在页式存储管理中,主存被分成大小相等的若干块,同时程序逻辑地址也分成与块大小一致的若干页,这样就可以按页面为单位把作业的信息放入主存,并且可以不连续存放,为了表示逻辑地址中的页号与主存中块号的对应关系,就需要为每个作业建立一张页表。
页表一般存放在主存中,当要按给定的逻辑地址访问主存时,要先访问页表,计算出绝对地址,这样两次访主存延长了指令执行周期,降低了执行速度,而设置一个高速缓冲寄存器将页表中的一部分存放进去,这部分页表就是快表,访问主存时二者同时进行,由于快表存放的是经常使用的页表内容,访问速度很快,这样可以大大加快查找速度和指令执行速度。
虚拟存储
一、虚拟存储器
虚拟存储器是为“扩大”主存容量而采用的一种设计技巧,就是它只装入部分作业信息来执行,好处在于借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。
虚拟存储器的容量由计算机的地址结构(地址总线位数)决定。
如32位的,则最大的虚存容量为2^32=4294967296B=4GB。
二、叙述页式虚拟存储器的基本原理
页式虚拟存储器是在页式存储的基础上实现虚拟存储器的,其工作原理是:
首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存,并在页表中对相应的页面是否装入主存作出标志。
作业执行时若所访问的页面已经在主存中,则按页式存储管理方式进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。
若在装入页面时主存中无空闲块,则由操作系统根据某种“页面调度”算法选择适当的页面调出主存换入所需的页面。
三、常用的页面调度算法:
FIFO、LRU、LFU
页面调度:
当主页中无空闲块时,为了装入一个页面,就必须按某种算法将主存中某个页调出,调入所需装入的页面。
常用的算法有:
先进先出调度算法(FIFO)、最近最少使用调度算法(LRU)和最近最不常用调度算法(LFU)。
特别要注意掌握的就是LRU(最近最少使用调度算法)的算法,如何进行调度。
5、缺页中断率
f=F/A,这里的f就称为缺页中断率。
A为作业执行中调入页面的总次数,F为访问的页面尚未装入主存的次数。
四、段式虚拟存储器的实现
段式虚拟存储管理以段式存储管理为基础,即在磁盘上保留作业的各个分段信息,作业执行时把需要执行的一段或几段装入主存。
在实际使用中,也要进行查表和地址转换以及“缺段中断”和调度(包括调出、装入、移动等)工作。
五、比较各种存储管理方式的特征
单分区管理
除操作系统占用的一部分存储空间外,其余的用户区域作为一个连续的分区分配给用户使用。
界限寄存器值+逻辑地址→绝对地址。
固定分区的管理分区数目、大小固定。
设置上、下限寄存器
逻辑地址+下限地址→绝对地址。
可变分区的管理可变分区管理方式不是把作业装入到已经划分好的分区中,而是在作业要求装入主存储器时,根据作业需要的主存量和当时的主存情况决定是否可以装入该作业。
分区数目大小不定
设置基址、限长寄存器
逻辑地址+基址寄存器的值→绝对地址。
基址值≤绝对地址≤基址值+限长值。
页式存储管理主存储器分为大小相等的“块”。
程序中的逻辑地址进行分“页”,页的大小与块的大小一致。
用页表登记块页分配情况
逻辑地址的页号部分→页表中对应页号的起始地址→与逻辑地址的页内地址部分拼成绝对地址。
由页表中的标志位验证存取是否合法,根据页表长度判断是否越界。
段存储管理程序分段
每一段分配一个连续的主存区域,作业的各段可被装到不相连的几个区域中。
设置段表记录分配情况
逻辑地址中的段号→查段表得到本段起始地址+段内地址→绝对地址由段表中的标志位验证存取是否合法,根据段表长度判断是否越界。
页式虚拟存储管理类似页式管理将作业信息保存在磁盘上部分装入主存。
类似页式管理:
逻辑地址的页号部分→页表中对应页号的起始地址→与逻辑地址的页内地址部分拼成绝对地址。
若该页对应标志为0,则硬件形成“缺页中断”先将该页调入主存类似页式管理。
段式虚拟存储管理类似段式管理将作业信息保存在磁盘上部分装入主存。
类似段式管理
只有单分区适用于单道系统。
只有单分区和固定分区的为静态重定位,不需要硬件转换机构。
其余为动态重定位,需要硬件转换。
六、可变分区经常采用的主存分配算法
最先适应分配算法:
简单地说,就是在分区表中顺序查找,找到够大的空闲区就分配。
最优适应分配算法:
挑选一个能满足作业要求的最小空闲区。
最坏适应分配算法:
挑一个最大的空闲区分给作业使用。
一、输入输出操作(要求达到“识记”层次)
1、什么是输入输出操作:
主存储器与外围设备之间的信息传送操作称为输入输出操作。
2、对于存储型设备,输入输出操作的信息传输单位为“块”。
对输入输出型设备,输入输出操作的信息传输单位为“字符”。
二、独占设备和共享设备(识记)
1、独占设备是指每次只能供一个作业执行期间单独使用的设备。
如输入机、磁带机、打印机等。
2、共享设备是指允许几个作业执行期间可同时使用的设备。
共享设备的“同时使用”的含义是指多个作业可以交替启动共享设备,其实是当一个用业正在使用设备时其他作业暂不能使用,即每一时刻仍只有一个作业占用,但当一个作业正在使用设备时其他作业就可使用。
三、独占设备的分配(领会)
1、独占设备的绝对号与相对号
这和绝对地址/相对地址的概念类似。
绝对号就是将每一台设备确定一个编号(相当于一个绝对地址)。
相对号就是为了用户程序的方便而设的,在用户请求使用时,采用“设备类-相对号”来提出使用设备要求。
由系统建立绝对号与“设备类-相对号”之间的关系,就能正确启用设备了。
2、设备的指定方式
1)设备绝对号:
系统为每一个设备确定一个唯一的编号。
2)设备相对号:
不具体指定是哪台设备,只说明要某类设备多少台,这样可以由系统灵活分配。
3)设备独立性:
采用“设备类、相对号”方式使用设备时,用户编程时使用的设备与实际使用哪台设备无关,这就是“设备独立性”。
4)如何实现独占性设备分配:
对于独占性设备,系统采用“静态分配”的策略,就是当一个作业所需使用的独占设备能得到满足时,该作业才能被装入主存储器执行。
在操作系统中,设置“设备分配表”来记录计算机系统所配置的独占设备类型、台数和分配情况等。
设备分配表由“设备类表”和“设备表”两部分组成。
通过查表和修改表的操作完成设备分配工作。
四、磁盘的驱动调度(领会)
1、磁盘的结构
还记得小学时的作业吗?
秒,分,小时?
)这也一样,扇区套在磁道里,磁道套在柱面里,柱面套在一个磁盘里。
接下来的问题就是被除数=除数×商+余数了。
明白了吗?
2、访问磁盘的操作时间
3、磁盘的驱动调度:
系统决定等待磁盘访问者的执行次序的工作就是磁盘的“驱动调度”。
4、对磁盘进行驱动调度的目的:
有利于系统效率的提高。
5、磁盘调度分为移臂调度和旋转调度。
6、移臂调度算法包括以下四种:
1)先来先服务算法;
根据访问者提出访问请求的先后次序来决定执行次序。
2)最短寻找时间优先调度算法;
从等待的访问者中挑选寻找时间最短的那个请求执行,而不管访问者的先后次序。
3)电梯调度算法;
从移动臂当前位置沿移动方向选择最近的那个柱面的访问者来执行,若该方向上无请求访问时,就改变移动方向再选择。
4)单向扫描调度算法。
从0柱面开始往里单向扫描,扫到哪个执行哪个。
7、信息的优化分布:
知道信息在磁盘上排列不一定是按顺序最优,对于一些能预知处理要求的信息采用优化分页可以缩短输入输出操作时间,提高系统效率。
五、外围设备的启动(识记)
1、通道(channel):
计算机系统中能够独立完成输入输出操作的硬件装置。
是CPU与设备的桥梁。
注解:
CPU并不直接操作外围设备,他连接通道(I/O处理机),通道连接设备控制器,设备控制器连接设备。
CPU只需把“I/O”设备启动,并给出相关的操作要求。
然后就由通道来处理输入输出事宜,做完后报告CPU。
2、通道地址字(CAW)和通道状态字(CSW)
用来存放通道程序首地址的主存固定单元称为“通道地址字”。
通道状态字:
用于记录通道和设备执行情况的主存单元。
3、I/O中断:
是指中央处理器和通道协调工作的一种手段。
通道借助I/O中断请求CPU进行干预,CPU根据产生的I/O中断事件了解输入输出操作的执行情况,I/O中断事件是由于通道程序的执行或其他外界原因引起的,对通道操作而言,当操作正常结束或异常结束(如设备故障、设备特殊情况引起异常结束)形成I/O中断,由CPU根据相应情况分别处理。
六、虚拟设备SPOOL系统(领会)
1、实现虚拟设备的目的:
用一种物理设备模拟另一类物理设备,使各作业在执行期间只使用虚拟的设备而不直接使用物理的独占设备。
这种技术可使独占的设备变成可共享的设备,使得设备的利用率和系统效率都能得到提高。
2、实现虚拟设备的硬件条件:
大容量磁盘;中断装置和通道;中央处理器与通道并行工作的能力。
实现虚拟设备的软件条件是要求操作系统采用多道程序设计技术。
3、虚拟设备的实现原理:
对于多道程序,输入时将一批作业的信息通过输入设备预先传送到磁盘上。
输出时将作业产生的结果也全部暂时存在磁盘上而不直接输出,直到一个作业得到全部结果而执行结束时再行输出。
这样在执行过程中,不需要使用输入机和打印机。
因此在配置一台输入机和打印机的情况下,可以让多个作业同时执行,并且各个作业请求输入信息和输出结果的要求都能及时得到满足和实现。
4、SPOOL系统的组成和实现:
井:
为实现虚拟设备在磁盘上划出的专用存储空间,用于存放作业的初始信息和执行结果。
SPOOL系统由三部分程序组成:
1、预输入程序。
通过该程序把作业流中每个作业的初始信息传送到输入井保存,以备作业执行时使用。
2、井管理程序:
根据作业的请求,保证作业正确及时地从“井”中读取或写出信息。
3、缓输出程序。
它负责查看“输出井”中是否有待输出的结果信息,若有则启动打印机把作业结果输出。
4、spool系统可以缩短作业执行时间的原因。
作业的执行时间是指作业被装入主存储器到产生全部结果所需要的时间。
在SP在SPOOL系统控制下,作业执行时从磁盘上读/写信息代替低速的输入机和打印机的读/写操作,信息传送的速率显然是快得多。
因此作业的执行时间就缩短了。
若系统中存在一组进程(两个或多个进程),它们中的每一个进程都占用了某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,则说系统出现了“死锁”。
或说这组进程处于“死锁”状态。
一、死锁的防止(简单应用)
1、系统出现死锁必然出现以下情况:
1)互斥使用资源
2)占有并等待资源
3)不可抢夺资源
4)循环等待资源
2、死锁的防止策略:
破坏产生死锁的条件中的一个就可以了。
常用的方法有:
静态分配、按序分配、抢夺式分配3种。
二、死锁的避免(简单应用)
1、死锁的避免是让系统处于安全状态,来避免发生死锁。
安全状态:
如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于“安全状态”。
2、银行算法是怎样避免死锁的:
计算机银行家算法是通过动态地检测系统中资源分配情况和进程对资源的需求情况,在保证到少有一个进程能得到所需要的全部资源,从而能确保系统处于安全状态进,才把资源分配给申请者,从而避免了进程共享资源时系统发生死锁。
采用银行家算法时为进程分配资源的方式:
1)对每一个首次申请资源的进程都要测试该进程对资源的最大的需求量。
如果系统现存资源可以满足他的最大需求量,就按当前申请量为分配资源。
否则推迟分配。
2)进程执行中继续申请资源时,先测试该进程已占用资源数和本次申请资源总数有没有超过最大需求量。
超过就不分配。
若没有超过,再测试系统现存资源是否满足进程尚需的最大资源量,满足则按当前申请量分配,否则也推迟分配。
总之,银行家算法要保证分配资源时系统现存资源一定能满足至少一个进程所需的全部资源。
(银行家算法在操作系统的实践考试中可能会用到)
三、死锁的检测和解除(领会)
死锁的检测
就是既不打预防针,也不去避免得病,而是经常去体检,如果发现有病了就治疗。
这是一种事后解决的办法,也算是解决死锁问题的一条途径。
但这毕竟要付出较大代价。
重点是:
分析与时间有关的错误;用PV操作实现进程的同步与互斥;用信箱实现进程通信。
一、进程的顺序性与并发性(领会)
1、进程的顺序性:
任何进程在顺序的处理器上的执行是严格按照顺序进行的,每次只能执行一个操作。
这就是进程的顺序性。
当一个进程独占处理器顺序执行时,具有两个特性:
一、封闭性二、可再现性。
封闭性是说进程的执行结果只取决于进程本身,不受外界影响。
可再现性是说当进程重复执行时,必定获得相同的结果。
2、进程的可同时执行:
指一个进程没有完,另一个就可以开始。
在时间上是可重叠的,我们把这个叫做进程的可同时执行。
3、进程的并发性:
系统中存在一组可同时执行的进程。
并发进程相互之间可能是无关的,也可能是交往的。
并发进程的执行速度取决于自身和进程调度策略。
二者缺一不可,执行速度不能由自己决定。
4、与时间有关的错误:
有交往的并发进程交替使用共享资源时会出现错误,错误与时间有关,称为与时间有关的错误