操作系统(一)操作系统概述
大纲一、操作系统的概念1. 操作系统的地位从虚拟机的角度来看,软件是分层次的。系统和应用软件都可分层次,操作系统软件位于最底层。操作系统是对硬件部件的第一次扩充。(难道还有第二次?)层次关系具有穿透性:高层软件可以调用所有低层的软件,并与硬件打交道。库调用:调用系统库;系统调用:调用操作系统;机器指令:调用硬件2.操作系统的作用3. 操作系统的定义操作系统是位于硬件层之上、所有其他系统软件之下的一
目录
大纲

一、操作系统的概念
1. 操作系统的地位

从虚拟机的角度来看,软件是分层次的。系统和应用软件都可分层次,操作系统软件位于最底层。操作系统是对硬件部件的第一次扩充。(难道还有第二次?)

层次关系具有穿透性:高层软件可以调用所有低层的软件,并与硬件打交道。库调用:调用系统库;系统调用:调用操作系统;机器指令:调用硬件
2.操作系统的作用

3. 操作系统的定义
操作系统是位于硬件层之上、所有其他系统软件之下的一个系统软件,通过它来管理系统中的各种软件和硬件资源,使它们能被充分利用,方便用户使用计算机系统。
二、操作系统的历史
1. 操作系统的产生
1.1 手动操作阶段
这一阶段所取得的成就主要是汇编语言和汇编系统的出现,这一定程度上降低了用户使用计算机的负担。
1.2 批处理阶段
- 联机批处理
原理:
除了操作员将若干个作业合成一批,并将卡片依次放到读卡机上,剩下的所有步骤都由监督程序控制完成。
优点:
实现了作业之间转换的自动化,大大缩短了手动操作的时间。
缺点:
在传输过程中处理器仍然会浪费很多时间,因为每个过程都需要监督程序去控制,在作业传输的过程中监督程序就不能进行实质性的运算,效率就很低。
- 脱机批处理
原理:
把输入输出操作交给卫星机来处理,主机专门处理运算。
优点:
克服了联机批处理的缺点
缺点:
需要一个专门的卫星机,并且磁带装卸需要人工完成。
- 批处理系统是操作系统的雏形。在此阶段,其他软件也有了相应的发展,如输入输出标准程序、高级语言编译程序、连接装配程序。
1.3 执行系统阶段
硬件方面的两个进展:
- 引入通道
- 出现通道中断主机功能
通道
又称I/O处理机,它具有自己的指令系统和运算控制部件,与处理器共享内存资源。
假脱机(spool):
通道可以首处理器的委托执行通道程序以完成输入输出操作,通道的输入输出操作可以同处理器的运算工作完全并行执行,并在输入输出操作完成时向处理器发出中断请求。
- 执行系统阶段是操作系统的初级阶段,它为操作系统的最终形成奠定了基础。
2. 操作系统的完善
2.1 多道批处理系统
在当前的程序不能运行时,如果内存中有多道作业可以选择将资源分配给另一个可以运行的程序。‘
优点:将多道程序设计的概念引入操作系统中。
2.2 分时系统
分时系统由一台主机和若干台与其相连的中断构成,用户可以在终端上输入和运行程序,系统采用对话的方式为各台终端上的用户服务。
优点:
便于用户的动态修改和调试,缩短了程序的处理周期。
多道批处理系统和分时系统,前者适用于处理大型科学计算任务,后者适用于处理交互式任务,他们是现代操作系统的两大主要类别。
- 多道批处理系统和分时系统标志着操作系统已经进入完善阶段
2.3 实时处理系统
多道批处理系统、分时系统和实时处理系统是传统操作系统的三大类别,为通用操作系统的最终形成做好了必要的准备。
2.4 通用操作系统
可以同时处理实时任务、接收终端请求、运行成批作业。
三、操作系统的特性
3.1 并发性
并发性是指在计算机中同时存在着多个程序。

