文章目录
- 操作系统概述
- 1. 操作系统的概念
- 1.1 操作系统的地位
- 1.2 操作系统的作用
- 1.3 操作系统的定义
- 2. 操作系统的历史
- 2.1 操作系统的产生
- 2.1.1 手动操作阶段(20世纪40年代)
- 2.1.2 批处理阶段(20世纪50年代)
- 2.1.3 执行系统阶段(20世纪60年代初期)
- 2.2 操作系统的完善
- 2.2.1 多道处理系统(20世纪60年代初期)
- 2.2.2 分时系统(20世纪60年代初期和中期)
- 2.2.3 实时处理系统(20世纪60年代中期)
- 2.2.4 通用操作系统(20世纪60年代后期)
- 2.3 操作系统的发展
- 3 操作系统的特性
- 3.1 程序并发性
- 3.1.1 并发与并行的区别
- 3.2 资源共享性
- 3.3 异步性
- 3.4 虚拟性
- 4 操作系统的分类
- 4.1 多道批处理操作系统(batch processing system)
- 4.2 分时操作系统(time-sharing system)
- 4.3 实时操作系统(real time system)
- 4.4 通用操作系统(multi-purpose system)
- 4.5 单用户操作系统(single user system)
- 4.6 网络操作系统(network operating system)
- 4.7 分布式操作系统(distributed operating system)
- 4.8 多处理机操作系统(multi-processor system)
- 4.9 集群操作系统(cluster operating system)
- 4.9.1 集群操作系统与分布式操作系统的区别
- 4.10 云计算操作系统( cloud computing operating system )
- 4.11 嵌入式操作系统(embedded operating system)
- 4.12 多媒体操作系统(MultiMedia operating system )
- 4.13 智能卡操作系统(smart-card operating system)
- 5 操作系统的硬件环境
- 5.1 定时装置
- 5.2 堆与栈
- 5.2.1 一个堆
- 5.2.2 两个栈
- 5.3 寄存器
- 5.4 特权指令与非特权指令
- 5.5 处理机状态及状态转换
- 5.6 地址映射机构
- 5.7 存储保护设施
- 5.8 中断装置
- 5.9 通道与DMA控制器
- 6 操作系统的界面形式
- 6.1 交互终端命令
- 6.2 图形界面(GUI)
- 6.3 触屏用户界面
- 6.4 作业控制语言(JCL Job Control Language)
- 6.5 系统调用命令(API)
- 7. 操作系统的运行机理
- 8. 研究操作系统的几种观点
操作系统概述
- 写在前面
本笔记整理自《计算机操作系统教程》(第4版) 左万利 王英
特别鸣谢:集美大学计算机工程学院罗冬梅老师
1. 操作系统的概念
1.1 操作系统的地位
-
计算机系统是由硬件和软件两部分构成的。软件又分为系统软件和应用软件两类。
-
操作系统的地位:
操作系统是一个最基本也是最重要的系统软件。
-
从虚拟机的层次来看,操作系统是与计算机硬件关系最为密切的一个系统软件,是对硬件系统的第一次扩充。
1.2 操作系统的作用
- 管理系统中的各种资源。操作系统需要管理包括进程(CPU),存储器,文件和设备在内的各种资源。操作系统作为一个资源仲裁者,由它负责资源在各个程序之间的调度,保证操作系统中的各种资源得以有效利用。
- 为用户提供友好的界面。随着计算机走入家庭和办公自动化领域,计算机的使用者大多不是计算机专业人员,界面的友好性比资源利用效率更具实际意义。操作系统提供API和GUI。
1.3 操作系统的定义
定义1-1
- 操作系统是位于硬件层(HAL)之上,所有其它软件层之下的一个系统软件,
- 通过它管理系统中的各种软件和硬件资源,
- 使它们能被充分利用,方便用户使用计算机系统。
2. 操作系统的历史
2.1 操作系统的产生
2.1.1 手动操作阶段(20世纪40年代)
手动操作
- 将程序和数据通过手动操作记录在穿孔纸带上
- 将程序穿孔纸带放到光电输入机上,并通过控制台开关启动光电输入机,将程序输入内存
- 再通过控制台开关启动程序由第一条指令开始执行……
- 在电传打印机上输出运行结果
缺点:
- 用户在作业处理的整个过程中独享系统中的全部资源(系统的资源利用率极低)
- 手工操作所需的时间很长
2.1.2 批处理阶段(20世纪50年代)
(1)联机批处理:将若干个作业合成一批,并将其卡片依次放到读卡机上
监督程序
- 在处理机上有一个专门用来管理输入输出的监督程序。
缺点:
作业由读卡机到磁带机的传输需要由处理器完成。设备的传输速度远低于处理器的速度,在此传输的过程中处理器需要等待。
(2)脱机批处理:把输入输出操作交给卫星机去做
卫星机
缺点:
需要一个专门的卫星机,并且磁带装卸需要人工完成。
2.1.3 执行系统阶段(20世纪60年代初期)
1. 引入了通道
2. 出现通道中断主机功能
- 通道又称I/O处理器,它具有自己的指令系统和运算控制部件,与处理器共享内存资源。
通道的输入输出操作可以同处理器的计算工作完全并行执行,并在输入输出操作完成时向处理器发出中断请求。
作业由读卡机到磁带机的传输以及结果由磁带机到打印机的传输均由通道完成。(假脱机)
2.2 操作系统的完善
2.2.1 多道处理系统(20世纪60年代初期)
适合大型计算任务
- 引入了多道程序设计的概念。
- 当一道作业因为等待I/O传输完成而暂时不能运行时,系统就可以将处理器资源分配给另一个可以运行的程序。
2.2.2 分时系统(20世纪60年代初期和中期)
适合交互式任务
- 脱机方式不利于程序的动态调试,为了达到联机操作的目标,引入联机的分时系统
- 分时系统也是以多道程序设计为基础的。
2.2.3 实时处理系统(20世纪60年代中期)
集成电路
- 集成电路取代了分立元件,计算机性能大大提高。
2.2.4 通用操作系统(20世纪60年代后期)
- 多通道操作系统、分时系统和实时处理系统是传统操作系统的三大类别,它们为通用操作系统的最终形成做好了必要的准备。
- 通用操作系统可以运行成批作业、接收终端请求和同时处理实时任务。
2.3 操作系统的发展
- 硬件体系结构由集中向分散发展,出现了计算机网络
- 随着微处理器技术的迅猛发展,家庭和商用微型计算机得到了普及
- 在科学和军事领域,大型计算任务要求极强的计算和处理能力,多处理器并行成为必然选择
- 嵌入式和智能卡操作系统出现
- 多核技术应运而生
- …
3 操作系统的特性
讨论的出发点是:多个程序
3.1 程序并发性
- 所谓的程序并发,是指计算机系统中同时存在多个程序。
- 多个程序在宏观上同时向前推进
- 并发(concurrent) vs. 并行 (parallel)
3.1.1 并发与并行的区别
- 程序并行不仅要求在宏观上看多个程序都在向前推进,更要求微观上的同时,即要求在绝对的同一时刻有多个程序同时向前推进。(需要多个处理器 )
- 程序并发并不要求微观上的同时,只需从宏观上看多个程序都在向前推进。(虚处理器)
3.2 资源共享性
- 多个程序共用系统中的各种软硬件资源**
- 在操作系统的协调和控制下
3.3 异步性
中断实现交替
- 宏观上同时运行的程序是微观上是交替执行的,交替实现依靠中断,中断使用户程序切换到OS,嵌套中断使一段OS切换到另一段OS,而中断的发生是不确定的,因而OS的运行轨迹是异步,不可预知的。
3.4 虚拟性
- 利用某种技术把一个物理实体变为若干个逻辑实体。CPU,内存,外存。
4 操作系统的分类
4.1 多道批处理操作系统(batch processing system)
- 以脱机操作为标志的操作系统,适合处理运行时间比较长的程序。
第一次出现作业的概念
- 作业(Job):用户程序+数据+作业说明书(JCL Job Control Language编写)
- 输入井作用
- 缓冲(速度匹配作用,即处理数据到达与离开速度不一致)
- 实现作业调度(job scheduling)
- 输出井作用
- 缓冲(速度匹配作用,即处理数据到达与离开速度不一致))
- 特点:
多道:系统中同时容纳多个作业
成批:作业分批进入系统。作业之间的过渡由OS控制,无需用户干预。
4.2 分时操作系统(time-sharing system)
时间片
- 以联机操作为标志的OS,特别适合于程序的动态调试和修改。
- 以时间片来实现分时。
- 特点:
- 多路性:一个主机与多个终端相连;
- 交互性:以对话的方式为用户服务;
- 独占性:每个终端用户仿佛拥有一台虚拟机。
4.3 实时操作系统(real time system)
- 按其应用范围可以分为实时控制和实时信息处理两大类别。
- 实时控制
- 工业控制,军事控制,医疗控制,…….
- 工业控制,军事控制,医疗控制,…….
- 实时信息处理
- 航班定票,联机情报检索,…….
- 航班定票,联机情报检索,…….
- 特点:
- (1)响应及时(prompt response)
- (2)可靠性高(high reliability)
4.4 通用操作系统(multi-purpose system)
- 同时具有:分时、实时、批处理功能的OS。
- 目标:
- 进一步提高资源利用率,提高处理能力
- 为用户提供多模式的服务,扩展应用领域
- 常见模式:
- 分时(前台)+批处理(后台)
- 实时(前台)+批处理(后台)
- 前台任务优于后台任务。
4.5 单用户操作系统(single user system)
PC 个人计算机
- 同一时刻仅有一个用户使用的OS
- 更注重用户的友好性和操作的方便性。
- 特点:
- 单用户
- 多进程
- 多线程
- 虚拟存储管理方式
- 层次结构文件系统
4.6 网络操作系统(network operating system)
- 用于实现网络通信和网络资源管理的操作系统。
- 网络中主机以及相连的外围设备称为HOST,它们可以属于不同的类型。
- 各个HOST上配置的网络操作系统也可能界面形式不同。
- 各个结点具有自治性。
4.7 分布式操作系统(distributed operating system)
- 紧耦合型:建立在多机(多CPU)系统之上
- 松散耦合型:建立在计算机网络的基础之上
- 分布式操作系统特征:
- 统一的操作系统
- 资源的进一步共享:作业可迁移,实现负载均衡
- 可靠性 :不同Host处于等同的地位
- 透明性 :OS掩盖了不同Host在地理位置上的差异
4.8 多处理机操作系统(multi-processor system)
- 具有公共内存和公共时钟的多CPU系统,也成为**“紧耦合系统”。**
- 主要形式——对称多处理机系统(SMP)
- 系统中的多个CPU型号和地位相同,没有主从关系。
4.9 集群操作系统(cluster operating system)
- 建立在局域网络基础上,是指一种由多台计算机通过软件互相连接组成的并行或分布式系统,可以作为单独,统一的计算资源来使用。
- 关键技术分为:网络层,结点机及操作系统层,集群系统管理层和应用层
4.9.1 集群操作系统与分布式操作系统的区别
- 分布式指将不同的业务分布在不同的地方。
- 集群指将几台服务器集中在一起,实现同一业务。
- 分布式结构中的每一个结点都可以做集群,而集群不一定就是分布式的。
4.10 云计算操作系统( cloud computing operating system )
云意味着海量,极大的数量级
聚水(微小)成云(大量)
- 云的思想是把互联网中计算能力比较弱的各个结点统一管理起来,构成一个功能强大的计算机系统。
- 云计算操作系统又称云操作系统,云计算中心操作系统,是以云计算,云存储技术作为支撑的操作系统,是云计算后台数据中心的整体管理运营系统,它是指架构于服务器,存储,网络等基础硬件资源和单机操作系统,中间件,数据库等基础软件之上的,管理海量的基础硬件,软件资源的云平台综合管理系统。
4.11 嵌入式操作系统(embedded operating system)
提供轻量级的支持多道程序设计的环境
- 嵌入式系统大多用于控制,因而具有实时特性。
- 特点:
- 可裁剪性:适应差别巨大的硬件配置和应用需求
- 可移植性:不同硬件平台的移植
- 可扩展性:易于在原有的OS的基础上不大改的情况下拓展新的功能。
- 微内核一般性的基础功能:处理器调度,基本内存管理,通信机制,电源管理。
4.12 多媒体操作系统(MultiMedia operating system )
- 除具有一般OS的功能外,还具有多媒体底层扩充模块,支持高层多媒体信息的采集,编辑,播放和传输等处理功能的系统。
- 分类:
- 具有编辑和播放双重功能的开发系统
- 以具备交互播放功能为主的教育/培训系统
- 用于娱乐和学习的家用多媒体系统
4.13 智能卡操作系统(smart-card operating system)
最小的操作系统
- CPU的计算能力和存储容量都有严格的限制
5 操作系统的硬件环境
5.1 定时装置
- 绝对时钟:记载实际时间,不发中断。其值保存于硬件寄存器中,可由程序设定和修改。一般通过特权指令完成。
- 间隔时钟:“闹钟”,定时发生中断,一般间隔单位为“毫秒”。
- 间隔时钟是实现多道程序的基础——保证操作系统获得控制权。
- 其它事件引起的中断也进入操作系统,但是否发生,何时发生没有保障,只有时钟中断最可靠。
5.2 堆与栈
- 每个运行程序都有一个堆和两个栈(一个用户栈和一个系统栈)
5.2.1 一个堆
- 堆属于用户空间,用于保存程序中的动态变量。由操作系统分给运行程序,操作系统为用户分配基本大小为8KB的堆。
5.2.2 两个栈
- 用户栈属于用户空间。
- 保存用户函数调用时的返回点,参数,局部变量,返回值
- 传送用户程序调用操作系统时传给操作系统的参数(较长的参数,如文件名)。比较小的数据用寄存器传递
- 系统栈:内存中OS空间的一个固定区域
- 保存中断现场(包括PC(指令计数器)和PSW(程序状态字))
- 保存OS子程序间相互调用的返回点、参数、局部变量、返回值
5.3 寄存器
-
程序状态字:
-
指令计数器(PC):运行程序下一条指令的地址
-
栈指针SP:管态和目态各一个,分别保存系统栈和用户栈的栈顶位置
-
通用寄存器(regs):存数和计算
-
浮点寄存器(fregs):存数和计算
-
地址映射寄存器:基址和限长寄存器
5.4 特权指令与非特权指令
- 特权指令(privileged instruction)
只有在管态才能执行的指令 (不仅影响运行程序本身,也影响其他程序,甚至整个系统)
关中断,置程序状态字,停机, IO,…….
一般只有OS才能执行,一般用户程序不可执行 - 非特权指令(non-privileged instruction)所有程序可用(不影响其它程序和OS)
取数,四则运算,……
5.5 处理机状态及状态转换
处理机状态 | 描述 |
---|---|
系统态(管态,核态) | OS运行时所处的状态,可执行硬件提供的全部指令,包括特权指令和非特权指令 |
用户态(目态,常态) | 一般用户程序运行时所处的状态,只能执行非特权指令,非要执行特权指令,硬件将产生中断,进入OS,特权指令的执行将被制止 |
- 状态转换
- 管态 —(置程序状态字)—> 目态
- 目态 —(中断)—> 管态
5.6 地址映射机构
- 程序在内存的存放位置是随机确定的,而且可以改变。因此程序不能采用物理地址,而只能采用逻辑地址。
- 逻辑地址(虚地址):程序中产生的地址
- 物理地址(实地址):存储器地址
- 为了使每个程序的基本单位都能从0开始编址,硬件需要提供地址映射机构,负责将运行程序所产生的逻辑地址转换为内存物理地址。
5.7 存储保护设施
- 程序可能会产生错误地址使得:
- 侵犯操作系统空间
- 侵犯其它用戶空间
- 当发生存储越界错误或者非法存取错误时,硬件的存储保护设施能够立即发现,并触发中断进入管态加以制止。
5.8 中断装置
- 发现并响应中断的硬件机构。
功能如下:
- 发现中断:中断发生时能够识别。有多个中断同时发生时,按优先级别响应最高者。
- 响应中断:
- 将当前的中断向量(PSW,PC)压入系统栈,
- 然后根据中断原因将新的中断向量(PSW,PC)取出并送到寄存器中。
5.9 通道与DMA控制器
- 通道:负责I/O操作的处理器,具有自己的指令系统。
- DMA(direct memory access):直接存储器存取。类似于通道,但是没有专门的指令系统。受CPU委托完成数据在内存和块型设备之间的传输,一般一次只传输一个数据块。
6 操作系统的界面形式
6.1 交互终端命令
* 交互终端命令是**分时操作系统**所具有的界面形式。
- UNIX系统的交互式命令解释程序由shell(外壳)提供,而shell并不属于系统核心,而是运行于核心之外的目态程序,它通过系统调用与核心打交道,完成命令所要求的动作。
- 优点:
- 缩小核心 (shell运行在核心之外)
- 不同用户可以选择不同界面 (核心之外可以有多个shell,每个不同的shell连接一个不同的终端界面)
6.2 图形界面(GUI)
- 本质上也属于交互式界面形式,只不过界面由命令行转变为图形提示和鼠标操作。
6.3 触屏用户界面
- 常见于手机和平板电脑上,用户通过触摸和手的姿势产生中断,与操作系统进行交互。
6.4 作业控制语言(JCL Job Control Language)
- 这是批处理系统所具有的界面形式。
- 系统为用户提供一种作业控制语言。当用户欲提交批作业时,他使用这种语言书写作业说明书,该说明书以操作系统所能识别的形式描述一个用户作业的处理步骤,然后将此说明书与程序、数据一道提交给操作系统。
6.5 系统调用命令(API)
- 系统调用命令也称为应用程序接口(API),这是在用户程序级别上与操作系统打交道的方式。
- OS为用户提供一组系统调用命令,用户可以将这些系统调用命令写在程序中。
- 当用户程序运行过程中执行到这些系统调用命令时,将发生自愿性中断,进入操作系统。
7. 操作系统的运行机理
- 中断是程序切换的必要条件,即若发生了程序切换则必定发生了中断。CPU的使用权限无法由一个程序直接交付给另一个程序,中间必须由操作系统来介入,而使得操作系统介入的操作就是中断。
- 但是发生中断则不一定是因为发生了程序切换,还存在有其它可能引起中断的事件。
- 在中断例程完成后,既可能继续执行程序1,也可能决定执行程序2,这与操作系统的调度原则有关。
8. 研究操作系统的几种观点
观点类型 | 观点内容 |
---|---|
进程观点 | 进程观点将操作系统看成若干个可以独立运行的程序和一个对这些程序进行协调管理的核心组成,这些运行的程序称为进程,每个进程完成某一特定任务。 |
资源管理观点 | 资源管理观点认为操作系统是一个资源管理程序,所管理的资源包括硬件资源(处理器、内存设备)和软件资源 (文件、数据等),用户在使用这些资源前需要向操作系统提出申请,用完后将资源归还给操作系统。 |
虚拟机观点 | 虚拟机的观点认为操作系统是一个虚拟机,它是硬件上运行的第一层系统软件,它对硬件功能进行第一次扩充。 |