第一章 引论
1、操作系统定义
操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度以及方便用户使用的程序的集合。
2、操作系统的作用
1. OS作为用户与计算机硬件系统之间的接口
2. OS作为计算机系统资源的管理者
3. OS实现了对计算机资源的抽象
- 推动操作系统发展的主要动力
- 不断提高计算机资源的利用率
- 方便用户
- 器件的不断更新迭代
- 计算机体系结构的不断发展
- 多道批处理系统的特征及优缺点
特征:多道性、无序性、调度性
优点:
1. 资源利用率高
2. 系统吞吐量大
缺点:
1. 平均周转时间长
2. 无交互能力(单道、多道都是)
5、分时系统和实时系统特征的比较
1. 多路性(实时系统的多路性主要表现在系统周期性地对多路信息的采集、以及对多个对象或多个执行机制进行控制。 分时系统中的多路性则和用户有关,时多时少。)
2. 独立性
3. 及时性:(实时系统对及时性的要求更严格,实时控制系统以控制对象要求的开始截止时间或完成截止时间来确定。 )
4. 交互性:实时系统的交互性仅限于访问某些专用服务程序。
5. 可靠性:实时系统对可靠性的要求更高,否则经济损失及后果无法预料。
6、操作系统的基本特征
(并发、共享、虚拟和异步 其中并发特征是操作系统最重要的特征是其他特征的前提)
1. 并发性
2. 共享性(互斥共享方式、同时访问方式)
3. 虚拟性(时分复用技术(虚拟处理机技术、虚拟设备技术)、空分复用技术(虚拟磁盘技术、虚拟存储器技术))
4. 异步性(进程的异步性:进程是以人们不可预知的速度向前推进的)
7、操作系统的主要功能
1. 处理机管理功能(进程控制(1、进程互斥方式:进程或者线程在对临界资源进行访问时,应采取互斥方式;2、进程同步方式:相互合作去完成共同任务的诸进程货线程)、进程通信、调度(作业调度、进程调度))
2. 存储器管理功能 (内存分配、内存保护、地址映射、内存扩充)
3. 设备管理功能(缓冲管理、设备分配、设备处理)
4. 文件管理功能(文件存储空间的管理、目录管理、文件的读/写管理和保护)
5. 用户接口(命令接口(联机用户接口、脱机用户接口)、程序接口、图形接口)
第二章 进程管理
1、程序顺序执行时的特征
1. 顺序性:严格按照程序所规定的次序执行。
2. 封闭性:程序在封闭环境下运行,系统中所有资源的状态只有本程序才能改变它。
3. 可再现性:只要初始条件相同,无论怎样执行,其结果都是相同的。
2、程序并发执行时的特征(提高了系统吞吐量)
1. 间断性:并发执行的实体之间相互制约,造成程序的执行出现间断,而不连续。
2. 非封闭性:多个程序共享系统资源,因而其状态有多个程序改变,从而失去封闭性。
3. 不可再现性:封闭性的失去必然导致不可再现性。
3、进程及其特征
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程是程序的一次执行
进程实体:由程序段、相关的数据段和PCB构成
特征:
结构特征
动态性(进程最基本的特征)
并发性(引人进程的目的:为了使其进程实体能和其他的进程实体并发执行;而程序(没有建立PCB)不能并发执行)
独立性
异步性
4.进程的基本状态及其转换图
- 就绪(Ready)状态
- 执行状态
- 阻塞状态 (典型事例:请求I/O、申请缓冲空间等)
5. 引入挂起状态的原因
1. 终端用户的请求
2. 父进程请求
3. 负荷调节的需要
4. 操作系统的需要
6、具有挂起状态的进程状态及其转换图
7、进程控制块及其作用
PCB是一种数据结构,是进程实体的一部分,记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。
作用:
1. 使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
2. PCB是进程存在与否的唯一标志,随着进程的建立而建立,随着进程的撤消而撤消。创建进程就是创建PCB。。。
8.进程之间的两种制约关系
- 间接制约——竞争资源——进程互斥
- 直接制约——相互合作——进程同步
9、临界资源
OS中把一次只能被一个进程使用的资源成为临界资源
10、临界区
进程中访问临界资源的那段代码称为临界区。
11、同步机构应遵循的规则
空闲让进、忙则等待、有限等待、让权等待
12、经典同步算法(生产者-消费者问题, 哲学家就餐问题和读者-写者问题)
略
13、进程通信的类型
管道通信系统(必须提供的协调能力:互斥、同步、确定对方是否存在)
14、线程的定义
现代OS引入的比进程更小的可以独立运行、调度的基本单位,是轻型实体,不拥有资源。
15、线程和进程比较
线程又称为轻型进程,通常一个进程都拥有若干个线程,至少也有一个(多线程OS中的进程不是一个可执行的实体)
1、调度:传统OS中,进程是拥有资源的基本单位,独立调度、分派的基本单位。引入线程后,则把线程作为调度和分派的基本单位,而进程作为拥有资源的基本单位
2、并发性:引入线程的OS中,进程之间可以并发执行,在一个进程中的多个线程之间也可以;这样使得OS具有更好的并发性,从而能更加有效的提高系统资源的利用率和吞吐量
3、拥有资源:线程不能拥有资源
4、系统开销:就切换代价而言,进程远高于线程
16、线程的属性
1. 轻型实体
2. 独立调度和分派的基本单位
3. 可并发执行
4. 共享进程资源
第三章 处理机调度与死锁
1、高级调度
又称为作业调度。即从外存的后备队列中选择一个作业,为它创建进程,分配必要的资源,并将新进程插入主存的就绪队列上。注意:分时系统和实时系统无作业调度。
JCB(作业控制块);是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息
2、低级调度
又称进程调度或短程调度,即从就绪队列中选择一个进程进入运行状态(非抢占方式、可抢占方式)。调度的对象是进程(多批道处理、分时、实时三种类型的OS中都有)
3、中级调度中程调度
为了提高内存利用率和系统吞吐量(引入目的),为此,应使那些暂时不能运行的进程不再占用内存资源,而将它们调至外存。适当时机再将其调回内存。这种调度称为中级调度。
4、进程调度的两种方式
1、非抢占方式(一旦给进程分配处理机,一直让他运行下去,直到完成再把处理机分配给其他进程)
2、抢占方式(允许调度程序根据某些原则去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一个进程)
5、抢占的原则
- 优先权原则
- 短作业(进程)优先原则
- 时间片原则
6、操作系统选择调度方式和调度算法的若干准则
- 面向用户的准则(周转时间短、响应时间快、 截止时间的保证、优先权准则)
- 面向系统的准则(系统吞吐量高、处理机利用率好、各类资源的平衡利用)
7、周转时间
周转时间:是指从作业被提交给系统开始,到作业完成为止的这段时间间隔
周转时间 = 完成时间 - 到达时间
待权周转时间 = 周转时间 / 服务时间
8、针对各种调度算法(先来先服务,短进程优先,优先权),计算周转时间、带权周转时间, 平均周转时间、平均带权周转时间
9、吞吐量
指在单位时间内系统所完成的作业数
10、多级反馈队列调度算法的原理、性能
该算法用于进程调度,主要是为解决前面各种进程调度算法存在的各种不同问题而设计的一种考虑综合因素的调度算法。其思想如下:
1、设置多个就绪队列,不同队列具有不同优先级,第一个队列优先级最高,以后次之。
给不同队列分配不同大小的时间片,第一个队列最小,以后次之(皆为前者的二倍)。有的系统也将最后一级队列不划分时间片。
2、当有一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS(先来先服务)原则排队等待调度。当轮到该进程执行时,如果它能在该时间片内完成,便可准备撤离系统;若不能则将它放在第二列的队尾。。。。。。
3、仅当前一级队列为空时才调度下一级队列中的进程。
算法采用抢占式调度策略。
执行的进程在规定的时间片内为执行完毕,则进入下一级队列的队尾,新进程则进入第一级队列的队尾。
性能:(较好的性能,能满足各种类型的用户)
1、终端型作业用户
2、短批处理作业用户
3、长批处理作业用户
11、死锁、产生死锁原因、必要条件
死锁是指两个或多个进程由于资源竞争而造成的一种僵局,若无外力作用,这些进程将永远无法向前推进。
产生死锁的原因:
- 竞争资源(可剥夺和非剥夺性资源、竞争非剥夺性资源、竞争临时性资源)
- 进程推进顺序非法(请求和释放资源的顺序不当)
必要条件:
1. 互斥条件:进程间必须互斥使用某些资源才可能产生死锁。
2. 请求保持条件:进程已经占有至少一个资源,但又提出了新的资源请求。
3. 不剥夺条件:进程已经获得的资源不能被剥夺。
4. 环路等待条件:在发生死锁时,必然存在一个进程——资源环形链。
12、处理死锁的基本方法
1. 预防死锁:通过设置某些限制条件,破坏四个必要条件中的一个或几个。该方法比较简单,但由于限制条件过于严格,往往导致系统资源利用率和吞吐量低。
2. 避免死锁:不需事先预防,但在资源的动态分配时,用某种方法防止系统进入不安全状态,从而避免死锁。该方法比较难于实现,但往往可获得较高资源利用率和系统吞吐量。
3. 死锁的检测与解除:允许系统产生死锁,但能及时检测出来,并通过某些措施解除。该方法实现难度最大,但往往可获得较好的资源利用率和系统吞吐量。
13、预防死锁的方法
预防死锁的方法是使四个必要条件中的第2、3、4个条件不能成立,来避免发生死锁。至于必要条件1,因为他是由设备固有性能决定的,不仅不能改变,还应加以保证。(互斥条件破坏不了)
- 摒弃“请求和保持”条件:资源静态分配
- 摒弃“不剥夺”条件:资源的动态分配
- 摒弃“环路等待”条件:资源有序分配
14、安全状态
所谓安全状态,是指系统能按某种进程顺序(P1, P2, …,Pn)(称〈P1, P2, …, Pn〉序列为安全序列),来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。
15、银行家算法
略
16、死锁定理
S状态是死锁的充分条件是,当且仅当S状态的资源分配图是不可完全简化的。该充分条件被称为死锁定理
第四章 存储器管理
1、程序装入的方式
1. 绝对装入方式:完全按照目标程序中所给定的地址装入内存,即目标程序中使用的是绝对地址。该绝对地址既可在编译或汇编是给出,也可由程序员直接赋予。
2. 可重定位装入方式:通常是把在装入时对目标程序中指令和数据的修改过程称为重定位 。又因为地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位
3. 动态运行时装入方式:在这种方式下动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此, 装入内存后的所有地址都仍是相对地址。 显然为使指令的执行不受影响,进行这种地址的动态转换,就必须有专门的硬件机构解决
2、重定位、静态重定位、动态重定位
重定位:我们把装入时对目标程序中的指令地址和数据地址的修改过程称为重定位。
静态重定位:如果重定位是在装入时由装入程序一次性完成的,则称为静态重定位。
动态重定位:在这种方式下动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。
3、内存的连续分配方式有哪些
- 单一连续分配(单道)
- 固定分区分配
- 动态(可变式)分区分配
- 可重定位分区分配
4、动态分区分配算法
- 首次适应算法
- 循环首次适应算法
- 最佳适应算法
- 最坏适应算法
- 快速适应算法
5、对换技术(P129)
对换技术,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需的程序和数据调入内存的方法。
6、紧凑或拼接技术
紧凑技术,是指通过移动内存中作业的位置,把原先分散的小分区拼接成一个大分区的方法。在每次拼接后,都必须对移动了的程序或数据进行重定位
7、分页与分段的主要区别
1. 页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存利用率,分页是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,分段的目的是为了能更好地满足用户的需要。
2. 页的大小固定且由系统决定;而段的长度却不固定, 取决于用户所编写的程序。
3. 分页的作业地址空间是一维的,即单一的线性地址空间; 而分段的作业地址空间则是二维的。
8、虚拟存储器的定义、特征
定义:虚拟存储器就是仅把作业的一部分装入内存便可运行的存储器系统,具体说就是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
特性:
1. 离散性:即非连续性,这是实现虚拟存储器管理技术的前提;
2. 多次性:一个作业被分成多次调入内存;
3. 对换性:允许在作业运行过程中换入、换出;
4. 虚拟性:能够从逻辑上扩充内存容量。
第五章 设备管理
1、设备管理的对象:
设备、设备控制器、通道
2、、I/O控制方式及发展宗旨
I/O系统是用于实现数据的输入,输出及数据存储的系统
I/O控制方式:
- 程序I/O方式(忙等待方式)
- 中断驱动I/O方式
- 直接存储器访问DMA控制方式
- I/O通道控制方式
发展宗旨:
尽量较少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来,以便更多的去完成数据处理任务。
3、缓冲引入的原因
1. 缓和CPU与I/O设备间速度不匹配的矛盾。
2. 减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。
3. 提高CPU和I/O设备之间的并行性。
4、设备独立性
应用程序独立于具体使用的物理设备叫设备独立性,也称为设备无关性。
5、SPOOLING原理、组成、特点、共享打印机原理
SPOOLING原理:在联机情况下实现的外围操作与CPU对数据的处理同时进行,称为假脱机操作,又叫Spooling。
Spooling系统的组成:
1. 输入井和输出井
2. 输入缓冲区和输出缓冲区(为了缓和CPU与磁盘之间速度不匹配的矛盾)
3. 输入进程和输出进程
4. 请求打印队列
SPOOLing系统的特点:
- 提高了I/O的速度。
- 将独占设备改造为共享设备。
- 实现了虚拟设备功能。
共享打印机原理:
共享打印机技术已被广泛地用于多用户系统和局域网络中。 当用户进程请求打印输出时, SPOOLing系统同意为它打印输出, 但并不真正立即把打印机分配给该用户进程, 而只为它做两件事:
1. 由输出进程在输出井中为之申请一个空闲磁盘块区, 并将要打印的数据送入其中;
2. 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中, 再将该表挂到请求打印队列上。
6、磁盘访问时间包括什么(P193)
1. 寻道时间Ts
2. 旋转延迟时间Tτ
3. 传输时间Tt
- 磁盘调度算法:计算平均寻道长度
P ( 194 )
第六章 文件管理
1、文件
文件是指由创建者所定义的、 具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干个相关记录组成;而无结构文件则被看成是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。
2、文件的逻辑结构及分类
文件的逻辑结构分为两大类:
- 有结构文件:即记录式文件;记录的长度分为定长记录和变长记录
- 无结构文件:即流式文件(被看成字符流)。
3、文件的物理结构及分类
文件的物理结构直接与外存分配方式有关。可分为:
- 连续分配方式时的顺序式文件结构。
- 链接分配方式时的链接式文件结构。
- 索引分配方式时的索引式文件结构。
4、文件外存分配方式
1. 连续分配。
2. 链接分配。
3. 索引分配。
5、文件目录,目录查询方式
文件目录是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用,是文件数据块的有序集合。
目录查询方式:
- 线性检索法
- Hash方法
6、目录管理的要求
- 实现“按名存取”。
2. 提高对目录的检索速度。
3. 文件共享。
4. 允许文件重名。
7、文件控制块
为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制的数据结构,称之为文件控制块(包含三大信息:基本信息、存取控制信息、使用信息)
- 索引节点概念,为什么引入索引节点
索引节点:采用将文件名与文件描述信息分开的办法,将文件描述信息单独形成一个数据结构叫索引节点简称i节点。
引入原因:由于检索目录文件只用到文件名,即用不到该文件的描述信息,且在检索目录时索引节点不用调入内存,从而大大节省了系统开销。
9、文件存储空间的管理方法
- 空闲表法
- 空闲链表法
- 位示图法
- 成组链接法 (空闲表法和空闲链表法都不适合大型文件系统)
10、成组链接法的空闲盘块组织、分配回收过程
(1) 顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。
(2) 将所找到的一个或一组二进制位, 转换成与之相应的盘块号。假定找到的其值为“0”的二进制位,位于位示图的第i行、第j列,则其相应的盘块号应按下式计算: b=n(i-1)+j
式中, n代表每行的位数。
(3) 修改位示图,令map[i,j]=1。
空闲盘块的分配与回收:当系统要为用户分配文件
所需的盘块时,首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。
若该盘块号已是栈底, 即(0),这是当前栈中最后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此, 须调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去。
在系统回收空闲盘块时,将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。当栈中空闲盘块号数目已达100时, 表示栈已满,便将现有栈中的100个盘块号, 记入新回收的盘块中,再将其盘块号作为新栈底。
第七章 操作系统接口
1、操作系统接口
分为用户接口和程序接口(概念)。用户接口包括命令接口、图形接口等。
2、程序接口
程序接口是由一组系统调用组成。系统调用是在OS核心设置的一组实现系统功能的子程序(过程)。
第八章 网络操作系统
1、网络操作系统的功能
数据通信,网络资源共享,应用互操作,网络管理
应用互操作包括:信息互通性和信息互用性。在Internet下,主要利用TCP/IP协议实现信息的互通性。
2、网络操作系统提供的服务:
域名服务,目录服务,Web服务
3、目录管理记录了网络中的三大资源
物理设备,网络服务和用户的名字,属性和位置。