《操作系统概论》串讲笔记
第1章引论
考情分析
本章主要内容:1.计算机系统的概念
2.操作系统的定义、作用和功能
3.操作系统的分类
4.管态、目态、特权指令、访管指令的概念
5.操作系统与用户的两个接口
重点:1.操作系统的功能、分类
2.处理器的工作状态
3.程序状态字
4.系统功能调用
本章考试分值约为8~10分,出题形式多以单选题、多选题、填空题为主。 知识网络图
串讲内容
一、计算机系统
1.计算机系统包括计算机硬件和计算机软件两大部分。
2.
(1)计算机系统的最内层是硬件。
(2)计算机系统的最外层是使用计算机的人。人与计算机硬件之间的接口界面是计算机软件。
(3)计算机软件可以分为系统软件、支撑软件以及应用软件三类。
二、操作系统
1.操作系统的定义:
操作系统(OS)是管理计算机系统资源、控制程序执行、改善人机界面和为应用软件提供支持的一种系统软件、
2.操作系统在计算机系统中的作用有如下几个方面:
(1)操作系统管理计算机系统的资源;
(2)操作系统为用户提供方便的使用接口;
(3)操作系统具有扩充硬件的功能。
3.(重点)从资源管理的观点看,操作系统的功能可分为:处理器管理、存储管理、文件管理和设备管理。
三、操作系统的形成与基本类型(重点)
1.批处理操作系统:
(1)“单道批处理系统”:每次只允许一个作业执行。一批作业的程序和数据交给系统后,系统顺序控制作业的执行,当一个作业执行结束后自动转入下一个作业的执行。
(2)“多道批处理系统”:允许若干个作业同时装入主存储器,使一个中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备。
(3)多道批处理系统提高了计算机系统的资源使用率,但作业执行时用户不能直接干预作业的执行。但作业执行中发现出错,由操作系统通知用户重新修改后再次装入执行。
2.分时操作系统(简称分时系统)
(1)分时操作系统是多个用户通过终端机器同时使用一台主机,这些终端机器链接在主机上,用户可以同时与主机进行交互操作而不干扰。它以时间片为单位轮流使用计算机中某一资源的系统。
(2)分时操作系统的主要特点:同时性、独立性、及时性、交互性。
3.实时操作系统
(1)计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完接收的事件并且给出反馈信号的系统称为实时系统。
(2)实时操作系统的主要特点:快速响应,及时处理;高可靠性和安全性。
(3)实时操作系统的及时性更强。
4.(补充):什么是前台作业和后台作业?
答:在批处理兼分时的系统中,由分时系统控制的作业称为前台作业;由批处理系统控制点作业称为后台作业。
四、操作系统的发展
1.(了解)微机操作系统
微机操作系统的主要功能是实现文件管理、输入/输出控制和命令的解释。系统每次只允许一个用户使用计算机,称为“单用户操作系统”。如CP/M,MS-DOS等。操作系统提供给用户的接口是“命令语言”,用户通过键盘或鼠标输入命令请求操作系统服务。
2.网络操作系统(NOS)
把为计算机网络配置的操作系统称为网络操作系统。网络操作系统的主要功能是实现各台计算机系统之间的通信以及网络中各种资源共享。
3.分布式操作系统
分布式计算机系统是由多台计算机组成的一种特殊的计算机网络。分布式操作系统采用客户/服务器模式(C/S)。分布式操作系统的主要特点:统一性、透明性。
4.(补充):网络操作系统与分布式操作系统的异同:
答:相同点:
(1)都是安装在计算机网络上的操作系统;
(2)都能实现资源共享和通信。
不同点:
(1)是否有主次之分。网络操作系统有,但分布式操作系统没有。
(2)是否共同完成一项任务。分布式操作系统是,但网络操作系统不是。
5.嵌入式操作系统
嵌入式操作系统是指运行在嵌入式(计算机)系统中对各种部件、装置等资源进行统一协调、处理和控制的系统软件。嵌入式操作系统的主要特点:微型化和实时性。6.当前流行的操作系统简介
(1)Windows:多用户、多任务、图形化、窗口式的操作系统。
(2)UNIX:多用户、多任务、分时操作系统。UNIX的主要特点:①短小精悍;②具有可装卸的多层次文件系统;③可移植性好;④网络通信功能强。UNIX是目前唯一可以安装和运行在从微机、工作站、大型机到巨型机上的操作系统。
(3)Linux:多用户、多任务、通用操作系统。Linux的特点:支持TCP/IP网络协议,并能与其他网络集成,使异种机能方便地入网;它支持并行处理和实时处理,能充分发挥硬件性能;它支持多种文件系统,方便用户使用,等等。
五、处理器的工作状态(重点)
1.特权指令
(1)把CPU执行的指令分成两类:特权指令和非特权指令。
(2)把不允许用户程序中直接使用的指令称为特权指令,其余的为非特权指令。例如,I/O指令、设置时钟、设置控制寄存器、停机指令、设置中断屏蔽、传送PSW的指令等都是特权指令。
(3)I/O指令只允许在操作系统中使用,不允许在用户程序中使用。若用户程序直接使用这些指令,则可能引起冲突或由于某些意外而造成错误。
2.管态和目态
为避免用户程序中错误地使用特权指令,计算机硬件结构中的中央处理器具有两种工作状态:目态和管态。系统程序运行的状态为管态(包括特权指令)。用户程序运行的状态为目态。
3.怎样限制用户程序使用特权指令?
答:如果中央处理器在目态工作,却取到了一条特权指令,此时中央处理器将拒绝执行该指令,并形成一个“程序中使用了非法指令”的信号。硬件的中断装置识别到该信号后,将暂停用户程序的执行,并转交给操作系统去处理。操作系统通知用户:“程序中有非法指令”,应进行修改。这样可限制用户使用特权指令。
4.程序状态字
程序状态字(PSW)是用来控制指令执行顺序并且保留和指示与程序有关的系统状态。
程序状态字包含三部分内容:
(1)程序基本状态(指令地址、条件码、目态/管态、等待/计算)
(2)中断码
(3)中断屏蔽位。
六、操作系统与用户的接口
1.操作系统提供了两类接口:程序员接口和操作员接口。
2.什么是访管指令?常见的有哪些?
答:访管指令不是特权指令,既可在管态下执行,又可在目态下执行,主要功能是自愿进管,引起访管中断。例如,INT,drop。
3.(重点)什么是“系统调用”?为什么要提供“系统调用”?
答:操作系统编制了许多不同功能的子程序,供用户程序执行中调用。这些由操作系统提供的子程序称为系统功能调用程序,简称系统调用。
系统调用是操作系统为用户程序提供的一种服务界面,或者说,是操作系统保证程序设计语言能正常工作的一种支持。在源程序一级,用户用程序设计语言描述算题任务的逻辑要求,例如读文件、写文件、请求主存资源等。这些要求的实现只有通过操作系统的系统调用才能完成,其中有些要求还必须执行硬件的特权指令(如I/O指令)才能达到目的。
4.用户程序执行时,若取了访管指令,CPU将转入了管态。当系统调用程序后,CPU回到了目态。
5.操作系统提供了让联机用户表示作业执行步骤的手段:操作控制命令、作业控制语言。
第2章处理器管理
考情分析
本章主要内容:1.多道程序涉及的概念
2.进程的定义及其四大属性
3.进程控制块(PCB)和进程队列的组织
4.中断及中断处理的概念
5.进程调度和作业调度及其计算
6.线程的相关概念
重点:1.多道程序设计
2.进程、原语
3.进程调度和作业调度
本章考试分值约为20~25分。出题形式多以单选题、多选题、填空题、简答题、综合应用题为主。
知识网络图
串讲内容
一、多道程序设计(重点)
1.(了解)程序的顺序执行和并行执行
一个计算机问题,往往要依一定的顺序执行,执行的顺序是由编制的程序确定的。例如,某个数据处理问题,程序的编制方法如图2-1所示。
先来先服务调度算法 最高优先级调度算法 时间片轮转调度算法
中断 中断类型
中断响应
进程是动态的,它包含了数据和运行在 数据集上的程序
多个进程可以含有相同的程序
多个进程可以并发执行
等待态 就绪态 运行态
处理的两级调度 作业调度算法
中断处理
硬件故障中断事件处理 硬件程序中断事件处理 硬件外部中断事件处理 硬件输入/输出中断事件处理 硬件访管中断事件处理
程序的顺序执行
程序的并行执行
多道程序设计 多道程序设计 为何要引入进程
进程的定义 进程的定义
进程的概念
提高资源的利用率
正确描述程序的执行情况
进程控制快 进程队列 中断和中断处理 处理器调度
先来先服务调度算法
最高优先级调度算法 时间片轮转调度算法
进程调度算法
线程的概念 处理器管理
输入一批数据处理数据打印处理结果
图2-1 程序的顺序执行
这个程序执行时,不能使输入机、处理器、打印机同时忙碌。现代计算机具有处理器与外围设备并行工作的能力,我们可以把上述计算问题的升序分成三个可独立执行的程序模块:输入程序、处理程序、打印程序。这样,输入机、处理机、打印机就可能经常同时在忙碌,实现并行工作。
程序的并行执行,发挥了处理器与外围设备并行工作的能力,使处理器的效率有所提高。但是由于处理器的执行速度远远高于外围设备的传输速度。为了进一步提高效率,可以考虑同时接收两道以上的算题,这样有可能当一道算题在等待外围设备传输的同时让另一道算题占用暂时空闲的处理器。
2.(重点)多道程序设计
让多个计算题同时进入一个计算机系统的主存储器并行执行,这种程序设计方法称为多道程序设计,这样的计算机系统称为多道程序涉及系统。
实现多道程序设计的物质基础:通道技术和中断系统。
3.多道程序设计的优缺点。
答:优点:能充分发挥处理器的使用效率,增加单位时间内的算题量。
缺点:(1)系统的效率和道数不成正比;
(2)可能延长某些作业的周转时间。
二、进程的概念(重点)
1.进程的定义
程序的执行必须依赖于一个实体——数据集。把一个程序在一个数据集上的一次执行称为一个进程。程序是静止的,进程是动态的。
2.进程的组成
进程由程序、数据集合和进程控制块(PCB)组成。
3.为什么要引入进程?
答:(1)提高资源的利用率;
(2)正确描述程序的执行情况。
4.(重点)进程和程序有什么区别?
答:(1)进程是动态的,程序是静态的;
(2)多个进程可以有相同的程序;
(3)进程可以并发执行,但程序不可以,程序只能并行执行;
(4)进程是有生命期的,而程序没有生命期,可以做文档资料,长期保存。5.进程的属性
答:(1)进程是动态的,它包含了数据和运行在数据集上的程序
(2)多个进程可以含有相同的程序 (3)多个进程可以并发执行
(4)进程有三种基本状态:等待态、就绪态、运行态
6. 进程的状态转换(重点)
(1)运行态→等待态 (2)等待态→就绪态 (3)运行态→就绪态 (4)就绪态→运行态
进程刚被创建是,它的初始状态为“就绪态”。当它能占用处理器时变成“运行态”。 7.进程的特性
(1)动态性 (2)并发性 (3)异步性。
三、进程控制块
1.进程控制块(PCB )包含四类信息
(1)标识信息 (2)说明信息 (3)现场信息 (4)管理信息。
2.一个进程在执行过程中,为了请求某种服务,可以再要求创建其它进程。
3.(重点)原语
等待的事件发生
等待某一事件
运行态
就绪态 等待态
落选
选中
操作系统中往往设计一些能完成特定功能且不可中断的过程。这些不可中断的过程称为原语。用于控制进程的原语有:创建原语、撤销原语、阻塞原语、唤醒原语。
四、进程队列(了解)
1.进程的基本队列
等待队列和就绪队列。
2.入队、出队及队列管理的定义
一个进程从所在的队列中退出称为出队。一个进程排入到一个指定的队列中称为入队。系统中负责进程入队和出队的工作称为队列管理。
五、中断和中断处理
1.中断、中断源及中断处理程序的定义
由于某些事件的出现,中止现行进程的运行,而由操作系统去处理出现的事件,待适当的时候让被中止的进程继续运行,这个过程称为中断。引起中断的事件称为中断源。对出现的事件进行处理的程序称为中断处理程序。
2.中断类型
(1)硬件故障中断
(2)程序中断
(3)外部中断
(4)输入/输出中断
(5)访管中断。
前四类中断是由于外界的原因迫使正在运行的进程被打断,因此称为强迫性中断,第五类中断是正在运行的进程所期待的,它表示正在运行的进程对操作系统有某种需求,故称为自愿性中断。
3.中断响应的定义
通常在处理器执行完一条指令后,硬件的中断装置立即检查有无强迫性中断事件发生。无论发生那类中断事件,都由于硬件的中断装置暂停现行进程的运行,而让操作系统的中断处理程序占用处理器。这一过程称为中断响应。
4.程序状态字寄存器的定义
在单处理器的计算机系统中,整个系统设置一个用来存放当前运行进程的PSW的寄存器,该寄存器称为程序状态字寄存器。
5.硬件发现中断事件应做哪些事情?
答:中断装置应首先把出现的中断事件存放到程序状态字寄存器中的中断码为止,然后把程序状态字寄存器中的当前PSW作为旧PSW存放到预先约定好的主存固定单元中保护起来,再把已经确定好的操作系统处理程序的新PSW送到程序状态字寄存器中,成为当前PSW。这一过程称为交换PSW。中断装置通过交换PSW完成中断响应,使被中断进程让出处理器,且使处理器按照中断处理程序的新PSW控制执行。
6.中断处理中,中断处理程序应做哪些事情?
答:(1)保护好被中断进程的现场信息。
(2)分析引起中断的原因。
(3)对中断事件进行具体处理。
7.(了解)中断事件的处理原则
(1)硬件故障中断事件的处理
(2)程序中断事件的处理
(3)外部中断事件的处理
(4)输入/输出中断事件的处理
(5)访问中断事件的处理
六、处理器调度(重点)
1.输入井、后备作业的定义
在操作系统中,把磁盘上用来存放作业信息的专用区域称为输入井。把在输入井中等待处理的作业称为后备作业。
2.作业调度的定义
根据系统设计时确定的允许并行工作的道数和一定的规则(或称算法)从输入井的后备作业中选取若干作业,让它们进入主存储器,使它们有机会去获得处理器执行的工作称为作业调度。
3.(重点)作业调度的必要条件
系统现有的尚未分配的资源可以满足被选作业的资源要求。
4.进程调度的定义
按照一定的规则从就绪进程中选取一个进程,让它占用处理器。这项从就绪进程中选取一个进程,让它占用处理器的工作称为进程调度。
5.进程调度从就绪态选进程,作业调度从后备态(收容态)选作业。
6.作业调度与进程调度的区别
作业调度是按一定的作业调度算法从输入井的后备态中选择资源可以满足的作业装入主存,使其有机会占用CPU执行,而一个作业能否占用CPU,何时占用CPU则由进程调度决定的,进程调度则按一定的进程调度算法从就绪队列中选择一个进程为其分配CPU去运行,作业调度从输入井中选中作业并拖它装入主存中,为其创建一个进程,多个不同的进程初始态都为就绪态,然后由进程调度选择当前可占用CPU的进程,进程运行中由于某种原因状态发生变化,当它让出处理器时,进程调度又再选另一个作业的进程去执行。
7.(重点)在涉及调度算法时,可考虑如下原则:
(1)公平性;
(2)平衡资源使用;
(3)极大的流量;
8.一个理想的调度算法应该是既提高系统效率,又能使进入系统的作业及时得到计算结果。
9.作业i 周转时间=作业i 得到计算结果的时间-作业i 进入输入井的时间
对n 个作业来说,它们的平均周转时间T 为:T=(∑=n
i Ti 1)÷n
周转时间和平均时间与选用的调度算法有关。 10.(重点)常用的作业调度算法 (1)先来先服务算法
它是按照作业进入输入井的先后次序来挑选作业,先进入作业的优先被挑选。一个先进入的作业,若它所需要的资源或其中的一部分资源已被在它之前的作业占用且尚未归还,那么,这个作业将被推迟执行,而去选择在它之后进入的资源能满足的作业先执行。一旦有作业执行结束归还资源后,作业调度再次选择作业时,仍要按进入输入井的次序去挑选,刚刚被推迟的作业有可能被优先选中。
先来先服务算法具有一定的公平性,容易实现。但增加了平均周转时间,降低了系统的吞吐能力。
(2)计算时间短的作业优先算法
采用这种算法时,要求用户对自己的作业需要计算的时间预先作一个估计,在作业控制说明书中加以说明。作业调度时依据在输入井中的作业提出的计算时间为标准,优先选择计算时间短且资源能得到满足的作业。这种算法能降低作业的平均周转时间,从而提高系统的吞吐能力,但可能使大作业等待时间过长。 (3)响应比高者优先算法
响应比最高者优先连算法综合考虑等待时间和计算时间,把响应比定义为: 响应比=等待时间/计算时间
一个计算时间短的作业容易得到较高的响应比,作业能被优先选中。一个大作业在等待了相当长的时间后,也或得了较高的响应比。 (4)优先数调度算法 (5)均衡调度算法
(注意):作业调度的必要条件和开始调度时间。
【例1】:有一个多道程序设计系统,设供用户使用的主存空间为100K 。现有一作业序列如下:
作业号 进入输入井时间
需计算时间 主存量要求
A B C D E
10.1时 10.3时 10.5时 10.6时 10.7时
42分钟 30分钟 24分钟 24分钟 12分钟
15K 60K 50K 10K 20K
该系统采用多道程序设计技术,请分别写出采用“先来先服务调度算法”和“计算时间短优先算法”选中的作业的平均周转时间。
答:先来先服务算法:
作业号装入输入井时间开始执行的时
间
执行结束的时
间
周转时间
A B C D E 10.1时
10.3时
11.3时
10.6时
11.3时
10.1时
10.8时
11.7时
11.3时
12.1时
10.8时
11.3时
12.1时
11.7时
12.3时
0.7小时
1.0小时
1.6小时
1.1小时
1.6小时
5个作业的平均周转时间为:
(0.7+1.0+1.6+1.1+1.6)÷5=1.2(小时)计算时间短的作业优先算法:
作业号装入输入井时间
开始执行的时
间
执行结束的时
间
周转时间
A B C D E 10.1时
10.3时
11.3时
10.6时
11.3时
10.1时
10.8时
11.9时
11.3时
11.7时
10.8时
11.3时
12.3时
11.7时
11.9时
0.7小时
1.0小时
1.8小时
1.1小时
1.2小时
5个作业的平均周转时间为:
(0.7+1.0+1.8+1.1+1.2)÷5=1.16(小时)
【例2】:某单道程序设计系统中有3个作业A、B、C,它们到达输入井的时间及需要的计算时间如下表:
作业名到达输入井时间需计算时间
A B C 8:50
9:00
9:30
1.5小时
0.4小时
1.0小时
当这3个作业全部到达输入井后,系统以响应比高者优先调度算法选择作业,忽略调度所用的时间,则作业被选中的次序应是怎样的呢?
答:由于进行作业调度的时间是在作业全部到达输入井之后,即在9:30开始进行调度,此时作业A、B、C分别等待了40分钟、30分钟和0分钟,因而它们的响应比为:A作业的响应比=40/90=4/9
B作业的响应比=30/24=5/4
C作业的响应比=0/60=0
可见,作业B的响应比最高,当然优先选择作业B装入主存储器执行。作业B执行结束后,又要进行调度,由于等待时间发生了变化,故应重新计算响应比。此时的计算结果如下:
A作业的响应比=64/90=32/45
C作业的响应比=24/60=2/5
显然作业A的响应比高于作业C的响应比,因而先选择在作业A执行,最后再让作业C进入主存储器执行。
11.进程切换的定义及原因
我们把一个进程让出处理器由另一个进程占用处理器的过程称为进程切换。下列情况均会引起进程的切换(原因):
(1)一个进程从运行状态变成等待状态。
(2)一个进程从运行状态变成就绪状态。
(3)一个进程从等待状态变成就绪状态。
(4)一个进程完成工作后被撤销。
12.(重点)常用的进程调度算法
(1)先来先服务调度算法
按照进程进入就绪队列的先后次序可占用处理器的进程。一旦一个进程占有了处理器,它就一致运行下去,直到该进程完成工作而结束或者因等待某事件而不能运行时才让出处理器。
(2)最高优先级调度算法
进程占用处理器后有两种方式:第一种方式是非抢占式的(非剥夺式的),第二种方式是可抢占式的(剥夺式的)。在实时系统中,可把处理紧急情况的报警进程定为最高优先级的进程,一旦有紧急事件发生时,这个报警进程就可抢占处理器进行紧急处理和发出报警信号。优先数大的优先级高,出Unix之外。
(3)时间片轮转调度算法
时间片是指允许进程一次占用处理器的最长时间。时间片轮转调度算法把就绪进程按就绪的先后次序排成队列,调度时总是选择就绪队列中的第一个进程,让它占用处理器,但规定它一次连续占用处理器的实践不能超过预定的时间片。
在分时操作系统中,经常采用时间片轮转调度算法。
【例】:假设有5个进程,只有一个在执行,有5个进程在等待,有4个进程在就绪。
七、线程的概念
1.线程的定义
线程又称轻量级进程,是进程中可独立执行的子任务。一个进程中可以有一个或多个线程,每个线程都应有一个唯一的标识符和一张线程描述表。线程描述表记录线程执行时的现场信息及状态等。
2.线程的基本属性:
(1)同一个进程中的各线程驻留在分配给进程的主存地址空间中,且共享该进程的所有资源。
(2)一个线程被创建后便开始了它的生命周期,直至执行结束而终止。线程在生命期内会经历等待态、就绪态和运行态等各种状态变化。
(3)线程是处理器的独立调度单位,多个线程可以并发执行。
(4)不同的线程可以执行相同的程序,即同一个服务程序若被不同用户调用时操作系统就为它们创建不同的线程。
3.线程与进程的根本区别
线程与进程的根本区别是把进程作业资源分配单位,而线程是调度和执行单位;每一个进程都有自己的主存空间,但同一进程中的各线程共享该进程的主存空间,进程中的所有线程对进程的整个主存空间都有存取权限。
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(https://www.sodocs.net/doc/204997286.html,/club/5346389)欢迎?加入...欢迎?交流...止不住的惊喜等着你.........
第3章存储管理
考情分析
本章主要内容:1.计算机系统中的存储器
2.逻辑地址和绝对地址
3.重定位
4.单用户连续存储管理
5.固定分区管理
6.可变分区存储管理及常用的分配算法
7.页式虚拟存储管理、虚拟存储器、页面调度
重点:1.可变分区方式的主存分配算法以及移位技术
2.页式主存空间的分配与回收
3.页面调度算法
本章考试分值约为15分。出题形式多以单选题、多选题、填空题、简答题、综合应用题为主。
知识网络图
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(https://www.sodocs.net/doc/204997286.html,/club/5346389)欢迎?加入...欢迎?交流...止不住的惊喜等着你.........
串讲内容
FIFO
LRU LFU
页式虚拟存储器管理的实现
页面调度
实现原理
页式存储管理的基本原理
页式主存空间的分配与回收 页表和地址转换 页的共享和保护
什么是虚拟存储器
地址转换和存储保护 移动技术
最先适应分配算法 最优适应分配算法 最坏适应分配算法
主存空间的分配与回收
静态重定位 动态重定位
主存空间的分配与回收
地址转换和存储保护 如何提高主存空间的利用率
绝对地址和逻辑地址
计算机系统中的存储器
重定位
存
储管理
重定位
单用户连续存储管理
固定分区存储管理
可变分区存储管理
页式虚拟存储管理
多级页表
一、计算机系统中的存储器
1.存储器的分类
若把CPU中的寄存器看作是一种特殊的存储器,则可把存储器分为:寄存器、主存储器和高速缓冲存储器、辅助存储器三个层次。
2.寄存器
寄存器是计算机中价格最昂贵飞存储器,它的存取速度快,但容量小。常用的寄存器有:指令寄存器、通用寄存器、控制寄存器。
3.主存储器
主存储器容量较大,存储速度也较快。存储单元以字节为单位进行编址,若干字节组成一个字,处理器能按地址读/写一个字节或一个字。主存用于存放用户当前需要执行的程序和数据,以及操作系统进行控制和管理的信息。
高速缓冲寄存器的速度快于主存,但造价比主存高,因而存储容量不大。用于存放经常被访问的单元,以提高主存的速度。
4.辅助存储器
辅助存储器的存储容量大,可用来长期存储信息,但处理器不能直接读/写辅助存储器,因此速度较慢。
二、重定位
1.绝对地址和逻辑地址
主存储器的存储单元以字节为单位,把容量为n的主存空间的地址编号称为主存储器的绝对地址,与绝对地址对应的主存空间称物理地址空间。
为了方便用户,每个用户都可以认为自己作业的程序和数据存放在一组从“0”开始的连续空间中。把用户程序中使用的地址称为逻辑地址,与逻辑地址对应的存储空间称为逻辑地址空间。
2.重定位的定义及分类
把逻辑地址转换成绝对地址的工作称为重定位或地址转换。重定位的方式可以有静态定位和动态定位两种。
3.静态重定位
由于地址转换工作是在作业执行前集中一次完成的,所以在作业执行过程中就无需再进行地址转换工作。这种定位方式称为静态重定位。静态重定位不需要硬件支持。
4.动态重定位
在作业执行过程中,由硬件的地址转换机构动态地进行地址转换,在执行指令时只要把逻辑地址与基址寄存器中的值相加就可得到绝对地址。这种定位方式在执行过程中进行的,所以称为动态重定位。动态重定位需硬件支持,即基址寄存器。动态重定位支持程序浮动。
三、单用户连续存储管理(适合单道程序设计)
1.单用户连续存储管理基本原理
在这种管理方式下,操作系统占了一部分主存空间,其余剩下的主存空间都分配给
一个作业使用,即在任何时刻主存储器中最多只有一个作业,故适合于单道运行的计算机系统。
2.地址变换方式如下:
(1)设置一个界限寄存器(BR),其内容是主存中用户区的首地址,只当操作系统功能扩充或修改时,改变了所占区域的长度,才更改界限寄存器的内容。
(2)绝对地址=逻辑地址+BR的值(界限地址)
(3)采用静态重定位
3.处理器在执行指令时要检查其绝对地址是否≥界限地址,且≤最大地址C。若绝对绝对地址在规定的范围内,则可执行,否则产生一个“地址越界”中断事件,由操作系统进行处理,以达到存储保护的目的。
四、固定分区存储管理(适合多道程序设计)
1.分区的定义
固定分区存储管理是把主存储器中可分配的用户区域预先划分成若干个连续区,每一个连续区称为一个分区。
2.固定分区存储管理的特点
(1)分区大小固定
(2)分区数目固定。
3.主存空间的分配与回收
存储管理设置“分区分配表”来说明各分区的分配和使用情况。表中指出各分区的起始地址和长度,并为每个分区设置一个标志位。标志位为“0”表示分区空间,非“0”表示分区已被占用。当有作业要装入分区,存储管理分配主存区域时,根据作业地址空间的长度与标志为“0”的分区的长度比较,当有分区长度能容纳该作业时,则把作业装入该分区,且把作业名填到占用标志位上。否则,该作业暂时不能装入。作业运行结束后,根据作业名查分区分配表,把该分区的占用标志置成“0”以示空闲。
4.地址转换和存储保护
因作业存放区域不会改变,可采用静态重定位方式把作业装入所在的分区号,且把该分区的下限地址和上限地址分别送入下限寄存器和上限寄存器中。处理器执行该作业的指令时必须核对:“下限地址≤绝对地址≤上限地址”如此等式不成立,产生“地址越界”中断事件。
5.为了提高主存空间的利用率,可以采用如下几种措施:
(1)根据经常出现的作业的大小和数量来划分分区,尽可能使各个分区被充分利用。
(2)划分分区时按分区的大小顺序排列,低地址部分是较小的分区,高地址部分是较大的分区。
(3)按作业对主存空间的需求量排成多个作业队列,每个作业队列中的各作业依次装入一个一个固定的分区中,每次装一个作业;不同作业队列中的作业分别依次装入不同的分区中;不同的分区中可同时装入作业;某作业队列为空时;该作业队列对应的
分区也不用来装入其它作业队列中的作业,空闲的分区等到对应作业队列有作业时再被使用。
五、可变分区存储管理
1.可变分区存储管理的基本思想和特点
可变分区存储管理是把作业要求装入主存储器时,根据作业需要的主存空间大小和当时主存空间使用情况来决定是否为作业分配一个分区。分区的长度按作业的实际需求划分;分区的个数由装入的作业数决定。
2.(重点)可变分区管理方式常用的主存分配算法有:
(1)最先适应分配算法:基本思想是空闲区在空闲区表中按地址递增的次序排列。
(2)最优适应分配算法:基本思想是空闲区在空闲区表中按其容量递增的次序排列。
(3)最坏适应分配算法:基本思想是空闲区在空闲区表中按其容量递减的次序排列。
3.归还区与空闲区合并的四种情况:
(1)归还区有上邻空闲区;
(2)归还区有下邻空闲区;
(3)归还区即有上邻空闲区又有下邻空闲区,空闲区-1;
(4)归还区即无上邻空闲区又无下邻空闲区,空闲区+1。
4.地址转换和存储保护
一般采用动态重定位方式装入作业。硬件设置有两个专用的基址寄存器和限长寄存器,以及一些加法、比较线路等。当作业可以占用处理器执行时,进程调度便把该作业所占分区的起始地址送入基址寄存器,所占分区的最大地址送入限长寄存器。作业执行过程中,当取出一条指令后,把该指令中的逻辑地址与基址寄存器的内容相加即得到绝对地址,该绝对地址若满足:“基址寄存器内容≤绝对地址≤限长寄存器内容”允许指令访问主存单元地址,否则,说明绝对地址已超出区域。
5.(重点)把作业从一个存储区域移到另一个存储区域的工作称为移动。采用移动技术有两个目的:
(1)集中分散的空闲区
(2)便于作业动态扩充主存
6.(重点)采用移动技术时必须注意两个问题:
(1)移动会增加系统开销
(2)移动是有条件的
六、页式虚拟存储管理(重点)
1.页式虚拟存储管理的主要特点
(1)作业运行前必须全部装入主存
(2)作业可装入主存的不连续区域
2.页表是由操作系统创建的,对用户不可见。每个作业都有一张页表,页表是在主存上
的。主存空间有地址结构决定。
3.页式存储管理的基本原理
页式存储管理是把主存储器分成大小相等的去多区,每个区称为一块。于此对应,编制程序的逻辑地址也分成页,页的大小与块的大小相等。分页式存储器的逻辑地址由两部分组成:页号和页内地址。其格式为:
页号页内地址
地址结构确定了主存储器的分块的大小,也就决定了页面的大小。
【例】:某作业页号占6bit,页内地址占10bit,则该作业所需的存储容量为64K,页面大小为1K,共有64页。
4.(重点)页式主存空间的分配与回收
页式存储管理把主存储器的可分配区域按页面大小分成若干块,主存空间按块为单位进行分配。可用一张主存分配表来记录已分配的块和尚未分配的块以及当前剩余的空闲块数。由于块的大小是固定的,所以可以用一张“位示图”来构成主存分配表。
(1)块号=字号×字长+位号
(2)字号=[i/字长]
(3)位号=i mod字长
其中i是块号,[]表示取i被字长除后的整数部分,而mod表示取其余数部分。
【例】:分页式存储管理可用一张“位示图”构成主存分配表,现设主存有8192块,则可用字长为32位的256个字作为位示图,试问4999块对应的字号和位号是多少?123字的29位对应的是哪块?
解:字号=[i/字长]=[4999/32]=156
位号=i mod字长=4999 mod 32=7
块号=字号×字长+位号=129×32+29=4157
5.页表和地址转换
页表是指出逻辑地址中页号与主存中块号的对应关系。页式存储管理也是采用动态重定位的方式装入作业。地址转换的一般公式为:
绝对地址=块号×块长+页内地址
分页式地址转换
6.快表的定义
利用高速缓冲寄存器存放页表的一部分,把存放在高速缓冲寄存器中的部分页表称为快表。 7.虚拟存储器
当主存空间小于作业需求量时,作业也能执行,这就使得主存空间能被充分地利用,进而用户编织程序时可以不必考虑主存储器的实际容量,允许用户的逻辑地址空间大于主存储器,称为虚拟存储器。
虚拟存储器的容量由计算机的地址结构和辅助存储器的容量决定,与实际主存储器的内容无关。所以,虚拟存储器实际上是为扩大主存容量而采用的一种管理技巧。
实现虚拟存储器的三大物质基础: (1)大量的辅助存储器 (2)一定容量的主存 (3)要有地址转换机构。 8.扩充后的页面包含哪些信息?
答:页号,标志,主存块号和磁盘上的位置。 9.抖动的定义
刚被调出的页又立即要用,因而又要把它调入;而调入不久又被调出;调出不久又再次被调入。如此反复,使调度非常频繁,以至于使大部分时间都花费在来回调度上,这种现象称为抖动,又称颠簸。 10.(重点)常用的页面调度算法有:
(1) 先进先出调度算法(FIFO ) (2) 最近最久未使用调度算法(LRU ) (3) 最近最不经常使用调度算法(LFU )
第b 块
逻辑地址
主 存 页 表
p b
b d
… … …
p d
绝对地址