1. 总括
- 目标:
- 方便性(方便用户使用)
- 有效性(改善资源利用率提供吞吐量)
- 可扩展性(满足新的需求,使用层次化结构)
- 开放性(遵循世界标准)
- 作用
- 作为用户与计算机硬件系统之间的接口(命令接口,系统调用,图形、窗口方式)
- 系统资源的管理者(处理机,存储器,I/O设备,信息(数据和程序))
- 作为扩充器(使其功能增强)
- 动力
- 不断提高资源利用率
- 方便使用
- 器件更新换代
- 计算机体系结构不断发展
- 发展
- 人工操作(人机矛盾严重<人工速度按降低了资源利用率>,CPU与I/O设备速度不匹配)
- 脱机输入/输出方式(缓解,通过外围机先将数据存在磁带中)
- 单道批处理(提高了资源利用率和吞吐量,很有限)(自动性,顺序性,单道性)
- 多道批处理(进一步提高)(多道性,无序性,调度性)(周转时间长(排队),无交互能力)
- 解决问题:处理机管理,内存管理,I/O设备管理,文件管理,作业管理
- 分时系统(人机交互,共享主机,方便使用)(及时接收,及时处理)(多路性,独立性(用户彼此不干扰),及时性,交互性)
- 实时系统(实时控制,实时信息处理)(多路,独立,及时,交互,可靠)
特性
- 并发(Concurrence)
* 并发:多个事件同一时间间隔内发生
* 并行:多个事件同一时刻发生
* 进程:系统中能独立运行并作为资源分配的基本单位,是一个活动实体,由机器指令数据和堆栈等组成
* 操作系统引入进程是为了并发执行 - 共享(Sharing)
* 互斥访问(一段时间只允许一个进程/线程访问)
* 同时访问(宏观上同时,微观上交替,如:磁盘访问) - 虚拟(Virtul)
* 通过技术把物理实体映射为多个逻辑实体(虚拟内存,虚拟处理机(多道程序设计技术),学你外部设备,虚拟信道等) - 异步性(Asynchronism)
* 进程以人们不可预知的速度向前推进。但只要运行环境相同,作业经过多次运行,都会获得完全相同的结果
- 并发(Concurrence)
功能
- 处理机管理
* 进程控制
* 进程同步
* 进程通信
* 调度 - 存储器管理(为多道程序运行提供良好环境)
* 内存分配(静态,动态)(内存分配数据结构,内存分配功能,内存回收功能)
* 内存保护(每个程序只在自己的内存区中运行,比如:设置两个界限寄存器)
* 地址映射
* 内存扩充(逻辑上扩充)(请求调入,置换) - 设备管理(管理外围设备)
* 缓冲管理(缓和速度不匹配,提供利用率)(单缓冲,双缓冲,公用缓冲池机制)
* 设备分配
* 设备处理(检查I/O请求合法性,了解设备状态,了解设置参数和工作方式,发出I/O命令,I/O设备执行,随时响应中断) - 文件管理(对用户和系统文件进行管理)
* 文件存储空间管理(为每个文件分配外存空间,提高外存利用率,提供文件系统运行速度)
* 目录管理(方便用户查找文件,提高文件检索速度)
* 文件读/写管理和保护(根据文件名检索获取位置,利用文件指针读写,修改读写指针,为下一次做准备)(防止文件被非法窃取和破坏) - 用户接口
* 命令接口(联机(未联机用户提供),脱机(为批处理作业的用户提供))
* 程序接口
* 图形接口
- 处理机管理
- 结构
- 无结构(一组过程的集合)
- 模块化结构(提高正确性,可理解性,可维护性,适应性,加速了开发过程)
- 分层结构(每一层仅仅使用底层提供的功能和服务)
- 微内核结构(适用分布式环境)
- Client-Server Model(所有服务都是一个服务器进程,运行在用户方式,之间通信由内核完成)(灵活性,可扩充性,可靠性高,可运行与分布式系统中)
- 微内核技术:能实现现代OS核心功能的小型内核,小而精炼运行在内核太,开机后常驻内存,不是完整的OS
- 功能:进程管理,存储器管理,进程通信管理,I/O设备管理
2. 进程管理
- 程序执行时特征: 顺序性,封闭性, 可再现性
- 并发执行时特征: 间断性,失去封闭性,不可再现性
- 进程构成: 程序段,数据段,PCB(程序控制块)
- 创建进程就是创建PCB
- 动态性,并发性,独立性,异步性
- 进程状态:就绪(Ready)状态,运行状态, 阻塞状态,挂起状态
- 状态转换:
1. 活动就绪(Readya)<–>静止就绪(Readys,挂起)
2. 活动阻塞<–>静止阻塞 - PCB: 记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息(进程标识符,处理机状态,进程调度信息,今晨个控制信息)
- PCB组织方式:链接方式,索引方式
- 阻塞原语(block), 唤醒原语(wakeup), 挂起原语(suspend), 激活原语(active)
- 邻接资源(Critical Resouce),
- 临界区(Critical section):每个进程中访问临界资源的代码段
- 在临界区前后加入进入区和退出区
- 同步机制的规则: 空闲让进,忙则等待,有限等待,让权等待
- 整型信号量(忙等),记录型信号量(让权等待),AND型信号量(将所需资源一次性全部分配给进程,待使用完后一起释放),信号量集(一次需要N个资源,相比记录型信号量效率高很多)
- 哲学家就餐问题。为了防止死锁,可采用
- 至多允许四个哲学家同时拿左边的筷子
- 仅当左右两边的筷子均可用时,才允许拿筷子进餐
- 奇数哲学家,先拿左手筷子,再拿有手筷子,偶数则相反
- 为了管理方便,有一种新的进程同步工具–管程(Monitors)
- 管程设置wait和signal原语,等待原因很多,引入条件变量Condition
- 进程通信
- 共享存储器系统(共享数据结构的通信方式(低效,适用少量数据 ),共享存储区的通信方式(传输大量数据))
- 消息传递系统(进程间数据交换以格式化的消息为单位,直接使用系统提供的通信命令进行通信)
- 管道通信(以字符流形式)
- 线程
- 目的: 为了减少程序并发执行所付出的时空开销。
- 线程是独立调度和分派的基本单位,可并发执行,共享进程资源,轻型实体
- 多线程的进程:作为资源分配的基本单位,可包含多个线程,不是一个可执行的实体
- 同步机制:互斥锁,条件变量,信号量
- 传统os中进程切换必须有用户态转为内核态,再由核心来切换任务,而线程不需要
- 内核控制线程(轻型进程LWP),当用户线程运行时只要连接到一个LWP上就可以了,LWP可以把用户级线程和内核线程连接起来,用户线程可通过LWP来访问内核,但内核看到的总是多个LWP,而看不到用户级线程。由LWP实现在内核与用户级线程之间的隔离,从而使用户级线程与内核无关
3.处理机调度和死锁
- *