第一章 操作系统引论
(1)什么是操作系统
操作系统 是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
(2)操作系统的主要功能
操作系统的五大主要功能:处理机管理、存储器管理、设备管理、文件管理、用户接口管理。
处理机管理功能: 进程控制、进程同步、进程通信、调度
存储器管理功能:内存分配、内存保护、地址映射、内存扩充
设备管理功能:缓冲管理、设备分配、设备处理
文件管理功能:文件存储空间的管理、目录管理、文件的读/写管理和保护
(3)操作系统的基本特征
操作系统的基本特征:并发、共享和异步性。
并行性是指两个或多个事件在同一时刻发生;
并发性是指两个或多个事件在同一时间间隔内发生。
共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。有互斥共享方式、同时访问方式。
异步性:在多道程序环境下,允许多个进程并发执行, 但只有进程在获得所需的资源后方能执行。
(4)操作系统的主要类型
操作系统的主要类型:多道批处理系统、分时系统、实时系统、个人机系统、网络系统和分布式系统。
多道批处理系统的特征:多道性、无序性、调度性;
多道批处理系统的优缺点:资源利用率高、系统吞吐量大、平均周转时间长、无交互能力。
分时系统和实时系统的特点:
分时概念:主要是指若干并发程序对CPU时间的共享。
分时系统的特征 : 多路性、独立性、及时性、交互性;
实时系统与分时系统特征的比较:多路性、独立性、及时性、交互性、可靠性。
(5)UNIX命令的一般格式
UNIX系统是著名的分时系统,UNIX命令行的一般格式:命令名 [选项] [参数]
(6)现代操作系统的三种用户界面
现代操作系统为用户提供的三种使用界面:命令界面、图形界面和系统调用界面。
第二章进程管理
(1)什么是进程,进程与程序的区别和关系
进程是程序在并发环境中的执行过程。进程最基本的属性是动态性和并发性。
进程的生存过程——创建-运行-阻塞-终止。
进程与程序的区别和关系:
动态性:动态性是进程的最基本的特征;程序是静态的;
并发性:并发性是进程的重要特征;程序(没有建立PCB)不能并发执行;
独立性:进程实体是一个能独立运行、独立分配资源和独立接收调度的基本单位;程序(没有建立PCB)不能作为一个独立的单位参与运行。
进程的基本状态及其变化: 就绪状态 、执行状态、阻塞状态
引入挂起状态:
进程=程序+数据+PCB,每个进程有惟一的进程控制块。
进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
进程的同步与互斥:简单理解:同步是伙伴,互斥是竞争
(2)多道程序设计概念
用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
优点:提高CPU的利用率、可提高内存和I/O设备利用率、增加系统吞吐量。
(3)什么是临界资源、临界区
临界资源:指在一段时间内只允许一个用户(进程)访问的设备。
临界区:每个进程中访问临界资源的那段代码;
进入临界区的原则:空闲让进、忙则等待、有限等待、让权等待。
(4)什么是信号量,PV操作的动作,进程间简单同步与互斥的实现
信号量机制是一种卓有成效的进程同步工具,它从整型信号量经记录型信号量,进而发展为“信号量集”机制。
S.value的初值表示系统中某类资源的数目, 因而又称为资源信号量,
P操作:对它的每次wait操作,意味着进程请求一个单位的该类资源,因此描述为S.value∶ =S.value-1;
V操作:对信号量的每次signal操作,表示执行进程释放一个单位资源,故S.value∶ =S.value+1操作表示资源数目加1。
系统利用信号量控制进程对临界资源或公共变量的访问,以实现进程的同步与互斥。
解决此类问题的一般方式:
.根据问题给出的条件,确定进程有几个或几类;
.确定进程间的制约关系——是互斥,还是同步;
.各相关进程间通过什么信号量实现彼此的制约,标明信号量的含义和初值。
.用P、V操作写出相应的代码段。
.验证代码的正确性:设以不同的次序运行各进程,是否能保证问题的圆满解决。切忌 按固定顺序执行各进程。
第三章处理机调度与死锁
(1)作业调度和进程调度的功能
高级调度又称为作业调度或长程调度
主要功能:根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。因此,有时也把作业调度称为接纳调度。
作业的四种状态:提交、后备、执行和完成。
低级调度又称为进程调度或短程调度
主要功能:保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程;
在一般操作系统中,进程调度是必须具备的。
作业调度与进程调度的关系:简单比喻:作业调度是演员上场前的准备,进程调度是让演员上场表演。
(2)简单的调度算法:
先来先服务调度算法;
时间片轮转法:系统能在给定的时间内响应所有用户的请求。
多级反馈队列调度算法(优先级法):
性能:能满足 终端型作业用户,短批处理作业用户,长批处理作业用户。
(3)评价调度算法的指标
吞吐量:指在单位时间内系统所完成的作业数
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 服务时间
(4)什么是死锁
指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法在向前推进。
产生死锁的必要条件:互斥条件 、请求和保持条件 、不剥夺条件 、环路等待条件 ;
产生死锁的原因:竞争资源、 进程间推进顺序非法。
预防死锁的基本思想:通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个条件,来预防发生死锁。
预防死锁的方法:摒弃“请求和保持”条件、摒弃“不剥夺”条件、摒弃“环路等待”条件
处理死锁的基本方法:预防死锁、避免死锁、检测死锁、解除死锁。
(5)什么是进程的安全序列,死锁与安全序列的关系
进程的安全序列:指系统能按某种进程顺序(P1, P2, …,Pn)(称〈P1, P2, …, Pn〉序列为安全序列),来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。
死锁与安全序列的关系:如果系统无法找到一个安全序列,则称系统处于不安全状态。当系统进入不安全状态后,便有可能进而进入死锁状态;反之,只要系统处于安全状态,系统便可避免进入死锁状态。
(6)银行家算法
设Requesti是进程Pi的请求向量,如果Requesti[j]=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:
(1) 如果Requesti[j]≤Need[i,j],便转向步骤2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2) 如果Requesti[j]≤Available[j],便转向步骤(3);否则, 表示尚无足够资源,Pi须等待。
(3) 系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:
Available[j]∶=Available[j]-Requesti[j];
Allocation[i,j]∶=Allocation[i,j]+Requesti[j];
Need[i,j]∶=Need[i,j]-Requesti[j];
(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则, 将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。
第四章存储器管理
(1)用户程序的主要处理阶段
编辑、编译、连接、装入、运行
(2)存储器管理的功能
内存分配、地址映射、内存保护、内存扩充。
三级存储器结构:高速缓存,内存,外存
(3)有关地址、重定位、虚拟存储器等概念
逻辑地址:指用户程序经编译后,每个目标模块以0为基地址进行的顺序编址。逻辑地址又称相对地址。
物理地址:指内存中各物理存储单元的地址从统一的基地址进行的顺序编址。物理地址又称绝对地址,它是数据在内存中的实际存储地址。
重定位:把逻辑地址转变为内存的物理地址的过程。
静态重定位:地址变换通常是在装入时一次完成的,以后不再改变。
动态重定位:地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的。
碎片(零头):不能被利用的小分区(不相邻接)
虚拟存储器:指具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
虚拟存储器的基本特征:虚拟扩充、部分装入、离散分配、多次对换
分段 分页
目的是为了能更好地满足用户的需要。段是信息的逻辑单位 仅仅是由于系统管理的需要。页是信息的物理单位。
长度不固定,决定于用户所编写的程序 大小固定且由系统决定
二维地址空间:段名段内地址; 一维地址空间
(4)分页和分段二者的主要区别
(5)对换技术的实现思想
所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。
(6)页面置换及先进先出法
先进先出(FIFO)页面置换算法:淘汰最先进入内存的页面
最佳(Optimal)置换算法:其所选择的被淘汰页面,将是以后永不使用的, 或许是在最长(未来)时间内不再被访问的页面。
最近最少使用置换法(LRU)
第五章设备管理
(1)设备管理功能
缓冲管理、设备分配、设备处理
设备的一般分类:存储设备(块设备),输入/输出设备(字符设备)。
(2)常用设备分配技术
独占分配、共享分配、虚拟分配
(3)使用缓冲技术的目的
缓和CPU与I/O设备间速度不匹配的矛盾、减少对CPU的中断频率, 放宽对CPU中断响应时间的限制、提高CPU和I/O设备之间的并行性;
缓冲区的设置方式:单缓冲、双缓冲、循环缓冲、缓冲池
(4)中断的一般处理过程
(5)处理I/O请求的步骤
将抽象要求转换为具体要求、 检查I/O请求的合法性、 读出和检查设备的状态 、 传送必要的参数 、 工作方式的设置、 启动I/O设备
(6)SPOOLing系统的功能和实现思想
功能:提高了I/O的速度、将独占设备改造为共享设备、实现了虚拟设备功能。
实现思想:为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、 脱机输出技术。 该技术是利用专门的外围控制机, 将低速I/O设备上的数据传送到高速磁盘上;或者相反。
第六章文件管理
(1)文件、文件系统的概念
文件是指由创建者所定义的、 具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。
文件系统模型:
文件系统的接口:命令接口、程序接口;
对象及其属性:文件、目录、磁盘(磁带)存储空间;
对对象操纵和管理的软件集合: 这是文件管理系统的核心部分。文件系统的功能大多是在这一层实现的,其中包括:对文件存储空间的管理、对文件目录的管理、用于将文件的逻辑地址转换为物理地址的机制、对文件读和写的管理,以及对文件的共享与保护等功能。
(2)文件的逻辑组织和物理组织的概念
文件的逻辑结构,独立于文件的物理特性,又称为文件组织,是从用户角度出发观察到的文件组织形式。
文件的物理结构,又称为文件的存储结构, 是指文件在外存上的存储组织形式。
(3)目录和目录结构
目录:文件目录是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用;
对目录管理的要求如下:实现“按名存取”、提高对目录的检索速度、文件共享、允许文件重名;
目录结构:单级目录结构、两级目录、 多级目录结构
(4)路径名和文件链接
路径名:在树形目录结构中, 从根目录到任何数据文件, 都只有一条惟一的通路。 在该路径上从树的根(即主目录)开始, 把全部目录文件名与数据文件名,依次地用“/”连接起来, 即构成该数据文件的路径名。 系统中的每一个文件都有惟一的路径名。
文件链接: 隐式链接、 显式链接
(5)文件的存取控制
空闲表法和空闲链表法、位示图法、成组链接法
(6)对文件和目录的主要操作
文件操作:创建文件、删除文件、读文件、写文件、截断文件、设置文件的读/写位置、文件的“打开”和“关闭”操作、其它文件操作
目录操作:建立目录、撤消目录、改变工作目录、改变对文件的存取方式。
第七章操作系统接口
(1)用户接口、系统调用
用户接口:
1、联机用户接口:终端用户利用该接口可以调用操作系统的功能,取得操作系统的服务,可以实现用户与计算机间的交互。
2、脱机用户接口:专为批处理作业的用户提供,不能实现用户与计算机间的交互。
3、图形用户接口:用户可用鼠标或菜单和对话框来完成对应用程序和文件的操作。
系统调用:
运行在不同的系统状态、通过软中断进入、返回问题、嵌套调用。
类型:
1.进程控制类系统调用: 创建和终止进程的系统调用。 获得和设置进程属性的系统调用。 等待某事件出现的系统调用。
2.文件操纵类系统调用:创建和删除文件、打开和关闭文件、读和写文件;
3.进程通信类系统调用: 两种进程通信方式,即消息传递方式和共享存储区方式
(2)微内核、客户与服务器
微内核:足够小的内核、基于客户/服务器模式、应用“机制与策略分离”原理、采用面向对象技术。
基本功能,如进程(线程)管理、低级存储器管理、中断和陷入管理。
客户与服务器:
组成:客户机、服务器、网络系统;
交互:客户发送请求消息、服务器接受消息、服务器回送消息、客户机接收消息;
优点:数据的分布存储、数据的分布处理、灵活性和可扩充性、友好的用户界面、 易于改编应用软件。
(3)网络操作系统的功能:数据通信功能、网络资源共享功能、应用互操作功能、网路管理功能。