目录
概念
功能和目标
特征
并发
共享(资源共享)
虚拟
异步
发展与分类
手工操作阶段(无OS)
批处理阶段
单道批处理系统
多道批处理系统
分时操作系统
实时操作系统
网络操作系统
分布式计算机系统
个人计算机操作系统
操作系统运行环境
内核态和用户态
特权和非特权指令
状态切换
中断
中断机制的基本原理
系统调用
按功能分类
过程
操作系统体系结构
分层法
模块化
宏内核(单内核/大内核)
微内核
外核
操作系统的引导
虚拟机
编辑
概念
操作系统(OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源分配,进而为用户与其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件
功能和目标
1.操作系统是资源的管理者
处理机管理、存储器管理、文件管理、设备管理、用户接口管理
2.操作系统作为用户与计算机硬件系统之间的接口
- 命名接口:联机命令接口(交互式命令接口)、脱机命令接口(批处理命令接口)
- 程序接口(广义指令)
3.操作系统实现了对计算机资源的扩充
特征
并发
若干事件在同一时间间隔内发生。操作系统的并行性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力
ps:单核cpu同一时刻只能执行一个程序,各个程序只能并发执行
共享(资源共享)
系统中的资源可供内存中多个并发执行的进程共同使用。分为以下两种方式;
- 互斥共享方式:系统中的某些资源,在一段时间内只允许一个进程访问改资源
- 同时访问方式:系统中的某些资源,在一段时间内允许多个进程“同时”访问
虚拟
把一个物理上的实体变为若干逻辑上的对应物。物理实体是实际存在的,后者则是用户感觉上的事物
异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。
ps:并发和共享是操作系统两个最基本的条件
发展与分类
手工操作阶段(无OS)
主要缺点:
- 用户独占,资源利用率低
- CPU等待手工操作,CPU的利用不充分
批处理阶段
单道批处理系统
- 主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
- 主要缺点:每次主机内存仅存放一道作业,每当它在运行期间发出输入/输出请求后,高速CPU便处于等待低速I/O完成的状态,资源利用率依然低
多道批处理系统
- 主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,系统吞吐量大。
- 主要缺点:用户响应时间较长;不提供人机交互功能,用户既不能了解自己的程序的运行情况,又不能控制计算机
分时操作系统
- 分时技术:把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用
- 主要优点:用户请求可以被及时响应,解决了人机交互问题。允许多个用户访问同一台计算机,并且用户对计算机操作独立
- 主要缺点:不能优先处理紧急的任务,需时间片排队
实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统
- 硬实时操作系统:必须在规定的时刻发生
- 软实时操作系统:能接受偶尔违反时间规定
网络操作系统
网络中各种资源的共享及各台计算机之间的通信
分布式计算机系统
主要特点是分布性和并行性。系统中的任意台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。
个人计算机操作系统
是目前使用最广泛的操作系统。如:Windows、Linux、MacOS
ps:操作系统的基本类型主要有:批处理操作系统、分时操作系统、实时操作系统
操作系统运行环境
内核态和用户态
- CPU有两种状态:内核态、用户态
- 处于内核态时,执行操作系统的内核程序,此时可以执行特权指令
- 处于用户态时,执行操作系统的用户自编程序(应用程序),此时只能执行非特权指令
ps:内核包含四大内容:时钟管理、中断机制、原语、系统控制的数据结构及处理
特权和非特权指令
- 特权指令:不允许用户直接使用的指令,如I/O指令、置中断指令等
- 非特权指令:允许用户直接使用的指令,不能直接访问系统中的软硬件资源
程序状态字寄存器(PSW):当PSW置0时CPU处于核心态,当PSW置1时CPU处于用户态
状态切换
内核态切换到用户态:执行一条特权指令--修改PSW的标志位为用户态,操作系统主动让出CPU使用权
用户态切换到内核态:由“中断”引发,硬件自动完成变态过程,触发信号中断意味着操作系统强行夺回CPU的使用权
中断
内中断(异常、例外):和当前执行指令有关,中断信号来源于CPU内部
外中断:和当前执行指令无关,中断信号来源于CPU外部
中断机制的基本原理
不同的中断信号,需要不同的中断处理程序处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来查找相应的中断处理程序在内存中的位置
系统调用
概念:是操作系统提供给应用程序(程序员/编程人员)来使用的接口,可以理解为一种可供应用程序调用的特殊函数。
ps:应用程序可通过系统调用来请求获得操作系统内核的服务
按功能分类
- 设备管理:完成设备的请求和释放,以及设备启动等功能。
- 文件管理:完成文件的读、写、创建及删除等功能
- 进程控制:完成进程的创建、撤销、阻塞及唤醒等功能
- 进程通信:完成进程之间的消息传递或信号传递等功能
- 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能
过程
传递系统调用参数- >执行陷入指令(用户态)- >执行相应的内请求核程序处理系统调用(核心态)- >返回应用程序
操作系统体系结构
分层法
概念:分层法是将操作系统分成若干层,最底层(层0)为硬件,最高层为用户接口,每层只能调用紧邻它的低层的功能和服务。
优点:
- 便于调试和验证,自底向上逐层调试验证
- 易扩充和易维护,各层之间调用接口清晰固定
缺点:
- 仅可调用相邻低层,难以合理定义各层的边界
- 效率低,不可跨层调用,系统调用执行时间长
模块化
概念:模块化是将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能够通过接口进行通信。
- 内核=主模块+可加载内核模块
- 主模块:只负费核心功能,如进程调度、内存管理
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
优点:
- 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
- 支持动态加载新的内核模块(如:设备驱动程序),增强OS适应性
- 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
缺点:
- 模块间的接口定义末必合理、实用
- 模块间相互依赖,更难调试和验证
宏内核(单内核/大内核)
概念:将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务
优点:性能高,内核内部各种功能都可以直接相互调用
缺点:
- 内核庞大功能复杂,难以维护
- 大内核中某个功能模块出错,就可能导致整个系统崩溃
微内核
概念:将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性
优点:
- 内核小功能少、易于维护,内核可靠性高
- 內核外的某个功能模块出错不会导致整个系統崩溃
缺点:
- 性能低,需要频繁的切换用户态/核心态。
- 用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传道"来间接通信
外核
概念:内核负费进程调度、 进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
优点:
- 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源
- 减少了虚拟硬件资源的“映射层",提升效率
缺点:
- 降低了系統的一致性
- 使系统变得更复杂
操作系统的引导
概念:操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统。
过程:
- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 将磁盘的第一块一一主引导记录 读入内存,执行磁盘引导程序,扫描分区表
- 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成 “开机”的一系列动作
虚拟机
概念:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每台虚拟机器都可以独立运行一个操作系统
ps:图片取自b站视频王道考研 -操作系统