操作系统概论
知识总结
第一章操作系统简介
1.操作系统是覆盖在裸机上的第一层系统软件
2.操作系统的两个主要目标:
a)与硬件部分相互作用,为包含在硬件平台上的所有底层可编程部件提供服务
b)为运行在计算机系统上的应用程序(即所谓用户程序)提供执行环境
3.现代计算机系统的一个重要特点就是支持多任务
4.操作系统所管理的资源主要包括处理机、内存、设备和文件,在网络操作系统中还包括网卡、宽带等
5.操作系统的主要功能:
a)处理机管理
b)内存管理
c)设备管理
d)文件管理
6.操作系统的发展从时间顺序上经历了从无操作系统到单道批处理系统、多道程序系统(多道批处理系统、分时系统)的发展过程,随着计算机应用领域的扩大、计算机体系结构的多样化,又出现了微机操作系统、网络操作系统、实时操作系统、嵌入式操作系统和物联网操作系统
7.单道批处理系统内存中只有一道作业,可以自动成批处理作业。单道批处理系统特点:自动性、顺序性、单道性。单道批处理系统与无操作系统相比,减少了等待人工操作的时间
8.多道批处理系统的特点是多道性、无序性、调度性、复杂性。其优点是能够提高CPU、内存和I/O设备的利用率和系统的吞吐量,缺点是系统平均周转时间长,缺乏交互能力。
9.分时操作系统允许多个用户通过终端同时使用计算机,特点是多路性、独立性、及时性和交互性,优点是向用户提供了人机交互的方便性,使多个用户可以通过不同的终端共享主机。分时系统的实现需要解决两个关键问题,即及时接收和及时处理
10.实时系统主要用于实时控制和实时信息处理领域。实时系统必须能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行
11.实时系统的特点:多路性、独立性、及时性、交互性、可靠性
12.实时系统比分时系统要求有更高的可靠性
13.现代操作系统都支持多任务,具有并发、共享、虚拟和异步性特征
14.并发两个或多个事件在同一时间间隔内发生
15.共享是指系统中的资源可供内存中多个并发执行的进程共同使用,资源共享有两种方式:互斥共享和同时共享
16.内存管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用内存,提高内存的利用率,以及从逻辑上扩充内存以实现虚拟存储
17.内存管理应具有内存分配、内存保护、地址映射和内存扩充功能
18.操作系统可以采用两个方式实现内存分配,即静态分配方式和动态分配方式
19.内存保护的任务:
a)使操作系统内核的空间不会被用户随意访问,以保证系统的安全和稳定
b)确保每道用户程序都在自己的内存空间中运行,互不干扰
20.CPU执行程序过程中访问内存时,需要把程序的逻辑地址转变为物理地址,这个转换过程称为地址映射
21.内存扩充的任务是借助于虚拟存储技术,从逻辑上扩充内容容量,使系统能够向用户提供比物理内存大的存储容量。为了能从逻辑上扩充内存,系统必须具有内存扩充机制,以实现请求调入功能和置换功能
22.进程的管理功能主要包括进程的描述与组织、进程控制、进程同步、进程通信及进程调度
23.设备管理主要功能:
a)缓冲管理
b)设备分配
c)设备处理
d)设备独立性和虚拟设备
24.目录项包括文件名、文件属性、文件的地址等信息。
25.操作系统向用户提供了用户与操作系统之家的接口。主要包括:命令接口、图形接口和程序接口
26.命令接口分为联机用户接口和脱机用户接口。联机用户接口是为联机用户设计的。脱机用户接口是为批处理作业的用户提供的,也称处理厂用户接口
27.操作系统提供给程序员的接口是系统调用
28.软件系统结构是一个复杂软件体系的高层结构,为软件系统提供了一个结构、行为和属性的高级抽象
29.明确清晰的软件系统结构是一条贯穿软件系统整个生命周期的主线,是软件设计成功的基础和关键,也是对软件大型化、复杂化趋势的一种很好的应对决策
30.单体内核是操作系统中最早、最常见的体系结构
31.微内核技术是操作系统发展的一个里程碑,它的核心思想是核心功能外移
32.程序是指令的集合,程序的执行就是按照某种控制流执行指令的过程
33.一个单一指令需要的处理称为指令周期,一个指令周期可以划分成两个步骤,分别是取指周期和执行周期
34.在每个执行周期开始时,处理器从存储器中取一条指令
35.程序的执行就是反复取指令和执行指令
36.取指令和执行指令都是由硬件完成的。
第二章进程管理
1.操作系统中最核心的概念是进程
2.程序的顺序执行的特点:顺序性,封闭性,可再现性
3.程序的并发执行的特点:间断性、失去封闭性、不可再现性
4.引入进程的原因:当操作系统支持程序并发执行时,并发执行的程序可能是同一程序在不同数据集合上的执行,也可能是不同的程序在不同数据集合上的执行,它们共享系统资源,用程序已不能描述程序的并发执行,所以引入了进程的概念
5.进程的定义:
a)进程是允许并发执行的程序在某个数据集合上的运行过程
b)进程是由正文段、用户数据段和进程控制块共同组成的执行环境。
6.正文段存放被执行的机器指令,用户数据段存放进程在执行时直接进行操作的用户数据,进程控制块存放程序的运行环境,操作系统通过这些数据描述和管理进程
7.进程的特征:
a)并发性。
b)动态性
c)独立性
d)异步性
e)结构特征
8.进程与程序的区别:
a)程序是静态的,进程是动态的。
b)程序是永久的,进程是暂时存在的
c)程序与进程的存在实体不同。
9.进程与程序的联系
a)进程是程序的一次执行,进程总是对应至少一个特定的程序,执行程序的代码
b)一个程序可以对应多个进程。同一个程序可以在不同数据集合上运行,因而构成若干
个不同的进程,几个进程能并发地执行相同的程序代码,而同一个进程能顺序地执行
几个程序
10.进程由程序、用户数据和操作系统管理进程所需要的进程控制块构成。进程实体存在的标志是操作系统管理进程所使用的数据结构——进程控制块
11.进程控制块中包含的信息:进程标识符信息(用于唯一标识一个进程)、处理机状态信息(通用寄存器、指令计数器、程序状态字PSW、用户栈指针)、进程调度信息(进程状态信息、进程优先级和进程调度所需的其他信息)、进程控制信息(包括程序、数据的地址、进程同步、通信机制、资源清单、链接指针)
12.进程的三种基本状态:就绪态、阻塞态和执行态
13.进程的组织:链接方式、索引方式和进程队列
14.需要创建新进程的情况:用户登录、作业调度、提供服务、应用请求
15.调用创建新进程的系统调用来创建进程的步骤:1.申请空白PCB,2.为新进程分配资源,3.初始化进程控制块,4.将新进程插入就绪队列
16.进程的阻塞和唤醒操作:
a)请求系统服务
b)启动某种操作
c)新数据尚未到达
d)无新工作可做
17.完成进程阻塞的简化过程如下:
a)将进程的状态改为阻塞态
b)将进程插入相应的阻塞队列
c)转进程调度程序,从就绪队列中选择进程为其分配CPU
18.进程唤醒的过程:
a)将进程从阻塞队列中移出
b)将进程状态由阻塞态改为就绪态
c)将进程插入就绪队列
19.进程终止:
a)当进程正常秩序完毕,调用终止进程的系统调用,请求操作系统删除该进程
b)一个进程调用适当的系统调用,终止另外一个进程。
20.父进程终止其子进程的原因:
a)子进程使用了超过它所分配到的一些资源
b)分配给子进程的任务已经不再需要
c)父进程退出。
21.完成进程终止的过程:
a)从进程PCB中读进程状态
b)若进程正在执行,则终止进程的执行
c)若进程由子孙进程,在大多数情况下需要终止子孙进程
d)释放资源
e)将终止进程的PCB移出
22.操作系统内核是计算机硬件的第一次扩充,内核执行操作系统与硬件关系密切,执行频率高的模块,常驻内存
23.操作系统内核的功能:支撑功能(中断处理、时钟管理和原语操作)和资源管理功能(包括进程管理、存储管理和设备管理)
24.中断是改变处理器执行指令顺序的一种事件,这样的事件与CPU芯片内外部硬件电路产生的电信号相对应
25.计算机在执行程序的过程中,当出现中断时,计算机停止现行程序的运行,转向对这些中断事件的处理,处理结束后再返回到现行程序的间断处
26.引入中断的原因:使CPU可以与其他设备并行工作,能有效提高CPU的利用率,改善系统性能,支持系统的异步性。
27.中断的类型:
a)同步中断(内部中断或异常),是指指令执行时由CPU控制单元产生的,之所以称为
同步,是因为只有在一条指令终止执行后CPU才会发出中断,如除法出错、调试、溢
出和浮点出错等
b)异步中断(外部中断),是由其他硬件设备随机产生的,又分为外部可屏蔽中断和外
部不可屏蔽中断。外部不可屏蔽中断是由紧急事件引起的中断,如硬件故障
28.引起中断的原因:人为设置中断、程序性故障、硬件故障、I/O设备和外部事件
29.单重中断的处理过程:
a)系统管理中断,保护断点,把当前要执行的下一条指令的地址保存到内存中,以便中
断返回时,能把这个地址恢复到程序计数器PC中,使被中断的程序从断点处开始继续
执行
b)转中断处理程序。在中断处理程序中完成保护现场的工作,就是把相关的硬件上下文
信息保存到内存中,硬件上下文就是中断返回恢复被中断程序的执行时,需要写回CPU
寄存器的值
c)保护完现场后,要根据中断向量到中断向量表中找到与中断处理子例程入口地址相关
信息,由这些信息得到中断处理子例程的入口地址,以执行中断处理子例程,完成本
次中断处理的特定处理工作
d)最后,恢复现场,开中断,CPU返回断点处继续执行被中断的程序
30.时钟的重要性:时钟是计算机系统的脉搏,计算机的很多活动都是由定时测量来驱动的;操作系统的内核可以利用时钟机制防止一个进程垄断CPU或其他资源;计算机中当前时间显示功能、即时通信程序等与时间相关的软件都需要时钟机制的支持
31.大部分PC中有两个时钟源,分别称为实时时钟(RTC)和OS时钟。RTC时钟也称CMOS时钟,是一块时钟芯片,靠电池供电,为计算机提供计时标准,是最原始、最底层的数据。OS时钟产
生于PC主板上的定时/计数芯片,在开机时有效,由操作系统控制
32.操作系统内核需要完成两种主要的定时测量,一是保存当前的日期和时间,以便能通过系统调用把它们返回给用户程序,让用户程序获得当前的日期和时间,也可以由内核本身把当前时间作为文件和网络包的时间戳。二是维持定时器,这种机制能够告诉内核或用户程序某一时间间隔已经过去
33.操作系统依靠时钟硬件和时钟驱动程序完成上述两种定时测量功能
34.时钟驱动程序也成为时钟中断处理程序,每产生一次时钟中断信号,操作系统内核要执行时钟驱动程序,时钟驱动程序完成如下功能:
a)维护日期和时间;
b)递减当前进程在一个时间片内的剩余执行时间,并检查是否为零,防止进程运行超时;
c)对CPU的使用情况记账;
d)递减报警计数器
35.系统调用是一群预先定义好的模块,它们提供一条管道让应用程序或一般用户能由此得到核心程序的服务。
36.用户空间是指用户进程所处的地址空间,一个用户进程不能访问其他进程的用户空间,只有系统程序才能访问其他用户空间。当CPU执行用户空间的代码时,称该进程在用户态执行
37.系统空间是指含有一切系统核心代码的地址空间,当CPU执行系统核心代码时,称进程处于系统态执行
38.系统调用与一般函数的区别:
a)系统调用运行在系统态(核心态),而一般函数运行在用户态
b)系统调用与一般函数调用的执行过程不同。系统调用执行时,当前进程被中断,由系
统找到相应的系统调用子程序,并在系统态下执行,执行结果返回进程
c)系统调用要进行“中断处理”,比一般函数调用多了一些系统开销
39.系统调用的类型:
a)进程控制类系统调用。创建、撤销进程;获得、改变进程属性
b)文件操纵类系统调用。创建、删除、打开、关闭和读/写文件
c)设备管理类系统调用。请求、释放设备
d)通信类系统调用。打开、关闭连接,交换信息
e)信息维护类系统调用。返回系统当前日期、时间、版本号、用户数、空闲内存和磁盘
空间大小等信息
40.进程同步的任务:
a)对具有资源共享关系的进程,保证诸进程以互斥的方式访问临界资源
b)对具有相互合作关系的进程,保证相互合作的诸进程协调执行。
41.同步机制应遵循的准则:
a)空闲让进
b)忙则等待
c)有限等待
d)让权等待
42.管程是描述共享资源的数据结构和在数据结构上的共享资源管理程序的集合。其中包括变量的定义、变量的初始化代码,以及管理共享资源的过程
43.管程的特征:
a)管程是可供程序员调用的软件包。进程可以在任何需要调用的时候调用管程中的过程,
但是他们不能再管程外的过程中直接访问管程内的数据结构
b)每次只有一个进程调用管程执行,任意时刻管程中只能有一个活跃进程
c)管程是一种编程语言的构件,所以编译器知道他们很特殊,并可以调用与其他过程不
同的方法来处理他们。
44.进程之间的高级通信机制类型:
a)共享存储器系统。又分为基于共享数据结构的通信方式和基于共享存储区的通信方式
b)消息传递系统。又分为直接通信方式和间接通信方式
c)管道通信。管道是连续读写进程的一个特殊文件,也称为管道文件
d)消息缓冲队列。广泛用于本地进程直接的通信,该机制包括数据结构、发送原语和接
收原语。
45.进程是进行资源分配和独立执行的基本单位,线程是被系统独立调度和分派的基本单位
46.引入线程的原因:由于进程既是独立执行的基本单位,又是资源拥有者,在进程创建、撤销和切换时需要较大的时空开销,所以,系统中所设置的进程数和进程切换的频率都收到了限制,影响了操作系统被冰封程度的提高。引入线程作为独立调度和分派的单位,不独立永不资源,而与其他线程共享同一进程资源,减小了系统的时空开销
47.线程的实质是把进程的任务划分成更小、具有独立功能的单位,以线程的形式来并发执行,以提高程序并发执行的程度。
48.线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程只拥有在运行中必须的资源,包括程序计数器、一组寄存器和栈,但是它可以与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程。同一进程中的多个线程可以并发执行
49.线程的实现可以分为两类,即用户级线程和内核级线程。内核级线程依赖于内核,用户级线程不依赖于内核,用户级线程的创建、撤销和切换都与内核无关
50.线程与进程的关系:
a)资源和调度。线程是程序执行的基本单位,进程是拥有资源的基本单位
b)地址空间资源。不同进程的地址空间是相互独立的,而同一进程中的各线程共享同一
地址空间
c)通信关系。进程之间的通信必须使用操作系统提供的进程间通信机制,而同一进程中
的各线程间可以通过之间读或写全局变量来进行通信,甚至无需操作系统的参与
d)并发性。多进程之间可以并发执行,多线程之间也可以并发执行,而且同一进程中的
多个线程之间也可以并发执行
e)系统开销。由于创建进程或撤销进程时,系统都要为之分配或回收资源,操作系统所
付出的开销远大于创建或撤销线程时的开销
51.用户线程的创建时通过调用线程库中的实用程序完成的。内核线程的创建是由内核完成的
52.线程的终止的原因:正常结束、异常结束、外界干预
53.线程同步机制有原语操作和信号量机制
54.不同进程的线程间通信,必须使用操作系统提供的线程间通信机制
第三章进程调度与死锁
1.进程调度功能由操作系统内核的进程调度程序完成的。进程调度的功能是按照某种策略和算法从就绪态进程中为当前空闲的CPU选择在其上运行的新进程
2.进程调度的时机:当一个进程运行结束(包括正常结束和异常结束)、进程阻塞、中断返回、在支持抢占式调度的系统中有比当前运行进程优先级更高的进程到来、当前运行进程的时间片用完时,系统都会通过执行进程调度程序重新进行进程调度
3.选择调度方式和算法的若干准则:
a)周转时间短
b)响应时间快
c)截止时间的保证
d)系统吞吐量高
e)处理机利用率好
4.调度算法:
a)先来先服务调度算法(FCFS),适合长进程,不利于短进程
b)短进程优先调度算法(SPF),对长进程不理,不能保证紧迫进程的及时处理,进程的
长短根据用户的估计而定,故不一定能真正做到短进程优先。
c)优先权调度算法,又分为非抢占式优先权调度算法和抢占式优先权调度算法
d)时间片轮转调度算法,是现代分时系统中广泛使用的进程调度算法。时间片是一个较
小的时间单元,通常是10~100ms,用户进程分配的时间片大小一般为50ms
e)多级队列调度
f)多级反馈队列调度
5.优先权调度算法的一个主要问题是无穷阻塞,或称饥饿问题
6.低优先权进程无穷等待问题的解决方案之一是老化技术
7.时间片大小确定时考虑的因素:
a)系统对响应时间的要求
b)就绪队列中进程的数目
c)系统的处理能力
8.实现实时调度的基本条件:提供必要的调度信息、系统处理能力强、采用抢占式调度机制、具有快速切换机制
9.为了实现实时调用,必要的调度信息包括就绪时间、开始截止时间和完成截止时间、处理时间、资源要求和优先级
10.在实时系统中广泛采用抢占式调度,可以满足实时进程对截止时间的要求。
11.抢占式调度算法根据抢占CPU的时机不同,可以分为基于时钟中断的抢占和立即抢占。
12.立即抢占调度策略中,一旦接收到触发实时进程运行的信号,这通常是一个外部中断信号,系统立即剥夺当前进程的CPU,把他分配给请求中断的新的实时进程。
13.快速切换机制具有两个方面的能力
a)对外部中断的快速响应能力。
b)快速的进程切换能力。
14.常用的几种实时调度算法:最早截止时间优先算法(EDF)和最低松弛度优先算法(LLF)
15.松弛度用来表示一个实时进程的紧迫程度
16.进程切换的步骤:
a)保存包括程序计数器和其它寄存器在内的CPU上下文环境
b)更新被替换进程的进程控制块
c)修改进程状态,把执行态改为就绪态或阻塞态
d)将被替换进程的进程控制块移到就绪队列或阻塞队列
e)执行通过进程调度程序选择的新进程,并更新该进程的进程控制块
f)更新内存管理的数据结构
g)恢复被调度程序选中的进程的硬件上下文
17.对处理器系统有多种不同的分类方式,根据处理器的耦合程度,可以把多处理器系统分为紧密耦合多处理器系统和松弛耦合多处理器系统;根据处理器结构是否相同,可以把多处理器系统分为对称多处理器系统和非对称多处理器系统
18.对于非对称多处理器系统,大多数采用主——从式操作系统,即操作系统的核心部分驻留在一台主机上,而从机上只运行用户程序,只有主机执行调度程序,所有从机的进程都是由主机分配的
19.多处理器的调度方法:自调度、成组调度和专用处理器分配
20.自调度算法是当前多处理器系统中最常用的调度方式之一,也是最简单的一种调度方式。就是设置一个公共的就绪队列,任何一个空闲的处理器都可以自行从该就绪队列中选取一个进程或一个线程运行
21.自调度的优点:宜移植和有利于提高CPU的利用率
22.自调度方式的缺点是:瓶颈问题、低效率和线程切换频繁
23.成组调度是由系统将一组相互合作的进程或线程同时分配到一组处理器上运行,进程或线程与处理器一一对应。其优点是减少线程切换,改善系统性能和减少调度开销
24.专用处理器的优点是加速了应用程序的运行速度和避免了进程切换
25.产生死锁的原因是:竞争共享资源且分配资源的顺序不当
26.死锁产生的必要条件是必须同时满足4个条件,分别是:互斥条件、请求和保持条件、不剥夺条件、环路等待条件
27.处理死锁的基本方法有预防死锁、避免死锁、检测并解除死锁和忽略死锁问题。操作系统可以采用死锁预防或死锁避免方案
28.死锁的预防:摒弃请求和保持条件、摒弃不剥夺条件、摒弃环路等待条件
29.摒弃请求和保持条件是系统要求所有进程执行前要一次性地申请在整个运行过程中所需要的全部资源,只要有一个资源申请不成功,其他所有资源也不分配给该进程,并阻塞该进程
30.摒弃不剥夺条件是一个已保持了某些资源的进程,当它再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源
31.摒弃环路登录的方法是指进程必须按规定的顺序申请资源,对所有不同类型的资源排序,要求每个进程按规定的顺序申请资源
32.死锁的避免的方法是把系统的资源的分配状态分为安全状态和不安全状态,只要资源分配使系统资源分配状态处于安全状态,死锁就不会发生。在避免死锁的方法中,允许进程动态地申请资源。系统在资源分配之前,先计算资源分配的安全性,若本次资源分配不会导致系统进入不安全状态,便将资源分配给进程,否则拒绝进程的资源请求,进程阻塞起来
33.不安全状态不一定是死锁状态,但当系统进入不安全状态之后,便可能进入死锁状态。
34.避免进程死锁的实质在于使系统处于安全状态。
35.银行家算法的基本思想是一个进程提出资源请求后,系统先进行资源的试分配,然后检查本次的试分配是否使系统处于安全状态,若安全则按试分配方案分配资源,否则不分配资源。
36.调用检测算法的时机:死锁可能发生的频率和当死锁发生时受影响的进程数量
37.死锁定理:S为死锁状态的充分条件是当且仅当S状态的资源分配图是不可完全简化的。
38.死锁定理用于检测系统所处的资源分配状态S是否为死锁状态
39.解除死锁的途径:终止处于死锁状态的进程和抢占死锁进程占有的资源
第四章内存管理
1.存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构
2.程序的执行遵循局部性原理,局部性原理表现在时间和空间的局部性
3.时间局部性,如果程序中的某一条指令一旦执行,则不久后该指令可能再次执行
4.空间局部性,一旦程序访问了某个单元,在不久后,其附近的存储单元也将被访问
5.CPU寄存器保存最常用的数据
6.程序执行的局部性原理的几个论点:
a)程序在执行时,除了少部分的转移和过程调用指令以外,在大多数情况下是顺序执行
的
b)过程调用将会使程序的执行轨迹由一部分内存区域转到另一部分内存区域
c)程序中存在很多循环结构,他们虽然由少数指令构成,但多次执行
d)程序中往往包括许多对数据结构的处理
7.高级语言程序必须经过编译、链接才能成为可执行程序,操作系统需要为程序的执行分配内存空间。
8.链接程序不属于操作系统的构成部分,但是它为操作系统提供可装入的程序模块
9.链接程序要解决的问题是将编译后的目标模块装配称一个可执行的程序
10.根据链接进行的时间和实现方式的不同,可以把链接分为静态链接和动态链接
11.静态链接是在程序运行前,用链接程序将目标模块链接称一个完整的装入模块。静态链接程序的任务是对逻辑地址进行修改和变换外部调用符号
12.静态链接的缺点是程序开发不够灵活、方便,修改某一个模块会导致整个程序的重新链接
13.动态链接可将某些目标模块的链接推迟到这些模块中的函数被调用执行时才进行
14.动态链接的优点是节省内存和外存空间,方便程序开发
15.将一个用户的源程序变为一个可在内存中执行的程序,通常要经过编译、链接和装入3个阶段
16.多数系统允许操作系统将用户进程放在物理内存的任意位置
17.根据形成在内存中物理地址的时机不同,把程序的装入分为绝对装入方式、可重定位装入方式(静态重定位)和动态运行时装入方式
18.在程序装入时对目标程序中的指令和数据地址修改过程称为重定位
19.可重定位方式的特点:
a)编译程序使目标模块的起始地址从0开始
b)程序装入时,装入程序根据内存的使用情况将装入模块装入到内存的某个位置,并对
模块进行重定位
20.程序在装入内存后,还可能从内存的一个区域移动到另一区域,这种情况可能发生在支持虚拟存储的系统中
21.一个进程在被换出之前所在的内存位置与后来被从外从中重新调入内存时所在的内存位置不同,在这种情况下,地址映射必须延迟到进程执行时再进行,把这种装入方式称为动态运行时装入
22.连续分配是指操作系统分配内存时,为每个进程分配一块物理地址连续的内存空间
23.连续分配方式有单一连续区分配方式、固定分区分配方式和动态分区分配方式
24.单一连续分配方式仅适用于单用户、单任务的系统
25.在单用户、单任务操作系统中较常用的方法是设置一个基址寄存器和一个界限寄存器
26.固定分区分配实现简单,但是由于每个分区的大小固定,必然造成存储空间的浪费,使内存利用率低下。
27.在一些实时控制系统中,使用固定分区分配还是简单而有效的
28.动态分区分配算法的原理:系统初始只有一个大空闲区,当进程请求空间时,由系统根据进程需要的空间大小划分出一片空闲区分配给进程。系统允许一段时间后,内存的空闲区可能散步在不连续的区域。系统维护一个记录当前空闲分区情况的数据结构,当进程请求内存时,系统从所有空闲区中找到大小合适的空闲区进行分配。系统中分区的大小和数量都是变化的,空闲区的大小和数量也是变化的
29.动态分区分配算法包括首次适应算法、循环首次适应算法和最佳适应算法
30.循环首次适应算法优点是:空闲区分布均匀、查找开销较小。缺点是容易是系统缺乏大空闲区
31.最佳适应算法的优点是避免了大材小用,能提高内存利用率,但是容易留下难以利用的小空闲区
32.把进程离散地存储在内存中物理地址不连续的区域中,这种内存管理方式称为离散内存管理方式,该方法是为了支持虚拟内存管理
33.根据离散内存管理分配内存空间的基本单位不同,分位三种不同的管理方式:分页存储管理、分段存储管理和段页式存储管理
34.将一个进程的逻辑地址空间分成若干个大小相等的片,称为页
35.将物理内存空间分成与页大小相同的若干个存储块,称为页框或页帧
36.在为进程分配内存时,以页框为单位将进程中的若干页分别装入多个可以不相邻的页框中
37.进程的最后一页一般装不满一个页框,而形成了不可利用的碎片,称为“业内碎片”,是一种内部碎片
38.页表是系统为进程建立的数据结构,页表的作用是实现从页号到页框号的映射
39.基于分页的逻辑地址结构包含两部分:页号P和页内偏移量W
40.在分页系统中,页的大小是由机器的体系结构和操作系统共同决定的。一般页的大小为2的整数次幂,在目前的计算机系统中,大多数选择4KB大小的页
41.影响页大小设计的因素有:管理内存的开销和内存的利用率
42.为了减少CPU在有效访存上的时间开销,提高访存速度,在硬件上引入了快表机制
43.快表也称转换后援缓冲(TLB),是为提高CPU访存速度而采用的专用缓存,用来存放最近被访问过的页表项
44.TLB是关联的快速闪存。TLB的条目由两部分组成:键和值。键对应页号,值对应页所在的页框号
45.引入TLB之后的地址变换过程:
a)CPU产生分页的逻辑地址页号和页内偏移后,将该逻辑地址的页号提交给TLB
b)查找TLB,如果找到页号,则把该页所在的页框号用于形成物理地址,否则查找内存页
表,从内存页表中找到相应的页表项,读取页所在的页框号,以形成物理地址
c)如果所查找的页表项不在TLB中,在访问完内存页表后,要把找到的页表项中的页号
和页框号写到TLB中,如果TLB中的条目已满,系统会根据某种策略选择一个TLB中
的条目,用刚访问的页表项信息替换选中的这个TLB条目
46.在二级分页系统中,为了能在地址映射时得到离散存放的页表在物理内存中的地址,需要为页表再建立一个连续存放的外层页表,本书也称为页目录表。页目录表的表项中存放了每个页表再物理内存中所在的页框号。
47. 虚拟存储器是指具有请求调入和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
48.虚拟存储技术实现的基本思想是,只把进程的一部分装入内存。
49.虚拟存储技术带来的好处是:
a)提高内存的利用率。因为虚拟存储技术只把进程的一部分装入内存,原则上尽量吧必
须或常用的部分装入内存
b)提高多道程序度。因为只把每个进程的一部分装入内存,因此可以在内存中装入更多
的进程
c)把逻辑地址空间和物理地址空间分开,使程序员不用关心物理内存的容量对编程的限
制
50.虚拟存储系统具有的主要特征:
a)离散性。离散性是指进程可以分散地存储在物理内存中。分页、分段和段页式存储都
属于离散的内存管理方式。离散性是实现虚拟存储管理的基础
b)多次性。多次性是指不必把进程一次性全部装入内存,可以先将执行当前进程所必须
的部分代码和数据装入内存,其余部分等进程运行需要时再装入,可以将进程分多次
装入内存
c)对换性。对换性是指在内存中进程可以换出,以腾出内存空间换入外存中的进程。
d)虚拟性。虚拟性是指虚拟存储系统为用户提供了比实际物理内存大的逻辑内存空间,
使程序员不必再编辑时受物理内存空间大小的限制。虚拟性是实现虚拟存储系统的重
要的目标
51.请求分页系统是最基本、最常用的虚拟存储系统的实现方式。
52.页表是支持请求分页系统最重要的数据结构,其作用是记录描述页的各种数据,包括在实现逻辑地址到物理地址映射时需要的页号与页框号的对应关系。除了页号和页框号之外,页表中增加了请求换入和置换是需要的数据。
53.缺页异常机构的主要作用是在访问内存过程中发现缺页时产生缺页异常信号,使CPU中断当前控制流的执行,转去执行操作系统的缺页异常处理程序,完成请求调页。具体过程如下:
a)分页硬件通过页表完成逻辑地址到物理地址的映射时,通过检查页表中的状态位P,判
断当前被访问的页是否在内存中,如果不在,产生缺页异常信号
b)执行操作系统的缺页异常处理过程,先在内存中为请求调入的页找一个空闲页框。然
后,调度磁盘操作,把需要的页装入找到的空闲页框中
c)修改页表,更新已经调入也的存在位、在内存中的页框号、访问位和保护位等字段的
值
d)重新开始执行因缺页而被中断的指令
54.在请求分页系统中,从分配给进程的页框数量上来看,可以采用固定分配和可变分配策略
55.从选择淘汰页的侯选页是请求调入页的进程页还是系统中的所有用户进程页来看,可以采用局部置换和全局置换两种策略
56.最佳置换算法主要用于理论研究
57.先进先出页置换算法(FIFO)实现简单,但是效率较低,会导致较高的缺页率
58.FIFO是最简单的页置换算法
59.LRU算法是广泛使用的性能较好的算法。(最近最久未使用置换算法)
60.计算机系统要提供足够的硬件来支持LRU算法是比较困难的,许多系统在实现时都采用LRU 的近似算法,如附加引用算法、简单Clock算法和改进型Clock算法等
61.引入工作集机制是为了能有效降低缺页率,从而提高访存的时间效率
62.多道程序度太高,使运行进程的大部分时间都用于进行页的换入、换出,而几乎不能完成任何有效工作的状态称为抖动。引起抖动的主要原因是系统中的进程数量太多,每个进程能分配到的页框太少,以至于进程运行过程中频繁请求调页
63.抖动的预防:采取局部置换策略、在CPU调度程序中引入工作集算法和挂起若干进程。
64.在使用分段存储管理的系统中,程序员使用二维的逻辑地址,一个数用来表示段,另一个数用来表示段内偏移。
65.引入分段机制的优点是方便编程、分段共享、分段保护、动态链接以及存储空间的动态增长
66.段表是由操作系统维护的用于支持分段存储管理地址映射的数据结构。每个进程有一个段表,段表有段表项构成。每个段表项包含段号、段基址和段长3个部分。一个进程可能包含若干个段,每个段在段表中有一个段表项与之对应
67.分页和分段的主要区别:
a)页是按物理单位划分的,分页的引入是为了提高内存的利用率和支持虚拟存储。而段
是按逻辑单位划分的,一个段含有一组意义相对完整的信息,引入分段的目的是为了
方便程序员编辑
b)页的大小是固定的,而段的大小不固定,取决于用户编写的程序和编译器
c)分页的地址空间是一维的,分段的地址空间是二维的,
第五章文件系统
1.文件系统的用户接口包括文件的命名、类型、属性和对文件的操作
2.多数操作系统都支持文件名用圆点隔开分为两部分。圆点后面的部分称为文件扩展名
3.文件结构分为无结构字节序列、固定长度记录序列和树形结构
4.无结构字节序列文件也称为流式文件。
5.文件的类型有正规文件、目录文件、字符设备文件和块设备文件。
6.正规文件包含用户信息,一般分为ASCII文件和二进制文件。
7.目录文件是用于管理文件的系统文件。
8.字符设备文件和输入/输出有关,用于串行I/O类设备,如终端、打印机和网络等。
9.块设备文件用于磁盘类设备
10.ASCII文件的明显优势是可以显示和打印,也可以用通常的文本编辑器进行编辑
11.二进制文件具有一定的内部机构,通常的文本编辑器不能直接显示或打印二进制文件
12.文件的存取方式是由文件的性质和用户使用文件的情况确定的,常用文件存取方式有两种:顺序存取和随机存取
13.文件的创建日期、文件大小和修改时间等,这些附加信息称为文件属性
14.文件系统通常提供目录或文件夹用于记录文件,很多系统中目录本身也是文件,目录是文件系统中实现按名访问文件的重要数据结构
15.目录文件有两种常见的数据结构:属性放在目录项中和放在i结点中
16.文件目录的组织和管理是文件管理的一个重要方面,包括单层目录、两级目录和树形目录
17.使用两级目录的优点是解决了文件的重命名问题和文件共享问题,查找实际降低,缺点是增加了系统的存储开销
18.树形目录的优点是便于文件的分类,层次结构清晰,便于管理和保护,解决了重命名问题,查找速度加快。缺点是查找一个文件按路径名逐层查找,由于每个文件都放在外存中,多次访问磁盘会影响速度,结构相对复杂
19.用目录树组织文件系统是,需要有某种方法指明文件名,常用的方法有两种:绝对路径名和相对路径名
20.实现文件存储的常用方式有连续分配、使用磁盘链接表的分配、使用内存的链接表分配和i-结点
21.把分配给文件的连续扇区构成的磁盘块称为簇
22.连续分配的优点:实现简单和读操作性能好
23.连续分配的缺点:随着时间的推移,磁盘会变得零碎
24.磁盘链接表的优点是可以充分利用每个簇,不会因为磁盘碎片而浪费存储空间,管理也比较简单,缺点是随机存取相当缓慢
25.使用内存的链接表分配是将文件所在的磁盘的簇号放在内存的表中。该方法不适合大容量的磁盘
26.MS-DOS使用的是使用内存的链接表分配方法进行磁盘分配
27.文件系统为文件分配磁盘空间是以簇为单位的。一般簇的大小是2的整数次幂个连续的扇区
28.记录空闲块一般使用空闲簇链接表和位图两种方法
第六章I/O设备管理
1.计算机系统中的I/O设备即输入/输出设备是用于计算机系统与人通信或与其他机器通信的所有设备,以及所有外存设备I/O系统的结构分为微机I/O系统和主机I/O系统
2.I/O系统可采用四级结构,包括主机、通道、控制器和设备
3.I/O设备的分类
a)按传输速率分类
i.低速设备。如键盘和鼠标
ii.中速设备。如打印机
iii.高速设备。如磁带机、磁盘机、光盘机
b)按信息交互的单位分类
i.块设备,数据的存取以数据块为单位,如磁盘
ii.字符设备。传送字节流,没有使用块结构,如终端、打印机、通信端口、鼠标等
c)按设备的共享属性分类
i.独占设备。是必须作为临界资源以互斥方式访问的设备。如打印机
ii.共享设备。是允许多个进程共同访问的设备。如磁盘
iii.虚拟设备。是通过某种虚拟技术把一台物理设备变成若干逻辑设备,从用户角度看,是多个用户拥有各自的设备,可以随时向设备发出访问请求并得到系统应答
4.设备控制器的功能
a)接收和识别命令
b)数据交换
c)设备状态的了解和报告
d)地址识别
e)数据缓冲
f)差错控制
5.设备控制器的组成:
a)设备控制器与处理机的接口:数据线、控制线和地址线
b)设备控制器与设备的接口:设备与设备控制器接口中的3类信号为数据、状态和控制
信号
c)I/O逻辑:I/O逻辑主要由指令译码器和地址译码器两部分功能部件构成,将CPU的命
令和地址分别译码,控制指定设备进行I/O操作
6.I/O控制方式有轮询、中断和DMA控制方式
7.I/O方式有早期的程序轮询控制方式,在中断机制被引入计算机系统后,I/O控制采用中断控制方式,为了提高块设备的I/O性能,可以利用DMA控制器对I/O进行DMA控制
8.现代计算机系统广泛采用中断控制方式完成对I/O的控制
9.中断控制的工作方式能使CPU与I/O设备在某些时间段上并行工作,提高CPU的利用率和系统的吞吐量
10.采用中断控制方式的I/O工作模式是CPU执行过程中个,发出输入/输出请求,若此时I/O 设备忙,则进程阻塞等待
11.DMA控制需要特殊结构的设备控制器,DMA控制器的逻辑组成包括3部分:主机与DMA的接口、DMA与设备的接口、I/O控制逻辑
12.缓冲区是用来保存两个设备之间或设备与应用程序之间传输数据的内存区域。
13.引入缓冲区的原因:
a)处理数据流的生产者与消费者之间的速度差异
b)协调传输数据大小不一致的设备
14.操作系统提供的最简单的缓冲类型是单缓冲区
15.双缓冲的性能比单缓冲所有提高,但是这种提高是以增加复杂性为代价的
16.循环缓冲的组成:
a)多个缓冲区
i.空缓冲区R:生产者进程下一个可用的空缓冲区
ii.已装满数据的缓冲区G:用于指示消费者进程下一个可用的装有产品的缓冲区
iii.现行工作缓冲区C:消费者进程正在使用的工作缓冲区
b)多个指针
i.Nextg:用于指示消费者进程下一个可用的装有数据的缓冲区
ii.Nexti:用于指示生产者进程下一个可用的空缓冲区
iii.C urrent:用于指示进程正在使用的工作缓冲区
17.消费者进程要使用缓冲区中的数据时,可调用Getbuf过程。当进程使用完缓冲区之后,调用Releasebuf过程释放缓冲区
18.公共缓冲池是被广泛应用的一种缓冲管理技术,公共缓冲池中设备多个可供若干进程共享的缓冲区,这种方式能够提高缓冲区的利用率
19.公共缓冲池既可用于输入,又可用于输出,其中包括至少3种类型的缓冲区、3种缓冲队列和4种工作缓冲区
20.3种类型的缓冲区:空缓冲区、装满输入数据的缓冲区和装满输出数据的缓冲区
21.3种队列:空缓冲队列、输入队列和输出队列
22.4种工作缓冲区:收容输入数据的缓冲区、提取输入数据的缓冲区、收容输出数据的缓冲区和提取输出数据的缓冲区
23.设备分配中的数据结构包括:设备控制表、控制器控制表、通道控制表和系统设备表
24.设备控制表(DCT)中的信息:设备类型、设备标识符、设备状态、指向控制器表的指针、重复执行的次数或时间、设备队列的队首指针
25.控制器控制表(COCT)中的信息:控制器标识符、控制器状态、与控制器相连接的通道表指针、控制器队列的队首指针、控制器队列的队尾指针
26.通道控制表(CHCT)中的信息:通道标识符、通道状态、与通道连接的控制器表首址、通道队列的队首指针、通道队列的队尾指针
27.系统设备表(SDT)中的信息:设备类型、设备标识符、设备控制表、设备驱动程序的入口地址
28.为了使系统有条不紊地工作,系统再分配设备时应考虑的因素:
a)设备的固有属性
b)设备分配算法
c)设备分配时的安全性
29.为了提高操作系统的可适应性和可扩展性,在现代操作系统中都实现了设备独立性,也称设备无关性。在应用程序中,使用逻辑设备名称来请求使用某类设备,而系统再实际执行时,还必须使用物理设备名称。
30.实现设备独立性带来的好处是:
a)应用程序与物理设备无关,系统增减或变更外围设备时不需要修改应用程序
b)易于处理输入/输出设备的故障
c)提高了系统的可靠性,增加了设备分配的灵活性
31.独立设备软件完成的主要功能:
a)执行所有设备的公有操作
b)向用户层软件提供统一的接口
32.独占设备的分配程序:
a)分配设备
b)分配控制器
c)分配通道
33.在多道程序环境下,利用一道程序来模拟脱机输入时的外围控制机的功能,把低速I/O设备上的数据传送到高速输出磁盘上,在利用另一道程序来模拟脱机输出是外围控制机的功能把数据从磁盘传送到低速输出设备上,这种在联机情况下实现的同时外围操作称为SPOOLing。
34.SPOOLing系统的组成:
a)输入井和输出井
b)输入缓冲区和输出缓冲区
c)输入进程SPi和输出进程SPo
d)请求I/O队列
35.SPOOLing系统的特点:
a)提高了I/O速度
b)将独占设备改造为共享设备
c)实现了虚拟设备功能
36.I/O软件的总体目标是将软件组织成一种层次结构,低层次软件用来屏蔽硬件的具体细节,高层软件则主要是为用户提供一个简洁、规范的界面。
37.设备软件从上到下依次是用户层软件、与设备无关的软件层、设备驱动程序和中断处理程序
38.设备管理软件与硬件关系最密切的是设备驱动程序
39.操作系统设备管理软件实现的功能:
a)实现I/O设备的独立性
b)错误处理
c)异步传输
d)缓冲管理