3.2 共享性
资源共享是指操作系统与多个用户程序共用系统中的各种资源,这种控制是在操作系统的控制下实现的。
解释:
为了实现这些控制,os肯定是需要一些资源的,但是计算机固定的资源是有限的,而在程序运行的过程中资源的使用情况是不可预知的,所以os需要对当下的资源使用情况进行监控,以便合适合理的进行进程的调度和资源的分配。
3.3异步性(随机性)
宏观上同时运行的程序有多个,这些程序(连同操作系统程序)是交替执行的。
- 多个程序不可预知的速度前进
- 多个程序间不知道进行何种交叉
- 多个程序多次执行对应的交叉一般不同
并发性必然导致异步性和随机性
3.4虚拟性
虚拟,是利用某种技术把一个物理实体变为若干个逻辑实体。物理实体是实际存在的,逻辑实体是虚化的。
- 虚拟CPU
- 虚拟存储
- 虚拟设备
实际上,操作系统就是一个大的虚拟机,这个大的虚拟机可以通过一层层的虚拟扩充来实现。
四、操作系统的分类
4.1 多道批处理操作系统
batch processing operating system
- ⚠️以脱机操作为标志的操作系统,特别适合与处理运行时间长的程序。
用户程序、数据以及作业说明书合称作业。
输入井:用于保存已经输入但是还未处理的作业
输出井:用于保存已经处理好但是尚未输出的结果
输入井和输出井分别为磁盘或磁鼓上的两个区域。
- 设置输入井和输出井的目的:
- 协调输入输出设备速度与处理器之间的差异
- 为作业调度提供有利条件,因为输入井中有多个作业,可以根据需要自由的在这些作业中进行选择,不必非得按照输入的顺序进行,而是会去自己寻找最合适的顺序,使得内存中运行的作业搭配合理。
- 多道批处理系统的特点:
- 多道(内存中同时存在多道正在处理的作业、输入井中存在多个尚未处理的作业)
- 成批(成批进入系统、处理、离开系统,作业间的过渡由操作系统控制)
4.2 分时操作系统
- ⚠️以联机操作为标志的操作系统。特别适合程序的动态调试和修改。

为终端用户提供一组交互终端命令(用户与操作系统之间交互的界面),以时间片为单位轮流地为各个交互终端用户服务。
- 分时操作系具有3个特性:
- 多路性(多路调制性):一个主机可以同时与多个终端相连。
- 交互性,系统以对话的方式为各个终端用户服务。
- 独占性,每个用户仿佛独占整个计算机系统。
4.3 实时操作系统
系统能够对外部请求做出及时的响应。

- 实时操作系统的2个基本特性:
- 及时性
- 可靠性
4.4 通用操作系统
同时具有分时、实时和批处理功能的os称为general purpose operating system
在通用操作系统中可能同时存在3种任务:实时任务、分时任务、批处理任务
- 任务按照急迫程度进行划分:
- 实时任务
- 分时任务
- 批处理任务
前后台系统:通常将实时任务和批处理结合,或者分时任务和批处理结合。批处理都是后台,前台任务优于后台。
4.5 单用户操作系统
single-user operating system 是为个人计算机所配置的操作系统,主要特点单任务,同一段时间内仅为同一用户服务。
单用户操作系统的设计及实践可以采用多道批处理系统中所采用的技术,如多进程和多线程、虚拟存储管理方式、层次结构文件系统等。
4.6 网络操作系统
用于实现网络通信和网络资源管理的操作系统称为网络操作系统network operating system。
HOST:网络中的主机以及相连的外围设备
各个HOST上配置有网络操作系统,它们的界面形式可能有所不同,各个节点具有自治性。
- 建造网络操作系统的2个主要目的:
- 相互通信
- 共享资源(不仅可以使用本地HOST上的资源,还可以使用其他HOST上的资源)
4.7 分布式操作系统
distributed operating system(DOS)

分布式操作系统是网络操作系统的更高级形式,保持网络操作系统的全部功能。
- 同时具备如下特征:
- 统一的操作系统(所有的HOST的DOS统一,界面相同)
- 资源的进一步共享(作业可以由一个HOST任意迁移到另一个HOST进行处理,因为DOS都是一样的,但是在网络操作系统中不行,实现处理器资源的共享,从而达到整个系统的负载平衡)
- 可靠性(没有主从地位,任何一个HOST的失效都不会影响整个系统)
- 透明性(掩盖了不同HOST在地理位置上的差异)
4.8 多处理器操作系统
具有公共内存和公共时钟的多CPU系统称为multiprocessor operating system或紧耦合系统。建立在多处理器上的os也称为并行操作系统。
多CPU系统中的多个CPU若型号和地位相同,没有主从关系,称对称多处理(SMP)。对称多处理是多处理器操作系统的主要形式。
CPU属于主动型资源,CPU数量的增加对管理的复杂度的增加有质的变化,原因:
- 进行多个处理器的资源管理
- 进行多处理器的并发控制
4.9 集群操作系统
cluster operating system 是建立在局域网络的基础上,是指一种由多台计算机通过软件相互连接组成的并行或分布式系统,可以作为单独、统一的计算资源来使用。

