操作系统定义
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
操作系统的功能和目标
-
作为系统资源的管理者
功能:处理机管理、储存器管理、文件管理、设备管理
目的:安全、高效 -
作为用户与计算机硬件之间的借口,为上层的用户、应用程序提供简单易用的服务
命令接口:允许用户直接使用
(联机命令接口,脱机命令接口)程序接口:允许用户进行程序间接使用(程序接口=系统调用)
GUI:现代操作系统中最流行的图形用户接口 -
作为最接近硬件的层次,需要在纯硬件的基础上实现的功能
操作系统的四个特征
并发
并发:两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生,微观上是交替发生
并行:两个或多个事件在同一时刻同时发生
共享
资源共享:系统中的资源可以供内存中多个并发执行的进程共同使用
- 互斥共享
- 同时共享
并发和共享互为存在条件,是最基本的两个特征
虚拟
虚拟是指一个物理上的实体变成若干个逻辑上的对应物,物理实体是实际存在的,而逻辑实体是用户感受到的
空分复用技术–虚拟存储器技术
时分复用技术–虚拟处理器技术
异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停的,以不可预知的速度向前推进,这就是进程的异步性
操作系统的发展和分类
- 手工操作阶段
- 批处理阶段
单道批处理系统
多道批处理系统(操作系统开始出现) - 分时操作系统
- 实时操作系统
(以下了解)
- 网络操作系统
- 分布式操作系统
- 个人计算机操作系统
手工操作阶段
缺点用户独占全机、人机速度矛盾导致资源利用率极低
单道批处理系统
脱机输入/输出技术(磁带) 监督程序
优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调人下一程序。CPU有大量的时间是在等待I/O完成。资源利用率依然很低
多道批处理系统
优点:多道程序并发执行,共享计算机资源,资源利用率大幅提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大
缺点:用户响应时间长,没有人机交互功能
分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
优点:用户请求可以被及时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相对独立,感受不到别人的存在
缺点:不能优先处理一些紧急任务,操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性
实时操作系统
优点:能优先处理紧急任务
计算机系统接收到外部信号后及时进行处理,并且要严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
- 硬实时系统:必须在绝对严格的规定时间内完成处理(导弹控制、自动驾驶)
- 软实时系统 :能接受偶尔违法时间规定(12306)
操作系统的运行机制体系结构
-
两种指令
- 特权指令:内存清零指令
- 非特权指令:普通的运算指令
-
两种处理器状态(用户状态字寄存器PS标识)
- 用户态(目态)–只能执行非特权指令
- 核心态(管态)–特权、非特权都可执行
-
两种程序
- 内核程序:特权非特权都可以执行、运行在核心态
- 应用程序:只能执行非特权指令,运行在用户态
操作系统内核
内核是计算机上配置底层软件,是操作系统最基本、最核心的部分
时钟管理
实现计时功能
中断处理
负责实现中断机制
原语
是一种特殊的程序
处理操作系统最底层,是最接近硬件的部分
这种程序的运行具有原子性(其运行只能一气呵成、不可中断)
运行时间较短,调用频繁
对系统资源进行管理的功能(不同操作系统将此部分是否划入为内核定义不同)
进程管理
存储器管理
设备管理
操作系统的体系结构
大内核和微内核
大内核
将操作系统的主要功能模块都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核
只把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换,性能低
中断和异常
中断机制的诞生:为了实现多道程序并发执行而引入的一种技术
中断的概念和作用
1.当中断发生时,CPU立即进入核心态
2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3.对于不同的中断信号,会进行不同的处理
发生中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
用户态->核心态 中断是唯一途径
核心态->用户态 程序状态字(PSW)标识位设置为"用户态"
中断的分类
内中断(也称为‘’异常’’)
信号来源:CPU内部,与当前执行的指令有关
分类一:
- 自愿中断—指令中断
- 强迫中断
- 硬件故障:缺页
- 软件中断:整数除0
分类二:
- 陷阱、陷入(trap) 有意而为之的异常,如系统调用
- 故障(fault) 由错误条件引起的,可能被故障处理程序修复,如缺页
- 终止(abort)不可恢复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整数除0
外中断(狭义的中断)
信号来源:CPU外部,与当前执行的指令无关
- 外设请求(I/O中断请求):I/O操作完成发出的中断信号
- 人工干预:用户强行终止一个进程
系统调用
按功能分类
- 设备管理 :完成设备的 请求/释放/启动 等功能
- 文件管理 :完成文件的 读/写/创建/删除 等功能
- 进程控制 :完成进程的 创建/撤销/阻塞/唤醒 等功能
- 进程通信 :完成进程之间的 消息传递/信号传递 等功能
- 内存管理 :完成内存的 分配/回收 等功能
系统调用和库函数的区别:
系统调用时操作系统向上提供的接口
有的库函数式对系统调用的进一步封装
当今编写的应用程序大多是通过高级语言提供的库函数简介进行系统调用
系统调用过程
传递系统调用参数–>执行陷入指令(用户态)–>执行系统调用相关服务程序(核心态)–>返回用户程序
注意:
1.陷入指令是在用户态执行,执行陷入指令(Traps)之后立即引发一个内中断,从而CPU进入核心态
2.发出系统调用请求是在用户态,而对系统调用的相关处理是在核心态下进行
3. 陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令