1. 操作系统的基本概念
1.1 操作系统的特征
- 并发
- 共享(互斥共享和同时访问)
- 虚拟(时分复用和空分复用)
- 异步
现代操作系统最基本的两个特征是:并发与共享
1.2 操作系统的目标和功能
1. 操作系统作为计算机系统资源的管理者
(1)处理机管理
在多道程序环境下,处理机的分配和运行都是以进程(或线程)作为基本单位,因而对处理机的管理
可归结为对进程的管理。
主要功能:进程控制、进程同步、进程通信、死锁处理、处理机调度等。
(2)存储器管理
方便用户使用及提高内存的利用率。
主要功能:内存分配、地址映射、内存保护与共享、内存扩充等。
(3)文件管理
计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。
主要功能:文件存储空间的管理、目录管理及文件读写管理和保护等。
(4)设备管理
设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率。
主要功能:缓冲管理、设备管理、设备处理、虚拟设备
2. 操作系统作为用户与计算机硬件系统之间的接口
为方便用户使用计算机,操作系统还提供了用户接口。一类是命令接口,用户利用这些操作命令来
组织和控制作业的执行;另一类是程序接口,编程人员使用它们来请求操作系统服务。
(1)命令接口
按作业控制方式不同,可将命令接口分为联机命令接口和脱机命令接口。
- 联机命令接口
联机命令接口又称交互式命令接口,适用于分时或实时系统的接口。它由一组键盘操作命令组成。
用户通过控制台或终端输入操作系统命令,向系统提出各种服务要求。操作系统直接控制作业的运行。 - 脱机命令接口
脱机命令接口又称为批处理命令接口,适用于批处理系统,它由一组作业控制命令(或作业控制语句)组成。脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起交给系统。操作系统间接控制作业的运行。
(2)程序接口
程序接口由一组系统调用命令(简称系统调用,也称为广义指令)组成。用户通过在程序中使用这些系
统调用来请求操作系统为其提供服务。用户在程序中可直接使用这组系统调用命令向系统提出各种服务
要求,如使用各种外部设备、进行有关磁盘文件的操作、申请分配和回收内存及其它各种控制要求等。
【注】当前最流行的图像用户界面(GUI),即图形接口,用户通过鼠标和键盘,在图形界面上单击或使用快捷键,就能很方便使用操作系统。GUI图形接口不是操作系统的一部分,但图形接口所调用的系统调用命令是操作系统的一部分。
3. 操作系统用作扩充机器
没有任何软件支持的计算机称为裸机。裸机在最里层,操作系统在最外层。我们将把覆盖了软件的
机器称为扩充机器或虚拟机。
1.3 操作系统的发展与分类
1.3.1 手工操作系统(此阶段无操作系统)
1.3.2 批处理操作系统(操作系统开始阶段)
为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了批处理系统。它按发展历程又
分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
- 单道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业,单道批处理系统是在解决人机矛盾及CPU和I/O设备速率不匹配的矛盾中形成的。
- 主要特点
1)自动性。顺利的情况下,磁带上的一批作业能自动地逐个运行,无需人工干预。
2)顺序性。磁带上的各道作业顺序进入内存,各道作业的完成顺序与进入内存的顺序在正常情况下应完全相同,亦即先调入内存的作业先完成。
3)单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换其后继程序进入内存运行。
- 缺点
内存中运行的作业发出I/O请求时,高速的CPU便处于等待低速的I/O完成状态。
- 多道批处理系统
多道程序设计技术允许多个程序同时进入内存并允许这些它们在CPU中交替运行,这些程序共享系
统中的各种硬/软件资源。当一道程序因I/O暂停时,CPU便立即转去运行另一道程序。
- 主要特点
1)多道。计算机内存中同时存放多道相互独立的程序
2)宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕
3)微观上串行。内存中的多道程序轮流占有CPU,交替执行。
【注】中断技术使得多道批处理系统的I/O设备可与CPU并行工作
- 多道程序设计技术需要解决下列问题
1)如何分配处理器
2)多道程序的内存分配问题
3)I/O设备如何分配
4)如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。
- 优点VS缺点
优点:资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大,CPU和其他资源保持“忙碌”状态。
缺点:用户响应的时间较长,不提供人机交互能力,用户既不能了解自己程序的运行情况,又不能控制计算机。
【注】引入多道程序设计之后,程序的执行就失去封闭性和顺序性。
1.3.3 分时操作系统
所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分给联机作业
使用。分时操作系统是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。分时操作系统也支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统。
- 主要特点
1)同时性。
2)交互性
3)独立性
4)及时性
1.3.4 实时操作系统
1.3.5 网络操作系统和分布式计算机系统
1.3.6 个人计算机操作系统
1.4 操作系统运行的环境
1.4.1 操作系统的运行机制
两种指令、两种处理器状态、两种程序。
特权指令只能在CPU处于核心态下执行,非特权指令既可以在核心态下执行,也可以在用户态下执行。
需要使用特权指令的程序称为内核程序,普通的程序为应用程序。
内核程序由于需要使用特权指令,所以需要运行在核心态。
1.4.2 中断和异常的概念
发送中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的。
- 中断
中断也称为外中断,指来自CPU执行指令以外的事情的发生,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够向设备发下一个输入/输出请求,同时让完成输入/输出处理后的程序继续运行。
【注】外部中断处理过程中,PC值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。
时钟中断:表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。
- 异常
异常也称为内中断、例外或陷入(trap),指源自CPU执行指令或内存内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令引起的事件。对异常的处理一般要依赖与当前程序的运行现场,而且异常不能被屏蔽,一旦出现立即处理。
【注】内中断的产生与当前执行指令相关、它的检测是由CPU内部逻辑实现的,它的响应发生在指令执行过程中。
- 中断处理和子程序调用的区别
子程序调用只需保护断点(程序计数器),即该指令的下一条指令的地址;中断调用子程序不仅要保
护断点,还要保护程序状态字寄存器的内容 PSW(有些机器也称标志寄存器 FLAGS)。另外,两者还需保存通用数据寄存器和通用地址寄存器的内容。
1.4.3 系统调用
所谓系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共
子程序。系统的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代完成。
-
系统调用按功能分类
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
-
核心态与用户态
系统调用需要使用某些特权指令才能完成,需要由操作系统内核程序负责完成,即要运行在核心
态。用户程序可以执行陷入指令(又称仿管指令或trap指令)来发起系统调用,请求操作系统提供服务。可以这么理解,用户程序执行”陷入指令“,相当于把CPU的使用权主动交给操作系统内核程序(CPU的状态会从用户态进入核心态),之后操作系统内核程序再对系统调用请求做出相应处理。处理完成后,操作系统内核程序又把CPU的使用权还给用户程序(即CPU状态会从核心态回到用户态)。
这样设计的目的是用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求
操作系统代之执行,保证系统的稳定性和安全性,防止用户程序更改或访问重要的系统资源,影响其它
进程运行。
- 用户态转向核心态的例子【重点】
1)用户程序要求操作系统的服务,即系统调用,如read系统调用
2)发生一次中断
3)用户程序中发生了一个错误状态,如整数除零操作
4)用户程序中企图执行一条特权指令
5)从核心态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令。
6)进程状态变化,如由进程的运行态转向等待态
【注】从用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要用户堆栈切换为系统堆
栈,但这个系统堆栈也是属于该进程的。
若程序的运行是由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以,它不可能是特权指令。