分布式和集群的区别:
分布式是指将不同的业务分布在不同的地方;集群指的是将几台服务器集中在一起,实现统一业务。分布式结构中的每一个结点都可以做集群,而集群并不一定就是分布式的。
4.10 云计算操作系统
☁️的思想就是把互联网中计算能力比较弱的各个结点统一管理起来,构成一个功能强大的计算机系统。
cloud computing operating system是以云计算、云存储技术作为支撑的操作系统,是云计算后台数据中心的整体管理运营系统,它是架构于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件之上的,管理海量的基础硬件、软件资源的云平台综合管理系统。
4.11 嵌入式操作系统
embedded operating system
- 与一般操作系统相比差别:
- 可裁剪性
- 可移植性
- 可扩展性
嵌入式os一般采用微内核(micro kernel)结构。微内核就是非常小的系统核心,其中只包含绝对必要的操作系统功能(处理器掉地、基本内存管理、通信机制、电源管理),其他功能作为应用服务程序在目态下运行。也有单核结构的嵌入式操作系统,速度快、适应性不如微内核。微内核恰好相反。
4.12 多媒体操作系统
多媒体操作系统是指除具有一般操作系统的功能外,还具有多媒体低层扩充模块,支持高
层多媒体信息的采集、编辑、播放和传输等处理功能的系统。
4.13 智能卡操作系统
最小的操作系统当数智能卡操作系统(smart card operating system),这种如信用卡大小的
设备上包含一个 CPU 芯片,但是对 CPU 的计算能力和存储容量都有严格的限制。
有些智能卡是面向 Java 的,即在其智能卡的 ROM 中保存一个 Java 虚拟机(Java virtual
machine,JVM)的解释程序,可以将 Java 小应用程序下载到智能卡上并由 JVM 解释执行。有些智能卡可以同时处理多个 Java 小应用程序,多任务调度成为必需的功能。资源管理和保护也是多个小应用程序并发执行的必要条件,这些功能必须由智能卡上的操作系统来提供。
五、操作系统的硬件环境
5.1 定时装置
为实现系统的管理和维护,硬件必须提供定时装置(实时时钟)。硬件时钟通常有两种:绝对时钟、间隔时钟
- 绝对⏰
就是记录真正意义上的时间 - 间隔⏰
每隔固定时间,发生一次时钟中断。只有时钟中断是最“靠谱”的中断,因为它的发生是可以预知的,规定好的。间隔⏰是现代操作系统的基础。
利用间隔⏰可以实现逻辑时钟:50ms逻辑时钟,设置一个变量为5每次-1,直到0.一次10ms,最后就是50ms。
5.2 堆与栈
每个运行程序都有一个堆和两个栈——系统栈和用户栈。
- 堆
- 属于用户空间,用于保存程序中的动态变量。
- 动态变化细节:一开始os会为运行程序自动分配一部分堆的空间,如果以后使用的变量的空间超过当前分配的了,就产生中断,然后os再分配。
- 用户栈
- 属于用户空间,用于保存用户函数调用时的返回点、参数、局部变量、返回值;传送调用操作系统时传给操作系统的参数。
- 系统调用时传递参数的两个载体:用户栈、寄存器
- 寄存器用于比较小的数据(一个字符、一个整数、一个浮点数)
- 用户栈用来传递比较长的参数(文件名)
- 系统栈
- 核心栈,逻辑上属于操作系统空间。
- 用途2个:保存操作系统子程序间相互调用的返回点、参数、局部变量返回值;中断响应时保存中断现场(PSW、PC和中断处理过程中用到的寄存器值)
- 嵌套中断被中断程序的现场信息依次压入,中断返回时逆序弹出。
- 程序的切换伴随着堆、用户栈、系统栈的切换,但硬件的栈指针是多个进程共享的。
5.3 寄存器
程序切换时,一般需要把寄存器当前值保存起来,再次运行前再恢复。
寄存器组成:
- 程序状态子字(program status word,PSW)[IBM360/370]
16B组成,表示当前程序的运行环境
详细描述:
第0~6位:7个通信通道
第7位:对应外中断
第12~15位:CMWP
第13位:开关中断位M
第15位:系统状态位P
第16~31位:中断码,保存中断字(详细中断信息)
第36~38位:程序屏蔽位,分别对应定点溢出、十进溢出、阶下溢
第39位:备用
有些中断不可屏蔽:时钟、地址越界、缺页、非法指令
- 指令计数器(PC):记载运行程序下一条指令的地址
- 栈指针(SP):管态和目态各一个,分别保存系统栈和用户栈的栈顶位置
⚠️前面说过随着程序的切换,硬件的栈指针是共享的,注意这里虽然说硬件的栈指针是共享的但是并没有提到栈指针只有1个,只不过在硬件实现上每一个当前在运行的进程的栈指针使用的是硬件中的同一个位置控制栈指针。 - 通用寄存器(regs):若干个,用于存数和计算,还可用来保存系统调用时传给操作系统的参数以及由操作系统传给用户的返回值。
- 浮点寄存器(fregs):若干个,用于存数和计算,也可以用来保存系统调用时传给操作系统的参数,以及由操作系统传给用户的返回值。
- 地址映射寄存器,一般有一对,分别记录内存区域的起始地址和长度,分别称为基址寄存器(base)和限长寄存器(limit)
5.4 特权指令与非特权指令

