1、操作系统引论
1.1定义
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。
1.2特征
操作系统的特征:
并发性:并发(Concurrency)是指两个或多个事件在同一段时间间隔内发生。宏观上有多个程序在同时运行的状态,微观上是交替发生的。
并行是指在同一时刻计算机内有多程序在执行,这是多CPU系统中才有的概念。
补充:
单核CPU同一时刻只能执行一个程序,各个程序只能 并发地执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以 并行地执行。
共享性:共享(Sharing)是指多个用户或者程序共享操作系统中的软硬件资源。共享可以提高各种系统资源的使用效率。
互斥共享方式
系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
同时共享方式
系统中的某些资源,允许同一个时间段内由多个进程“同时”对它们进行访问
生活实例:
互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。
同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。而在微观上看,两个进程是 交替访问硬盘的。
虚拟性:虚拟性(Virtuality)是指通过某种技术把一个物理实体变成若干逻辑上的对应物。另外,操作系统也用到了很多虚拟技术来改善系统的性能,如虚拟存储,是为了提高内存利用率,在内存中部分装入程序,其余部分放在虚拟内存,也就是硬盘的一部分。SPOOLING技术则是为了减小等待和请求的重复申请,允许硬件设备虚拟为多台虚拟设备,实现脱机工作的方式。
虚拟技术
空分复用技术(虚拟存储器):内存——硬盘系统一定程度上解决了内存容量不够的问题
时分复用技术(虚拟处理器):微观上处理机在各个微小的时间段内交替着为各个进程服务
异步性:异步性(Asynchronism)是指系统中的多个程序以不可预知的速度向前推进。由于系统中的处理器资源往往是稀缺的,因此程序不可能一气呵成,而是以走走停停的方式运行的。
注意:如果失去了并发性,即系统只能 串行地运行各个程序,那么每个程序的执行会一贯到底。 只有系统拥有并发性,才有可能导致异步性。
2、操作系统的目标和功能
2.1计算机系统资源的管理者
处理机管理
在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。
进程管理的主要功能包括:进程控制、进程同步、进程通信、死锁处理、处理机调度等。
存储器管理
存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率
存储器管理的主要功能包括:内存分配和回收、地址映射、内存保护与共享和内存扩充
文件管理
计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分成为文件系统。
文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
设备管理
设备管理的主要任务是完成用户提出的I/O请求,方便用户使用各种设备,并提高设备的利用率
主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。
2.2 用户与计算机硬件系统之间的接口
操作系统为用户提供接口,为了让用户方便地、快捷地、可靠的使用计算机硬件并运行自己的程序。操作系统提供地接口分为两类:
命令接口:用户利用操作命令来组织和控制作业的执行。使用命令接口进行作业控制的主要方式有两种:
联机控制方式(交互式命令接口):如控制台命令窗口cmd
脱机控制方式(批处理命令接口):如运行***.bat**文件
程序接口:编程人员可以使用它们来请求操作系统服务。
GUI用户图形界面
2.3 扩充硬件机器
操作系统对硬件机器进行拓展:将 CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。
3、操作系统的发展
3.1 批处理系统
单道批处理系统
把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序,在它的控制下,使这批作业能 一个接一个地连续处理。
具体实施:首先监督程序将磁带上的第一个作业交给内存,并把运行控制权交给该作业;当该作业处理完成时,又把控制权还给监督程序,再由监督程序把磁带上下一个作业调入内存进行处理,这样计算机自动的一个作业接着一个作业进行处理,直到磁带上所有的作业全部完成。
缺点:系统中的资源得不到充分利用(在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU处于等待状态,必须在完成I/O后才能运行)。
多道批处理系统
基本概念:用户所提交的作业先存放在外存上并形成一个队列,称为 后备队列。然后由 作业调度程序按一定的算法,从后备队列中选择若干作业进入内存,使它们共享CPU和系统中的各种资源。(这样可以利用程序A执行I/O操作而暂停执行时的CPU空挡时间,再调度执行另一道程序B运行,同样可以利用程序B在I/O操作时的CPU空挡时间,再调度程序C运行,使多道程序交替运行)
形成原因
为了提高资源的利用率和系统吞吐量
优点
资源利用率高
系统吞吐量大
缺点
平均周转时间长
无交互能力
待解决的问题
处理机争用问题:既要满足各道程序运行的需要,又要提高处理机的利用率
内存分配和保护问题:系统应为每道程序分配必要的内存空间,并使他们互不影响。
I/O设备分配问题:采用适当的策略分配系统中的I/O设备,达到既能方便用户对设备的使用,又能提高设备的利用率
文件的组织和管理问题:有效的组织存放系统中的大量程序和数据,使其能便于使用,又能确保数据的安全
作业管理问题:对系统中所有的作业进行合理的组织
用户与系统的接口问题:使用户能方便的使用操作系统。
3.2 分时系统
基本概念:在一台主机上连接了多个配有显示器和键盘的终端并由此组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。
形成原因:为了满足用户对人机交互和共享主机的需求;
特征
多路性:运行多台终端同时连接到一台主机上,并按分时原则为每个用户服务。
独立性:每个用户在各自的终端上进行操作,互不影响(给用户的感觉就是像他一个人独占主机进行操作)
及时性:用户的请求能在很短的时间内获得响应(根据人们所能接受的等待时间确定的,通常仅为1~3秒)
交互性:用户可以通过终端与系统进行广泛的人机对话
3.3 实时系统
基本概念:系统能及时响应外部事件的请求,在规定时间内完成对该时间的处理,并控制所有实时任务协调一致地运行
类型
工业控制系统
信息查询系统
多媒体系统
嵌入式系统
3.4 微机操作系统
配置在微型机上的操作系统
分类
单用户单任务操作系统:只允许一个用户上机,且只允许用户程序作为一个任务运行。
单用户多任务操作系统:只允许一个用户上机,但运行用户把程序分为若干个任务,使它们并发执行。
多用户多任务操作系统:允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行。
3.5 网络操作系统
网络操作系统是网络上各计算机能方便而有效地共享网络资源,为网络用户提供所需的各种服务的软件和有关规程的集合。是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。
功能:
处理机管理、存储器管理、设备管理和文件管理
提供高效、可靠的网络通信能力;
提供多种网络服务功能,如:远程作业录入并进行处理的服务功能;文件转输服务功能;电子邮件服务功能;远程打印服务功能。
3.6 嵌入式操作系统
嵌入式操作系统(简称:EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。
3.7 分布式操作系统
分布式软件系统是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。
4、 操作系统运行机制
4.1、两种指令
特权指令:作为系统资源的管理者,操作系统可以使用一些直接关系重大的指令(内存清零等),这些指令被称为特权指令,而且应用程序没有办法直接使用特权指令,这保证了操作系统的安全。
非特权指令:应用程序可以使用的指令,如加减乘除指令等。
CPU在设计的时候便已经划分出了 特权指令以及非特权指令,因此在执行这条命令前CPU就可以先判断指令的内容。
4.2 、两种处理器状态
CPU有两种状态:
内核态(或称核心态,管态)以及用户态(目态)。当CPU处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令;
当CPU处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。
在CPU中有一个寄存器叫做 程序状态寄存器(PSW),该寄存器的01状态来表示此时处于内核态还是用户态
用户态与内核态之间的相互转换:
内核态-->用户态:需要执行一条特权指令(指令内容是修改PSW寄存器状态),此时内核态转变为用户态,CPU主动让出使用权。
用户态-->内核态:由“中断”引发,当CPU检测到中断时,操作系统会强制将CPU变为内核态夺回CPU使用权,再执行与中断有关的一系列操作。
栗子助理解
① 刚开机时,CPU 为“内核态”,操作系统内核程序先上CPU运行
② 开机完成后,用户可以启动某个应用程序
③ 操作系统内核程序在合适的时候主动让出 CPU,让该应用程序上CPU运行
④ 应用程序运行在“用户态”
⑤ 此时,一位黑客在应用程序中植入了一条特权指令,企图破坏系统…
⑥ CPU发现接下来要执行的这条指令是特权指令,但是自己又处于“用户态”
⑦ 这个非法事件会引发一个中断信号
⑧ “中断”使操作系统再次夺回CPU的控制权
⑨ 操作系统会对引发中断的事件进行处理,处理完了再把CPU使用权交给别的应用程序
4.3、两种程序
内核程序vs应用程序
内核程序:实现操作系统的程序称为内核程序,许多内核程序结合在一起便组成了操作系统内核。
应用程序:普通程序员借助编程工具以及高级语言所完成的程序叫做应用程序。
4.4 、中断
4.4.1中断的产生
引入终端机制,实现多道程序并发执行。
本质:发生中断意味着需要操作系统介入,开展管理工作。(比如用户进程的切换)
4.4.2 中断和异常的关系
内中断(异常)
内中断也称异常。异常与当前执行的指令有关,中断信号来自 CPU 内部。
应用程序执行陷入指令,会主动将 CPU 控制权还给操作系统内核。 “系统调用” 就是通过陷入指令完成。此外,异常还包括缺页故障、整数除 0、非法使用特权指令等
外中断(中断)
外中断也称中断。中断与当前执行的指令无关,中断信号来自 CPU 外部。
例如:
时钟中断——由时钟部件发来的中断信号
I/O 中断——由输入 / 输出设备发来的中断信号
每一条指令执行结束时,CPU 都会例行检查是否有外中断信号。
4.5 系统调用
系统调用功能分类
系统调用过程
应用程序可以通过系统调用来请求获得操作系统内核的服务
5. 操作系统的体系结构
非内核与内核图示:
5.1 大内核
将操作系统的主要功能模块都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
5.2 微内核
只把最基本的功能(与硬件联系紧密)保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换,性能低
助你理解
典型的 大内核/宏内核/单内核 操作系统:Linux、UNIX
典型的 微内核 操作系统:Windows NT