暑期系列:操作系统
1 os概述
- 功能
用户接口
文件管理
存储器管理
处理机管理
设备管理
- 特征
并发:一段时间 多道程序 宏观同时
虚拟:一个物理-->多个逻辑 多个物理-->一个逻辑
共享:互斥共享 "同时"共享
异步(不确定性):[执行顺序] [执行时间]
- CPU执行状态
操作系统执行在核心态下
原语执行在核心态下
用户程序执行在用户态下
2 处理机管理
- 进程与线程
进程:系统资源分配的基本单位
线程:独立调度的基本单位 共享资源有:**sds*
进程五态
进程控制
实现手段:进程控制原语
功能:创建、撤销进程,进程的状态转换进程同步机制
目的:保证进程间的两种制约关系同步:多进程合作完成任务时要按照一定的时序执行
互斥:多个进程访问共享资源时要保证互斥
原则:
空闲让进
忙则等待
有限等待
让权等待
信号量机制
整数型
记录型
PV操作[^ 原理见OneNote-OS-进程管理-进程同步机制]
生产者-消费者问题(有界缓冲区)
读者-写者问题
哲学家就餐问题
睡眠理发师问题
- 进程通信
低级通信:信息量少(如用来同步发送的信号量)
高级通信:共享存储器(剪切板) 消息传递(mail like) 管道通信(2个之间)
- 进程调度
FCFS
SJF
SRTF - 抢
HRRF
HPF - 抢
RR - 抢
MFQ
- 死锁
两个或多个进程被无限期地阻塞、相互等待
必须同时满足:互斥 请求与保持 不剥夺 环路等待
预防与避免
- 银行家算法–死锁避免
见OneNote-每日快速笔记-os答疑-第一问
3 存储器管理
概念区分
物理地址空间(或物理空间、绝对空间):由内存一系列存储单元所限定的地址范围;
逻辑地址空间(用户编程空间):由程序中逻辑地址组成的地址范围
相对地址(或逻辑地址):用户程序经编译之后的每个目标模块都从0开始顺序编址,这种用户编程所用的地址称为相对地址或逻辑地址
绝对地址(或物理地址、内存地址):内存是由若干存贮单元组成的,每个存贮单元有一个编号称为物理地址。
地址变换(重定位):把逻辑地址转换为相应物理地址的过程
程序如何装入内存:编译->链接->装入
- 三种链接方式 : 链接程序将目标程序和所需库函数链接在一起,形成完整的装入模块
静态链接:事先链接完后不再拆开
装入时动态链接:边装入边链接,发生一个外部模块调用后装入程序再去找相应模块装入内存
运行时动态链接:执行时,发现调用的模块未装入内存时OS立即去找再装入内存,并把它链接到调用者模块上
- 三种装入方式 : 装入程序将装入模块装入内存——涉及地址转换(重定位)
绝对装入:编译时就可给出物理地址,在装入时不用再转换地址(只有单道程序才行)
可重定位装入:静态重定位,装入时进行地址转换,且不再更改
动态运行时装入:动态重定位,装入内存时不转换地址(指令地址寄存器还无地址)直至CPU来执行。允许程序在内存中移动
内存分配
连续分配:单一连续 固定分区 动态分区[分配算法]
离散分配:分页 分段
虚拟存储:具有请求调入功能和置换功能
页面分配 页面置换算法
分配:最开始为进程分配多少物理块
- 固定:平均 比例(大小) 优先权
- 可变:预分配 最小物理块
置换:最佳 FIFO LRU Clock LFU
区分:os的缓存与CPU的缓存
- 快表:地址映射机制中
- 高速缓存:位于CPU和内存之间
4 文件管理[^ 重点看这里]
文件和文件系统
文件:文件名、内容、属性[文件类型、长度、位置、建立时间]
基本内容和属性信息被存储在存储器中,用户通过文件名来访问相应文件
文件系统:OS中管理文件的那部分软件+管理的文件+文件属性
文件的逻辑结构:文件在用户面前所呈现的形式
无结构文件–字符流式文件
有结构文件–记录式文件
顺序文件: 按某种顺序排列形成的文件
索引文件:建立一张索引表,每个记录在表中对应一个索引项,索引项按照记录中的某个关键字域排序
索引顺序文件: 将顺序文件中的所有记录分为若干组,每组的第一个记录在索引表中有对应表项,查找任意记录时,先据关键字查索引表(此时可采用各种查找算法),找到所在组的第一个记录,之后顺序查找该组。
物理结构:文件在外存上的存储组织形式
磁带文件:磁带只能顺序访问(也即只有顺序结构)
磁盘文件:顺序存取、随机存取
连续分配–顺序式文件结构–>可采用顺序存取,也可以随机存取
链接分配–链接式文件结构–>隐式链接文件结构[^ 每个物理块自身存放下一物理块的链接指针]只能只能顺序存取,不能随机存取;显式链接文件结构[^ 各物理块指针显式地放在内存的一张表格FAT中]能顺序存取,能随机存取
索引分配–索引式文件结构–>可顺序存取,也可随机存取
文件目录:一种数据结构,标识文件及其物理地址
两种结构
- 含索引节点[指向文件对应的描述信息节点]
- hash方法
文件共享:指系统应允许多个用户(进程)共享同一份文件。这样,在系统中只需保留该共享文件的一份副本
在文件目录中只设置文件名及指向相应索引结点的指针
5 设备管理
I/O设备
从交换单位看——
- 字符设备:传输单位<字节> ,不可寻址
如:显示终端、键盘、打印机、异步通讯接口 - 块设备:传输单位<数据块> ,可寻址
如:磁盘(一个扇区)、摄像头(一帧)
- 字符设备:传输单位<字节> ,不可寻址
从使用方式看——
i. 独占设备:打印机 ii. 共享设备:磁带、磁盘 iii. 虚拟设备:模拟独占设备的那部分共享设备的空间
设备管理的作用(功能)
- 对设备的分配和回收
- 对设备的控制
- 管理缓冲区,平衡低速设备和高速处理器
- 实现虚拟设备,提高并发度
I/O系统的层次结构
设备控制方式:也即CPU与设备的并行方式
程序直接控制:不断查询I/O控制器状态,就绪才进行下一步
【CPU全程参与】
中断驱动:例如–>在输入时,当设备控制器收到CPU发来的读命令后,便去控制相应的输入设备读数据。一旦数据进入数据寄存器,控制器便通过控制线向CPU发送一中断信号,由CPU检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,然后再通过控制器及数据线,将数据写入内存指定单元中
【CPU只参与中断处理】
【中断频率:每个字节传输完都要中断】
DMA驱动:DMAC直接与内存相连,与CPU分时复用内存,CPU只需驱动DMA然后数据控制全程在DMA控制下进行,结束时再向CPU发中断
【CPU工作时间:启动DMA,结束时处理中断】
【中断频率:一次I/O指令能读写一个连续的数据块】
通道方式:是DMA方式的发展,把以数据块为单位的干预,减少到对一组数据块为单位的干预
【CPU同样工作在开始和结束】
【中断频率:一条I/O指令可以读写多个离散的数据块且将它们分别传送到不同的内存区域】
设备的分配
- 算法:先来先服务 || 优先级高者优先