- 特权指令
只能在管态下才能执行的指令。(开关中断、修改地址映射寄存器、置程序状态字、停机)因为这些指令的执行不仅影响到自身还影响到其他程序甚至操作系统,所以要对这些指令的运行状态进行限制。 - 非特权指令
在管态和目态下都能执行的指令。(数据传送指令、算术运算指令)只与运行程序本身有关,不会影响其他程序的运行。
5.5 处理器状态及状态转换
处理器状态 = 机器状态 = 硬件状态
- system mode/kernel mode/supervisor mode
操作系统运行时所处的状态。
特点:
- 可以执行硬件所提供的全部指令(特权和非特权)
- 利用特权指令可以修改程序状态字。由于机器状态存储在程序状态字中也就是在管态下可以对机器状态进行改变。
- object mode/user mode
一般用户运行下所处的状态
特点:
- 只能执行硬件所提供的部分指令(非特权)
- 一旦在目态下执行特权指令,硬件产生中断,进入os,特权指令的执行将被制止(防止用户有意或无意地侵入系统,从而起到保护系统的作用)
- 保护级别5级:R0~R4,R0最高,R4最低,目前计算机的操作系统上都只使用了R0和R4这两个状态,操作系统运行于R0,用户程序运行于R4.
5.6地址映射机构
为了使每个程序的基本单位都能从0开始编址,不能采用物理地址,只能使用逻辑地址。而逻辑地址到物理地址到映射基于地址映射机构,它在较大程度上决定了存储管理方式。
5.7 存储保护设施
硬件提供存储保护设施,当发生存储越界错误或非法存取错误时,硬件的存储保护设施能够立即发现,并触发中断进入管态加以制止。
5.8 中断装置
发现并响应中断的硬件机构称为中断装置。
- 中断装置的2个功能:
- 发现中断:中断发生时能够识别并按照优先级别响应
- 响应中断:将目前运行进程的中断向量PSW和PC压入系统栈,然后根据中断原因到指定的内存单元将新的中断向量取出并送到寄存器中,从而控制转到相应的中断处理程序。
5.9 通道与DMA控制器
- 通道是专门负责输入输出操作的处理器,具有自己的指令系统,可以执行通道程序,完成 CPU 委托的输入输出操作任务。
- DMA(direct memory access,直接存储器存取)是与通道相似的输入输出方式,DMA 控
制器接受 CPU 的委托完成数据在内存与块型设备之间的传输。与通道相比,DMA 控制器相对
简单,没有专门的指令系统,一般一次只能传输一个数据块。
六、操作系统的界面形式

七、操作系统的运行机理
CPU的使用权在两个进程之间切换必定经历中断。程序P1不能直接将操作系统的使用权交给P2,而是要转交操作系统来实现这一行为,而操作系统如果想要实现就要首先获得CPU的使用权,而os取代P1获得CPU使用权必须通过中断。操作系统在执行完中断之后,即可继续执行P1,也可决定执行P2(os保存P1的状态信息,然后恢复P2的状态信息并通过置程序状态字指令使系统转到目态运行P2),与CPU调度原则有关。
八、研究操作系统的几种观点
- 进程观点
将os看成由若干个可以独立运行的程序和一个对这些程序进行协调管理的核心组成,这些运行的程序称为进程,每个进程完成某一特定任务。 - 资源管理观点
计算机系统中配备多种软硬件资源,这些资源通常是独占型的,即一次只能分配给一个请求者。并发运行时资源使用会发生冲突,认为os是一个资源管理程序,所管理的资源包括硬件资源(处理器、内存设备等)和软件资源(文件、数据等),这种管理策略应该是公平和高效的。 - 虚拟机观点
认为os是一个虚拟机。
更多推荐



所有评论(0)