一、操作系统的概念(定义)
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配;以提供给用户和其它软件方便的接口和环境;它是计算机系统中最基本的系统软件。
提炼:
1.操作系统是系统资源的管理者。
2.向上层提供方便易用的服务。
3.是最接近硬件的一层软件。
二、操作系统的功能和目标
1.作为系统资源的管理者(向下)
提供的功能:处理机管理、存储器管理、文件管理、设备管理
目标:安全、高效
2.向上层提供方便易用的服务(向上)
(a).GUI:图形化用户接口(Graphical User Interface)(直接给用户使用)
早期:操作系统提供联机命令接口(交互式命令接口)和脱机命令接口(批处理命令接口)
特点:前者是用户说一句,系统跟着做一句。后者是用户说用户说一堆,系统跟着做一堆。
而使用GUI后,用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令和参数。
(b).程序接口(给软件和程序员使用):可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。
系统调用类似于函数调用,是应用程序请求操作系统服务的唯一方式。
3.需要实现对硬件机器的拓展
通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机。
三、操作系统的特征
1.并发
概念:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
区别并行:并行是指两个或多个事件在同一时刻同时发生。
操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。
注意(重要):
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以并发地执行。
2.共享
概念:共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
两种共享方式:
(a).互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
(b).同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。
所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)。
3.虚拟
概念:虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
两种技术:
(a).时分复用技术(如虚拟处理器)
(b).空分复用技术(如虚拟存储器技术)
4.异步
概念:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
四、操作系统的发展与分类
1.手工操作阶段
利用纸带机输入程序,速度特别慢。
缺点:用户独占全机,人机速度矛盾导致资源利用率极低。
2.批处理阶段
(a).单道批处理系统
引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。
优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
缺点:内存中只能有一道程序运行,只有该程序运行结束之后才能调入下一道程序,CPU有大量的时间是在等待I/O完成。资源利用率依然很低。
(b).多道批处理系统(操作系统诞生)
每次往内存中读入多道程序。
优点:多道程序并发执行,共享计算机资源,资源利用率大幅提升,CPU和其它资源更能保持“忙碌”状态,系统吞吐量增大。
缺点:无人机交互功能。用户提交作业后,中间无法控制自己的作业执行,无法调试程序。
3.分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
优点:解决了人机交互问题。
缺点:不能优先处理一些紧急任务。
4.实时操作系统
计算机收到外部信号后及时处理,并且要在严格的时限内处理完成事件。实时操作系统的主要特点是及时性和可靠性。
分类:
(a).硬实时操作系统
必须在绝对严格的规定时间内完成处理。
(b).软实时操作系统
能接受偶尔违反时间规定。
5.网络操作系统
伴随着计算机网络而来,把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享和各台计算机之间的通信。(部署在服务器上的)
6.分布式操作系统
特点是分布性和并行性。系统中各个计算机地位相同,由它们并行、协同完成任务。
7.个人计算机操作系统
Windows某某版本,MacOS等
五、操作系统的运行机制
1.两种指令
(a).特权指令
(b).非特权指令
2.两种处理器状态
(a).核心态(管态/核心态)
(b).用户态(目态)
3.两种程序
(a).内核程序
(b).应用程序
过程:
CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序。
CPU中有一个寄存器叫程序状态字寄存器(PSW),1表示内核态,0表示用户态。
CPU处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令(当然也可以执行非特权指令)。
CPU处于用户态时,说明此时正在执行的是应用程序,此时只能执行非特权指令。
内核态——>用户态:执行一条特权指令,修改PSW为用户态,操作系统让出CPU使用权。
用户态——>内核态:由中断引发,硬件自动完成切换状态过程,触发中断信号意味着操作系统强行夺回操作系统的使用权。
六、中断和异常
1.中断的作用
中断会使CPU由用户态变为核心态,使操作系统夺回CPU的控制权。
中断是让操作系统内核夺回CPU使用权的唯一途径。
没有中断机制,就没有多道程序并发。
2.中断的类型
按照中断来自CPU内部外部分为:
(a).内中断(异常):与当前执行的指令有关
陷阱、陷入(trap):陷入指令(trap),由应用程序故意引发。(注意:陷入指令不是特权指令,而且是执行在用户态的指令,执行结束后传递中断信号并进行处理)
故障(fault):由错误条件,可能被内核程序修复,中断处理完成后返还CPU给应用程序。如缺页故障。
终止(about):由致命错误引发,无法修复,中断处理完成后不返还CPU使用权,直接终止应用程序。如分数运算分母为0,非法使用特权指令。
(b).外中断(狭义的中断):与当前执行的指令无关
时钟中断
I/O中断请求
3.中断机制的基本原理
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。
七、系统调用
概念:系统调用是操作系统提供给应用程序使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
什么功能要用到系统调用?
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作,都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户非法操作。
八、操作系统的体系结构
内核是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。
1.大内核/单内核/宏内核
微内核、进程管理、存储器管理、设备管理等
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护。
2.微内核
时钟管理、中断处理、原语
优点:内核功能少,结构清晰,方便维护。
缺点:需要频繁地在核心态和用户态之间切换,性能低。