-
-
- 操作系统地位
-
1.硬件抽象层之上
2.所有其他软件层之下
应用软件层
其他系统软件层
OS
硬件(HAL)
1.3.1 操作系统特性
1、程序并发性(Concurrent)
体现:多个用户程序并发;OS程序与用户程序并发。
并发:多个程序在宏观上同时向前推进,但是在微观上是交替进行的
并行:多个事件在同一时刻发生
2、资源共享性
3、虚拟性
4、进程异步性
1.3.2 操作系统应具备的基本功能 (4管+1接)
处理机管理
进程控制
进程同步
进程通信
进程调度
存储管理
内存分配
内存保护
内存扩展:虚拟存储
设备管理
设备分配
设备传输控制
设备独立性
信息管理(文件管理)
文件存储空间管理
目录管理
文件操作管理
文件保护
用户接口:命令和程序
管理计算机资源和提供接口
1.5.1定时装置(Timer)
绝对时钟:记载实际时间,不发中断
间隔时钟:定时发生中断,一般间隔单位为“毫秒”
1.5.3特权指令与非特权指令
特权指令
只有在管态才能执行的指令(影响系统状态)
关中断,置程序状态字,停机,IO
非特权指令
所有程序可用(不影响系统状态)
取数,四则运算
1.5.4处理机状态及状态转换
处理机状态:在程序状态字中标识
系统态 :管态,核态
用户态 :目态,常态
关于进程的定义
- 进程是程序的一次执行
- 进程是可以和别的计算并发执行的计算
- 进程可定义为一个数据结构及能在其上进行操作的一个程序
- 进程是一个程序及其数据在处理机上顺序执行时发生的活动
- 进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位
2.2.2进程状态及状态转换
进程状态(基本状态)
- 运行态:占有CPU正在向前推进
- 就绪态:可以运行,但未得到CPU
- 等待态:等待某一事件发生
状态转换
- 就绪——>运行:获得处理机
- 运行——>就绪:剥夺处理机
- 运行——>等待:申请资源未得到,启动IO
- 等待——>就绪:得到资源,IO中断
2.2.3进程控制块(PCB)
进程标识(pid)
进程状态
现场信息
调度参数
所属用户(uid)
操作系统通过PCB感知进程的存在
2.2.4 进程的组成与上下文
进程的组成:PCB结构与程序和数据的组合
进程的控制块(PCB)
建立进程=>建立PCB
撤销PCB=>撤销进程
存放在系统空间:OS对其访问,用户程序不能访问
程序和数据
代码:
数据
堆栈
2.3.4 线程的实现
2.3.1用户级别线程(用户态)
2.3.2 核心级别线程(系统态)
作业
进程
线程
fork函数
例:3个fork();
fork();
fork(); 总共有2^3=8个进程
如果创建进程出现错误,则会返回-1,不会创建子进程。
fork 中的pid==0为子进程
父进程的返回值为子进程的pid
3.1.1 中断的概念:
中断系统:
中断装置(硬件)
IO中断
外部中断:时钟中断,控制台中断
中断处理装置(软件)
软件异常、程序中断
访管中断(自愿中断)
3.1.2中断装置
1、识别中断源,当有多个中断源时,按紧迫程度排队(优先级别)
2、保存现场
3、引出中断处理程序
处理机调度
等待时间:周转时间与处理时间之差
平均等待时间:所有进程等待时间与进程个数之比值
周转时间:完成时刻-进入时刻
平均周转时间:
带权周转时间:周转时间/运行时间
处理机调度算法:
- 先到先服务算法 FCFS 非剥夺式
FCFS算法比较有利于长作业(进程),而不利于短作业(进程)
2、短作业优先算法 SJF 非剥夺式
该算法对长作业不利
不能保证紧迫性作业(进程)会被及时处理
- 最短剩余时间算法 SRTN
可剥夺SJF(可抢占SJF):当新进程/线程到达时,比较所需的剩余时间,运行剩余时间最短的进程/线程。
Process ID | 到达时间 | 服务时间 | 完成时间 | 周转时间 | 等待时间 |
P1 | 0 | 8 | 13 | 13 | 5 |
P2 | 1 | 2 | 3 | 2 | 0 |
P3 | 4 | 3 | 7 | 3 | 0 |
平均等待时间:(2+13+3)/3=6 (ms)
- 最高响应比作业优先算法 HRN
R=【(上一个的完成时刻-进入时刻)+运行时间】/ 运行时间
P1>P3>P2>P4
4、高优先级算法 (选择题)
5、时间片轮转调度算法 (选择题)
作业最早截止期优先调度 EDF
处理时间Ci
发生周期Ti
速率单调调度 RMS
3.3.1交换与中级调度
交换
中级调度
并发度(同时运行进程的个数)
4.2.1 共享变量与临界区域
共享变量
多个进程或线程都需要访问的变量
临界资源:一次只允许一个进程或线程使用
4.2.2 临界区域与进程互斥
定义:多个进程不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,称为进程互斥
4.2.3 进程互斥的实现
空忙有权
4.3.1 进程同步
定义:一组进程,为协调其推进速度,在某些关键点处需要相互等待与相互唤醒,进程之间这种相互制约的关系称为进程同步。
Linux系统中的semaphore机制
sem_wait():信号量的P操作
sem_post():信号量的V操作
5.3 死锁的条件
资源独占(mutual exclusion) 互斥条件
不可抢占(non preemption) 不剥夺条件
保持申请(hold-while-applying) 请求和等待
循环等待(circular wait) 环路等待条件
破坏任一条件即可消除死锁
预先分配法 静态资源分配法
破坏请求和等待条件
有序分配法
破坏环路等待
死锁处理
预防
死锁避免——银行家算法
例题:3个进程,5R
(5-1)+(5-1)+(5-1)=12
sum=12+1=13
绝对装入方式(ALM)
在编译时,已经知道程序 要驻留在内存的位置
重定位装入(RLM)
在程序装入时,把目标程序中的指令和数据的相对地址(逻辑地址)修改成装入位置处的物理地址
分页式:
最先适应算法(FF)
按照作业顺序一个一个在空闲区分配资源
最佳适应算法(BF)
先把空闲区排序,然后作业按照从小到大分配资源
虚拟存储:
进程部分装入内存,部分(或全部)装入外存,运行时访问在外存部分动态调入,内存不够淘汰
作用:1.提高系统效率 2.解决内存不足
淘汰算法:
- 最佳置换(往后看,淘汰最长时间后才用到的)
- 先进先出(FIFO)Belady算法
- 最近最少使用(LRU)
- 改进型的时钟淘汰算法(Clock)
硬链接
文件有相同的 inode
只能对已存在的文件进行创建
软链接
文件的 inode不同
删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
(1)
13B7的二进制为:0001 0011 1011 0111
1KB=2^10 所以页内地址为后10位
所以逻辑页号为000100=4
因为页号4没有页框且采用先进先出置换法所以置换页号5——页架号=3
3二进制:000011
所以物理地址为 0000 1111 1011 0111
转化成16进制为:0fb7
(2)
280时刻,指针应该在页号3处,因为访问标志都为1,所以按3,5,1,2的顺序访问,都置为0,所以应替换页号3
页号3——页架号8
8二进制为001000
所以物理地址为:0010 0011 1011 0111
转化成16进制为:23B7
影响缺页中断的因素:
1.页面大小
2.程序本身的编制方法
3.分配给进程的物理页面数
4.页面的淘汰算法的选择