一. 定义
操作系统(Operating System,OS):控制和管理计算机系统的软件和硬件资源,合理组织资源分配;提供用户和其他软件接口和环境;是计算机系统最基本的系统软件。
- 操作系统是系统资源管理者;向上层提供服务;是最接近硬件的软件。
- 操作系统对软硬件资源管理:如打开“任务管理器”如下:
计算机系统层次结构
二. 功能一:资源管理者
处理机管理
- 分配和控制中央处理单元(CPU)的时间,确保多个进程或线程能够公平、有效地使用CPU资源。
- 调度算法,如先来先服务(FCFS)、最短作业优先(SJF)、优先级调度、时间片轮转等,用于决定哪个进程或线程应该获得CPU的使用权。
- 实现进程同步、互斥和通信机制,确保进程间协作的正确性。
存储器管理
- 管理主存储器(RAM),包括内存分配、回收和保护。
- 提供内存管理机制,如分页、分段和虚拟内存技术,以满足多道程序对内存空间的需求。
- 实现内存保护和地址映射,确保每个进程只能访问其被授权的内存区域。
文件管理
- 提供文件的存储、检索、更新和保护功能。
- 管理文件的目录结构,支持文件的按名存取。
- 实现文件的逻辑结构和物理结构之间的转换。
- 提供文件保护和共享功能。
设备管理
- 负责I/O设备(如磁盘、打印机、键盘等)的管理和控制。
- 实现设备的分配和回收,确保设备能够被高效、安全地使用。
- 提供设备的驱动程序接口,使得操作系统能够控制设备的操作。
- 实现设备的缓冲管理,提高I/O操作的效率
三. 功能目标二:实现用户接口(向上层提供服务)
- 硬件:只能读取二进制指令,对外(上层)接口交互性差。
- 操作系统:对硬件实现接口转换,对外(上层)接口交互性好。
- 用户/软件:无需关心底层原理。只需要对操作系统发出命令即可。
GUI图形化用户接口
用户通过形象的图形化界面来对计算机进行操作,不需要记忆复杂命令、参数。
联机/脱机命令接口
- 联机命令接口:=交互式命令接口;特点:逐句执行命令,如:打开cmd命令框,使用time命令,会得到当前时间显示。
- 脱机命令接口:=批处理命令接口;特点:批量执行命令。如:windows系统.bat文件,里面填充了一系列命令。
程序接口
- 定义:可以在程序中使用系统调用方式(API)来使用程序接口;普通用户不能直接使用,只能通过程序代码间接使用。
四. 操作系统的特征
并发性
- 定义:≥2个程序在同一时间间隔内发生。宏观上是同时发生,微观上交替发生。
操作系统是伴随“多道程序技术”出现的,因此程序并发性是与生俱来的。
tips:并行性:≥2个程序在同一时刻发生。即同时发生。
- 单核CPU同一时刻只能执行一个程序,因此只能采用并发执行
- 多核CPU同一时刻能执行多个程序,因此可以采用并行执行,并发执行。【N个核即同时可以执行N个程序】
共享性
定义:即资源共享,系统资源可以被多个并发执行的进程共同使用。
实现方式:互斥共享,同时共享。
- 互斥共享:一个时间段内只允许一个进程访问。
- 同时共享:允许一个时间段内多个进程“同时”访问。
同时:往往指宏观上,微观上可能是交替访问(即分时共享)。
失去并发性,共享性就没有意义;失去共享性,并发性就无法实现。
虚拟
定义:虚拟是指把一个物理实体变为若干逻辑上的对应物。物理实体实际存在,逻辑对应物是用户感受到的。
技术:空分复用(如虚拟存储技术);时分复用(如虚拟处理器);
- 空分复用(例如:虚拟存储技术):用户感受到的空间/内存大小 > 实际物理空间/内存的大小。
举例:内存有限,但是 可以同时运行多个 合计内存占用超过实际大小 的程序。
- 时分复用:将大时间段分成若干小时间段,把若干微小时间段分给各个进程服务。
例子:单核CPU可以同时运行多个程序。【微观上是交替占用cpu运行】
失去并发性,一个时间段只能运行一个程序,就会失去虚拟性的意义,
异步
定义:异步性是指多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,走走停停,以不可预知的速度向前推进。
失去并发性,则只能串行运行程序,就不会出现异步性。
五. 操作系统发展与分类
手工操作阶段
- 最初程序员使用纸带作为程序介质,利用纸带机读取0,1序列。
处理流程:手工装入纸带—> 读取纸带内容----> 进行计算(快)----->手工取出纸带。
- 缺点:用户独占全机,人机速度矛盾导致资源利用率极低。
批处理阶段
- 单道批处理系统:引入脱机输入/输出技术,并由**监督程序(操作系统雏形)**负责控制作业的输入,输出。
- 优点:一定程度上缓解了人机速度矛盾,资源利用率有所提升。
- 缺点:一段时间间隔内,内存中只能运行一个程序,CPU有大量时间等待空闲I/O完成,资源利用率依然很低。
- 多道批处理系统:每次向内存中读入多道程序。操作系统正式诞生,用于支持多道程序并发执行。
- 优点:多道程序并发执行,共享计算机资源。大幅度提升资源利用率,系统吞吐量增大。
- 缺点:用户响应时间长,没有人机交互功能(eg.不能在运行中调试/加入参数等)
分时操作系统
- 计算机以时间片为单位,轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。
- 优点:用户请求可以及时响应,解决了人机交互问题。运行多个用户共享一台计算机,并且用户对操作系统相互独立,感受不到别人的存在。
- 缺点:不能优先处理紧急任务。操作系统对各个用户/作业都是绝对公平,循环提供时间片,不区分任务紧急性。
实时操作系统
- 能够优先响应紧急任务,某些紧急任务不需要时间片排队。
- 计算机系统收到外部信号后及时处理,要在严格时限内处理完毕。
- 主要特点:及时性,可靠性
- 分类:硬实时系统,软实时系统
- 硬实时系统:必须绝对遵守规定时间内完成处理。(如:导弹控制系统,自动驾驶系统)
- 软实时系统:可以接受偶尔违反时间规定。(如:火车订票系统)
其他几种操作系统