1.1操作系统基本概念:
控制和管理整个计算机系统的硬件和软件资源(即计算机资源)
一、操作系统应具备的功能
- 处理机CPU管理
处理机的分配和运行都以进程(或线程)为基本单位,对处理机的管理可归结为对进程的管理
主要包括进程控制、进程同步、进程通信、死锁处理、处理机调度
- 存储器管理
提高内存的利用率
主要包括内存分配与回收、地址映射、内存保护与共享、内存扩充等
- 文件管理
负责文件管理的部分称为文件系统
主要包括文件存储空间的管理、目录管理文件读写管理、文件保护等
- 设备管理
负责完成用户I/O请求,提高设备利用率
主要包括缓冲管理、设备分配、设备处理、虚拟设备等
二、提供用户接口
命令接口:用户利用命令接口组织和控制作业的运行
- 联机控制方式(交互式命令接口),适用于分时或实时系统,输入一条就完成
- 脱机命令接口,适用于批处理程序
程序接口(也称系统调用、广义指令):由一组系统调用(广义指令)组成,用来请求操作系统服务
库函数与系统调用的区别?
操作系统特征
引入进程的目的是使程序能并发执行
并发和共享式操作系统最基本的特征
并发
并发:同一时间间隔内发生
并行:同一时刻内完成两种以上工作,微观上仍是分时交替执行
共享:资源供多个并发执行的进程共同使用
- 互斥共享方式:一段时间内只允许一个进程访问的资源(临界资源)
- 同时访问方式:一段时间内运行多个进程“同时”访问(分时共享)
虚拟
- 时分复用技术:通过多道程序设计技术,让多道程序并发执行,分时使用一个处理器。虚拟处理器
- 空分复用技术:采用虚拟存储器技术将一台机器的物理存储变为虚拟存储器。虚拟存储器
- 虚拟设备技术:将一台物理I/O设备虚拟为多台逻辑上的I/O设备
异步
- 任务发起后无需等待其完成,调用方可继续执行其他操作,通过回调、事件通知等方式获取结果。
- 同步:任务按顺序执行,必须等待前一个任务完成后才能开始下一个任务。通过系统调用直接阻塞进程/线程(如read()系统调用)。
1.2操作系统发展历程(类型)
**基本类型:**批处理操作系统、分时操作系统、实时操作系统
1.单道批处理系统
特征:自动行、顺序性、单道性
缺点:高速的CPU等待低速的I/O完成的状态
2.多道批处理系统(多道程序设计技术出现以后)
作业调度程序按一定的算法从后备队列中选择若干作业调入内存,自动控制而无需人工干涉的系统
优点:资源利用率高、系统吞吐量大
缺点:主要缺点不提供人机交互能力;用户响应时间较长
3.分时操作系统(主用于交互式作业)
分时技术:将处理器的运行时间分成很短的时间片,按时间片轮流分给作业;是一种多用户操作系统
响应时间T可以表示为T≈QN,其中Q是时间片,N是用户数
特征:同时性、交互性、独立性、及时性
4.实时操作系统(在某个规定时间内完成紧急任务)
- 硬实时系统:必须绝对保证完成
- 软实时系统:可以有偶尔的违反时间规定
特征:及时性、可靠性
5.网络操作系统
网络操作系统:网络中的各台计算机有机结合起来,实现网络中各种资源的共享
6.分布式计算机系统
分布式系统是由多个自治计算节点(即多个计算机),通过网络通信与协调,共同完成某个任务的系统。
7.个人计算机操作系统(目前最广泛)
常见的有Windows、Linux、MacOS
IBM-PS操作系统称为微型计算机操作系统
多道程序设计技术
是指在主存中同时装入多道程序,当一个程序因 I/O 等待而暂停时,操作系统可以立刻切换到另一个程序执行,从而避免 CPU 空闲浪费。引入前提条件之一是:系统具有中断功能
主要是为了提高系统利用率和吞吐量
在程序A、程序B依次使用CPU以及其他设备,在单道和多道环境下,CPU利用率是多少?先画图
1.3操作系统的运行环境
CPU执行两种不同性质的程序
- 内核程序:需要不允许用户直接使用的特权指令、运行在内核态(管态、核心态)
- 用户自编程序(应用程序):非特权指令、运行在用户态(目态)
特权指令和非特权指令
特权指令
直接管理系统资源,设置时钟、启动/关闭硬件设备、切换进程、设置开/关中断指令
系统状态修改指令,修改中断向量表、切换CPU的运行模式
系统控制指令,停机指令、重启指令
输入/输出指令(I/O指令):I/O端口的in/out指令、中断屏蔽寄存器设置
清理操作系统资源、物理内存页面或整个内核空间的内存
非特权指令
- 数据处理指令:通用寄存器加减乘除、清零、赋值等
- 程序控制类:条件跳转、循环、转移等
- 存取指令:读/写内存、寄存器
- 陷入指令(Trap):int 0x80(x86),svc(ARM)等
内核
底层软件、连接应用程序和硬件
时钟管理
中断机制
原语
- 由若干条指令组成、用于实现某个特定功能的不可分割的指令序列
- 执行过程中不允许被中断
- 常驻内核
系统控制的数据结构及处理
中断和异常
中断是操作系统必须提供的功能
- 中断:外中断,指令外部的事件:设备发出的I/O结束中断、时钟中断、DMA传送结束
- 可屏蔽中断:INTR线发出的中断,可以实现多重中断
- 不可屏蔽中断:NMI线发出的中断,硬件故障、异常
**时钟中断:**处理和时间有关的所有信息包括系统时间、进程的时间片、延时、使用CPU的时间、各种定时器
- 异常:内中断,指令内部的事件:非法操作码、地址越界、运算溢出、缺页中断、陷入指令
- 故障Fault:非法操作码、缺页,存储保护错(即地址找不到)、除数为0、运算溢出
- 自陷Trap(陷入/访管指令):条件系统指令、系统调用指令;只在用户态执行
- 终止About:硬件故障,控制器出错、存储器校验错
故障和自陷属于软件中断、终止异常和外部中断属于硬件中断
**外部中断处理过程:**PC值由中断隐指令自动保存、通用寄存器内容由操作系统保存
中断处理和子程序调用的区别?
系统调用
凡是与共享资源有关的操作,都必须通过系统调用方式
每个系统调用都有唯一的调用号
被调用过程运行在内核态,不方便调试、通常不可替换、调用时开销较大
处理步骤:
- 系统调用号和参数压入栈,执行陷入指令,硬件和操作系统内核程序保护被中断进程的现场(中断一定会保存程序计数器(PC)、程序状态字(PSW),前者在使用子程序调用的时候也会保存)
- 根据系统调用号找到该系统调用处理子程序的入口地址
- 恢复现场
1.4操作系统结构
1.分层法
主要优点调试便利,每层只能调用紧邻它的低层的功能和服务(单项依赖),硬件为底层;易扩充
依赖强,灵活性差、效率较差
2.模块化(模块-接口法)
内聚性(模块间紧密程度)越高、耦合性(相互影响程度)越低,独立性越好
缺点是可靠性差,任何一个模块出错都可能导致整个内核崩溃
3.宏内核(单内核/大内核)
将系统的核心功能作为一个整体运行在内核态
4.微内核
将内核中最基本的功能留在内核,不需要内核态执行的功能移到用户态执行
①内核足够小:只保留最基础的功能
②基于客户/服务器模式:通过消息传递实现服务
③应用“机制与策略分离”原理:微内核只提供机制
④采用面向对象技术
功能:①进程线程管理②低级存储器管理③中断和陷入处理
优点:可靠性高(只有微内核运行在内核态)、扩展性强、移植性强(因为所需修改内容少)
缺点:需要频繁切换用户态和内核态,开销较大,性能差
5.外核
外核只负责硬件资源的分配、回收、保护等,进程管理相关的工作由内核负责
优点是减少了资源的“映射层”,提升系统效率
1.5操作系统引导
计算机利用CPU运行特定程序(Boot Loader),它的作用是引导操作系统启动。
具体过程:
- CPU激活并读取ROM中的BIOS(自举程序)第一条指令
- BIOS构建中断向量表并执行POST(通电自检)检查硬件是否出现故障
- BIOS读取引导顺序,加载第一个设备的引导扇区(MBR)
- MBR通过标识符区分引导硬盘
- MBR扫描分区表找到活动分区
- 读取活动分区的分区引导记录(PBR),作用是寻找并激活用于引导操作系统的程序(启动管理器)
- 加载启动管理器
- 加载操作系统到RAM
引导程序是计算机系统在开机时执行的一段程序,主要用于初始化硬件并加载操作系统或其他系统软件。引导程序通常存储在非易失性存储器(硬盘)中。
1.6虚拟机
运行在两类虚拟机管理程序上的操作称为客户操作系统,运行在第二类底层硬件上的操作系统称为宿主操作系统
多台虚拟机同时运行在一台物理机器上,并没有实现真正的并行(多核计算机)
虚拟机可以安装多个操作系统
第一类虚拟机管理程序(裸金属架构)
唯一一个运行在最高特权级的程序
虚拟内核态:虚拟机上的操作系统认为自己运行在内核态
运行在物理硬件上,性能高、安全性强
第二类虚拟机管理程序(寄居架构)
VMware Workstation是首个x86平台上的第二类虚拟机管理程序
运行在操作系统之上,使用方便但性能略低