操作系统的概念、功能
操作系统:是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。
大致划分如下:
目标和功能
1、是系统资源的管理者
- 提供的功能
- 处理机管理
- 在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位
- 处理机管理,可归结为对进程的管理
- 存储器管理
- 内存分配与回收、地址映射、内存保护与共享和内存扩充等
- 文件管理
- 文件存储空间的管理、目录管理及文件读写管理和保护
- 设备管理
- 主要任务:完成用户的I/O请求
- 缓冲管理、设备分配、设备处理和虚拟设备
- 处理机管理
2、向上层提供方便易用的服务
-
直接给用户使用的
- GUI:图形化用户接口。用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。
- 命令接口
- 联机命令接口(交互式命令接口)eg:命令解释器(win键+R;输入cmd,enter),适用于分时或实时系统的接口
- 脱机命令接口(批处理命令接口)
-
给软件/程序员使用的
- 程序接口:由一组系统调用(广义指令)组成。可以在程序中进行系统调用来使用程序接口。普通用户只能通过程序代码间接使用。
- 系统调用类似于函数调用,是应用程序请求操作系统服务的唯一方式。
- 程序接口:由一组系统调用(广义指令)组成。可以在程序中进行系统调用来使用程序接口。普通用户只能通过程序代码间接使用。
3、最接近硬件的一层软件
裸机:没有任何软件支持的计算机
虚拟机(扩充机器):覆盖了软件的机器
操作系统的特征
两个最基本的特征,二者互为存在条件:并发、共享
- 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
- 并行:指两个或多个事件在同一时刻同时发生。
单核CPU:同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU:同一时刻可以同时执行多个程序,多个程序可以并发地执行
- 共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
- 互斥共享方式:一个时间段内只允许一个进程访问资源
- 临界资源:一段时间内只允许一个进程访问的资源
- 同时共享方式:允许一个时间段内由多个进程“同时”进行资源访问。
- “同时”往往是指宏观,在微观上,进程可能是交替地对资源进行访问(分时共享)
- 互斥共享方式:一个时间段内只允许一个进程访问资源
- 虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
- 空分复用技术(虚拟存储器技术)虚拟内存:将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。
- 时分复用技术(虚拟处理器)
- 微观上处理机在各个微小的时间段内交替着为各个进程服务(所以可见,没有并发性,虚拟性就失去了意义)
- 异步:是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
- 所以可见,失去了并发性,则系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。所以只有系统拥有并发性,才有可能导致异步性。
操作系统的发展和分类
- 手工操作阶段(无操作系统)
- 用户独占全机
- CPU等待手工操作
- 批处理阶段
- 单道批处理系统:引入脱机输入/输出技术,并由监督程序负责控制作业输入、输出
- 缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调用下一道程序。CPU有大量的时间是在空闲等待I/O完成。
- 特征:自动型、顺序性、单道性
- 多道批处理系统(操作系统开始出现):多道程序并发执行,共享计算机资源。资源利用率大幅提升,系统吞吐量大
- 特征:多道,宏观上并行,微观上串行(内存中的多道程序轮流占有CPU)
- 缺点:用户响应时间长,没有人机交互功能(用户提交作业之后只能等待计算机处理完成,中间不能控制作业执行)
- 单道批处理系统:引入脱机输入/输出技术,并由监督程序负责控制作业输入、输出
- 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
- 特征:同时性(多路性)、交互性、独立性、及时性
- 优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在
- 缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
- 实时操作系统(计算机系统接收到外部信号后及时处理,并且要在严格的时限内处理完事件)
- 硬实时系统:必须在绝对严格的规定时间完成处理
- 软实时系统:能够接受偶尔违反时间规定
- 能够优先响应一些紧急任务;主要特点:及时性、可靠性
- 网络操作系统:能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。
- 分布式操作系统:主要特点是:分布性、并行性。系统中各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务
- 个人计算机操作系统
操作系统的运行机制
指令:处理器(CPU)能识别、执行的最基本命令(二进制机器指令)
- 程序运行原理
- 高级语言编写代码—>机器指令
- 程序运行的过程:就是CPU执行一条一条机器指令的过程
- 内核
- 内核(Kernel):是操作系统最重要最核心的部分,也是最接近硬件的部分
- 状态判断:CPU中有一个寄存器叫“程序状态字寄存器(PSW)”,其中有个二进制位,1表示“内核态”,0表示“用户态”。
- 内核(Kernel):是操作系统最重要最核心的部分,也是最接近硬件的部分
- 内核组成:
- 时钟管理
- 计时
- 进程切换
- 中断机制
- 原语
- 系统控制的数据结构及处理
- 进程、存储器、设备管理
- 时钟管理
- 两种指令
- 特权指令(如内存清零指令):只允许”管理者“–操作系统内核来使用
- 非特权指令:应用程序只能使用非特权指令,允许用户直接使用的指令
- 两种处理器状态
- 核心态(管态、内核态)
- 用户态(目态)
- 内核态—>用户态:执行一条特权指令——修改PSW的标志位为“用户态”,意味着操作系统将主动让出CPU使用权
- 用户态—>内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。
- 触发中断信号:非法使用特权指令;需要操作系统介入的地方
- 两种程序
- 内核程序:处于内核态,说明此时正在运行的是内核程序,此时可以执行特权指令
- 应用程序:处于用户态:说明此时正在运行的是应用程序,此时只能执行非特权指令
中断和异常
- 中断的作用:
- 中断是让操作系统内核夺回CPU使用权的唯一途径
- “中断”会使CPU由用户态变为内核态
- 中断的类型
- 内中断(异常):与当前执行的指令有关,中断信号来源于CPU内部
- 终止:指出现了使得CPU无法继续执行的硬件故障。试图在用户态下执行特权指令;执行指令非法,则会引发一个中断信号;无法修复,直接终止应用程序
- 故障:通常是由指令执行引起的异常如缺页故障;可能会被修复,之后再将使用权还给应用程序
- 陷入指令:一种事先安排的事件,“系统调用”就是通过陷入指令完成的,非特权指令
- 外中断(中断):与当前执行的指令无关,中断信号来源于CPU外部
- 可屏蔽中断:指通过INTR线发出的中断请求,通过改变屏蔽字可以实现多重中断
- 不可屏蔽中断:通过NMI线发出的中断请求,通常是紧急的硬件故障
- 时钟中断:每隔一段时间给CPU发送一个时钟中断信号
- 处理I/O中断的内核程序,当输入输出完成时,向CPU发送中断信号
- 内中断(异常):与当前执行的指令有关,中断信号来源于CPU内部
- 中断机制的基本原理
- 检查中断信号
- 内中断:CPU在执行指令时会检查是否有异常发生
- 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
- 找到相应的中断处理程序
- 通过“中断向量表”实现
- 不同的中断信号,需要用不同的中断处理程序来处理;中断处理程序一定是内核程序,需要运行在“内核态”
- 检查中断信号
系统调用
- 什么是系统调用 :是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
- 系统调用与库函数的区别
- 有的库函数是对系统调用的进一步封装
- 有的库函数没有使用系统调用
-
为什么系统调用是必需的
- 例子(打印):由操作系统内核对共享资源进行统一的管理,并向上提供“系统调用”,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求。内核会对各个请求进行协调处理。
-
系统调用按功能分类
- 设备管理:完成设备的请求/释放/启动等功能
- 文件管理:完成文件的读/写/创建/删除等功能
- 进程管理:完成进程的创建/撤销/阻塞/唤醒等功能
- 进程通信:完成进程之间的消息传递/信号传递等功能
- 内存管理:完成内存的分配/回收等功能
-
什么功能要用系统调用实现
- 应用程序通过系统调用请求操作系统的服务。
- 而系统中的各种共享都由操作系统内核统一管理,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。
- 这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
-
系统调用的过程
- 传参
- 陷入指令/trap/访管
- 由操作系统内核程序处理系统调用请求
- 返回应用程序
操作系统体系结构
-
大内核(宏/单内核)
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护
-
微内核
- 只把最基本的功能保留在内核
- 进程线程管理(最基本功能)
- 低级存储器管理
- 中断和陷入指令
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在核心态与用户态之间切换,性能低
- 只把最基本的功能保留在内核
-
分层结构:内核分多层,每层可单向调用更低一层提供的接口
- 最底层是硬件,最高层是用户接口
-
模块化:将内核分为多个模块,各模块之间相互协作
- 内核=主模块+可加载内核模块
- 主模块:只负责核心功能,如进程调度、内存管理
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
-
模块化操作系统结构
- 进程管理
- 进程控制
- 进程调度
- 文件管理
- 内存分配
- 内存保护
- 存储器管理
- 磁盘管理
- 目录管理
- 进程管理
-
外核:负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
-
衡量模块的独立性标准:
- 内聚性:模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越好
- 耦合度:模块间相互联系和相互影响的程度。耦合度越低,模块独立性越好
操作系统引导
- 什么是操作系统引导:指计算机利用CPU运行特定程序,通过程序识别硬盘、硬盘分区、硬盘上的操作系统,最后通过程序启动操作系统
- 主存:
- RAM
- ROM(BIOS)包含:ROM引导程序,即自举程序
- 磁盘里边的相关数据
- 主引导记录(MBR)包含:磁盘引导程序和分区表;C/D盘
- 引导记录PBR(负责找到启动管理器);根目录
- 操作系统引导的过程
- 激活CPU。激活的CPU读取ROM中的boot程序,将指令寄存器置为BIOS(基本输入输出系统)的第一条指令,即开始执行BIOS的指令。
- 硬件自检。检查硬件是否出现故障。
- 加载带有操作系统的硬盘。BIOS开始读取Boot Sequence,把控制权交给启动顺序排在第一位的存储设备,然后CPU将该存储设备引导扇区的内容加载到内存中。
- 加载主引导记录MBR。硬盘以特定的标识符区分引导硬盘和非引导硬盘。主引导记录MBR的作用是告诉CPU去硬盘的哪个主分区去找操作系统
- 扫描硬盘分区表,并加载硬盘活动分区。MBR包含硬盘分区表,硬盘分区表以特定的标识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区。找到硬盘活动分区后,加载并将控制权交给活动分区。
- 加载分区引导记录PBR。读取活动分区的第一个扇区,称为分区引导记录PBR,寻找并激活分区根目录下用于引导操作系统的程序。
- 加载启动管理器。分区引导记录搜索活动分区中的启动管理器,加载启动管理器。
- 加载操作系统
虚拟机
使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(VM),每个虚拟机器都可以独立运行一个操作系统
同义:虚拟机管理程序(VMM)/虚拟机监控程序