计算机操作系统
📑 目录
1. 计算机系统概述
1.1 操作系统的概念、功能和目标
1.1.1+1.1.2 操作系统的概念、功能和目标
结构:
flowchart TB 用户 --> Y 用户 --> C Y[应用程序] --> C C[操作系统] --> 裸机
操作系统:控制和管理计算机系统的硬件和软件资源,组织调度计算机的工作和资源分配以提供给用户和其他软件方便的接口和环境,是系统最基础的系统软件
功能:
- 处理器管理
- 存储器管理
- 文件管理
- 设备管理
- ……
一些服务:
- GUI(比如windows的图形拖拽)
- 命令接口:
- 联机命令接口(交互式命令接口)
- 脱机命令接口(批处理命令接口)
- 程序接口,通过系统调用所有程序接口(比如C++中std::cout«“hello world"实际调用的系统的接口)
- ……
1.1.3 操作系统的特征
特征:
- 并发
- 并发:同一时刻间隔发送,微观上交替发生
- 并行:同时发生
- 共享:
- 互斥共享方式
- 同时共享方式
- 虚拟:将物理实体变化为逻辑产物,虚拟技术中如虚拟处理器技术,虚拟存储器技术等,分别采用了空分复用(拆分空间)和时分复用技术(拆分时间交替运行)
- 异步:多个程序运行允许并发执行而不是串行(即走走停停,不可预知速度)
1.2 操作系统的发展与分类
- 手工操作阶段:通过纸带写程序,用户独占全机
- 批处理阶段:
- 单道批处理系统:通过外围机存放到磁带机,引入脱机输入/输出技术,由监督程序复杂作业的输入,输出。
- 多道批处理系统:多道程序并发执行,无人机交互
- 分时操作系统:划分时间处理不同用户,对各个用户完全公平
- 实时操作系统:可以处理紧急任务,及时且可靠
- 网络操作系统
- 分布式操作系统
- ……
1.3 操作系统的运行机制
1.3.1 操作系统的运行机制
- 内核程序:操作系统
- 应用程序:一般开发的程序,如QQ等
CPU的两种状态:CPU通过一个寄存器程序状态字寄存器(PSW)标记不同状态(1:内核态,0:用户态(不同CPU可能不同))
- 内核态:通过特权指令蟹盖PSW改为用户态允许用户程序
- 用户态:当触发中断时,操作系统强制切换为内核态
1.3.2 中断和异常
中断是让操作系统内核夺回CPU使用权的唯一途径
类型:
- 内中断:陷入指令或特权指令
- 故障(fault)
- 终止(abort)
- 陷入(trap)
- 外中断:来自外部的中断信号,如时钟中断…
- 时钟中断
- I/O中断请求
基本原理:
CPU根据不同的中断信号用不同的中断程序处理,根据类型查询“中断向量表”
1.3.3 系统调用
按功能分类:
- 设备管理
- 文件管理
- 进程管理
- 进程通信
- 内存管理
flowchart LR A[调用库函数] --> B[处理相关指令] B --> C[传参指令,将系统调用需要的参数存放道某些通用寄存器中] C --> D[陷入指令(trap指令/访管指令)] D --> E[处理后续相关指令]
注:凡是与共享资源有关的操作,会直接影响其他进程的操作,就一定需要操作系统介入,陷入指令在用户态下完成。
1.4 操作系统体系结构
1.4 操作系统体系结构(上)
操作系统:
非内核功能(如GUI)
内核功能
- 时钟管理
- 中断处理
- 原语(设备驱动,CPU切换等)
- …
大内核:
- 优电:高性能
- 缺点:庞大
微内核:将更接近硬件的功能分为内核态而其余为应用态
- 优点:内核功能少,结构清晰
- 缺点:切换状态频繁
1.4 操作系统体系结构(下)

1.5 操作系统引导
主存:
- RAM
- ROM(BIOS):包含ROM引导程序即自举程序(指示CPU读取磁盘的主引导记录进入RAM) 磁盘:(按照操作系统后)
- 主引导记录(MBR):包含磁盘引导程序和分区表
- C盘:
- 引导记录(PBR):负责找到启动管理器(完成操作系统初始化等)
- 根目录
- 其他
1.6 虚拟机
- 第一类VMM:
- 直接运行在硬件上
- 按照Guest OS时直接在硬盘上分配
- 性能更好
- 支持更多虚拟机
- 迁移性更差
- 运行在最高特权级(Ring 0)
- 第二类VMM:
- 运行在宿主机操作系统Host OS上,依赖Host OS分配资源
- GuestOS有自己的虚拟磁盘,实际上是Host OS的文件
- 性能更差
- 支持的虚拟机数量更少
- 更好的迁移性
- 运行在用户态,部分运行在内核态,系统调用会被VMM截获转化为对Host OS的系统调用
2. 进程与线程
2.1 进程与线程
2.1.1+2.1.2 进程的概念、组成、特征
程序:静态的指令集合
进程:动态的执行过程
操作系统创建进程时分配唯一的PID并记录所属用户id(UID),分配资源(分配内存,枕在使用的I/O设备) ,运行情况(CPU使用时间,此磁盘使用情况,网络…),这些信息存储在进程控制块(PCB)中
进程实体组成:
- PCB
- 程序段:程序的代码
- 数据段:程序产生的数据
进程是系统进行资源分配和调度的独立单位
进程的特征:
- 动态性:动态产生,变化,消亡
- 并发性:内存中有多个进程实体可并发运行
- 独立性:进程可以独立运行,独立获取资源,接受调度的基本单位
- 异步性:各进程以不可预知的速度推进
- 结构性:每个进程都有一个PCB
2.1.3 进程的状态与转换
状态:
- 创建态:进程正在被创建
- 就绪态:已具备运行条件
- 运行态:占用CPU运行
- 阻塞态:当需要等待I/O等阻塞操作时阻塞
- 终止态:回收资源和进程PCB
flowchart LR A[创建态] --> B[就绪态] B <--> C[运行态] C --> E[终止态] C --> D[阻塞态] D --> B
- 当进程处于运行态但时间片用完会直接回到就绪态,当进程进行系统调用或某请求,某事件发生时转到阻塞态
- 阻塞态需要先到就绪态
- 就绪态没有处理机资源
基本状态:
- 运行态
- 就绪态
- 阻塞态
进程的组织

- 链接方式
- 执行指针:指向当前运行态的进程
- 就绪队列指针:指向处于就绪态的进程
- 等待xx的阻塞队列:根据阻塞原因分为不同阻塞队列
- 索引方式
- 从队列指向改为索引表
原语:执行具有原子性,不会被中断,实现用“关中断指令”与“开中断指令”两个特权指令实现原子性
- 关中断指令:执行后不会检查中断信号直至开中断指令
进程控制相关原语: 进程创建:
- 创建原语:
- 申请空白PCB
- 为新进程分配资源
- 初始化PCB
- 将PCB插入就绪队列
- 引起创建事件:
- 用户登录:分时系统中,用户登录成功会建立新进程
- 作业调度:多道批处理系统中,有新作业放入内存时,会建立新进程
- 提供服务:用户向操作系统提出某些请求时会创建新进程处理该请求
- 应用请求:由用户进程主动请求创建子进程
2.1.4 进程控制
含义:实现进程转换
用原语实现(具有原子性)
具体通过:“开中断指令”和“关中断指令”实现
相关原语:
进程关系为树型结构,进程没了实际将资源归还给最先进程。
程序运行:
PSW:程序状态字寄存器,PC:程序计数器,IR:指令寄存器…
因为CPU中的寄存器是公用的,使用为了比卖你切换导致某进程的数据被覆盖等,会将其CPU的信息保存在PCB中,即保存运行环境(保存必要信息)。
2.1.5 进程通信
含义:进程之间产生的数据交互
各个进程之间的内存地址空间相互独立
进程通信:
- 共享存储:在内存中开辟共享存储区。比如在linux中通过系统调用:shm_open(…)申请共享区,mmap(…)将共享内存区映射到自己进程的地址空间。为了避免进程对共享空间访问出错,需要进行互斥操作,各个进程可以使用操着系统的同步互斥工具(如P,V操作),以上基于存储区的共享,很自由,通信快,而基于数据结构的共享会将共享内存区划分为数据结构,比如只能为一个数组。
- 消息传递:进程间交换格式化的消息为单位,通过“发生消息/接收消息”两个原语进行数据交换。
- 直接通信:如进程P和Q,进程Q有自己的消息队列,一个消息有“消息头”“消息体”,进程P使用发送原语发送给Q,P负责接收。即点名道姓进行消息传递。
- 间接通信:P向操着系统申请信箱A,P使用发送原语指明发送到信箱A,Q选择接受信箱A的信息。
- 管道通信:单向通信,一端写一端读。这里管道是一个特殊的文件名为pipe文件,本质为内存中的大小固定的内存缓冲区。各个进程需要互斥访问管道。
2.1.5_1 进程通信
2.1.5_2 信号
含义:通知进程某个事件的情况以处理。
信号有信号名和序号及对应事件,由进程处理其信号。具体为PCB中由待处理信号pending向量和被阻塞信号blocked。其他进程通过系统函数发送信号,其中pending比如由1,2,3…8,发送1,8信号就会使1,8位置的数据由0变为1.其中blocked也称为信号掩码通过设置其可以屏蔽某信号,比如设置7,8为1则屏蔽了7,8信号。原理就是比如pending为10000001,blocked为00000011,处理时,blocked变为11111100,然后与pending&运算为10000000,则只有序号为1的信号会处理。
处理信号时机:当进程变态的时候。
评论
加载评论中...