计算机操作系统
一.操作系统引论
1.操作系统的目标和功能
- 目标
- 方便性
- 有效性
- 提高系统资源利用率
- 提高系统吞吐量
- 可扩充性
- 开放性
- 作用
- OS作为用户与计算机硬件系统之间的接口
- 命令方式
- 系统调用方式
- 图标–窗口方式
- OS实现了对计算机资源的抽象
- OS作为用户与计算机硬件系统之间的接口
2.操作系统的发展过程
-
未配置操作系统的计算机系统
-
人工操作方式
-
用户独占全机 CPU等待人工操作 严重降低了计算机资源的利用率
-
脱机输入/输出(Off–Line I/O)方式
-
减少了CPU的空闲时间 提高了I/O速度 效率仍然不理想
-
-
单道批处理系统
-
多道批处理系统
-
1.资源利用率高
-
2.系统吞吐量大
-
3.平均周转时间长
-
4.无交互能力
- (宏观并行,微观串行)
-
分时系统
-
特征:
-
1.多路性
-
2.独立性
-
3.及时性
-
4.交互性
-
实时系统
-
集群系统–超算~云计算
-
微机操作系统的发展
3.操作系统的基本特征
-
1.并发concurrence
-
区别并行和并发
-
并行性是指两个或多个事件在同一时刻发生→宏观并行,微观并行
-
并发性是指两个或多个事件在同一时间间隔内发生→宏观并行,微观串行
- 并发是进程宏观一起运行,微观上交替运行,而并行是指同时运行
-
引入进程
-
进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体
-
-
2.共享sharing
- 1.互斥共享方式
- 2.同时访问方式
- 并发和共享是多用户(多任务)OS的两个最基本的特征。它们又是互为存在的条件
-
3.虚拟virtual
- 时分复用技术
- 空分复用技术
-
4.异步asynchronism
4.操作系统的主要功能
- 1.处理机管理功能
- 进程控制
- 进程同步
- 进程互斥方式
- 进程同步方式(协同)
- 进程通信
- 调度
- 作业调度
- 进程调度
- 2.存储器管理功能
- 内存分配
- 静态分配
- 动态分配
- 内存保护
- 地址映射
- 内存扩充
- 内存分配
- 3.设备管理功能
- 缓冲管理
- 设备分配
- 设备处理
- 设备处理程序又称设备驱动程序
- 4.文件管理功能
- 文件存储空间的管理
- 目录管理
- 文件的读写管理和保护
- 5.操作系统与用户之间的接口
- 用户接口
- 程序接口
- 6.现代操作系统的新功能
- 系统安全
- 网络的功能和服务
- 支持多媒体
5.OS结构设计
- 传统操作系统结构
- 无结构操作系统
- 模块化OS
- 分层式结构OS
- 微内核os结构
- 客户/服务器模式
- 面对对象的程序设计
第二章进程的描述与控制
前驱图和程序执行
程序并发执行
- 程序的并发执行
- 程序并发执行时的特征
- 间断性
- 失去封闭性
- 不可再现性
进程的描述
- 进程的定义
- 进程是程序的一次执行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
- 进程的特征
- 动态性
- 并发性
- 独立性
- 异步性
- 从操作系统角度分类
- 系统进程
- 用户进程
- 进程和程序的区别
- 进程是动态概念,而程序则是静态概念
- 程序是指令的有序集合,永远存在;进程强调是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
- 进程具有并发性,而程序没有
- 进程可创建其他进程,而程序并不能形成新的程序
- 进程是竞争计算机资源的基本单位,程序不是
- 进程和程序的联系
- 进程是程序在数据集上的一次执行
- 程序是构成进程的组成部分,一个程序可对应多个进程,一个进程可包括多个程序
- 进程的运行目标是执行所对应的程序
- 从静态看,进程由程序、数据和进程控制块(PCB)组成
- 进程的基本状态及转换
- 进程的三种基本状态
- 就绪状态ready
- 执行状态running
- 阻塞状态block
- 三种基本状态的转换
- 创建状态和终止状态
- 五状态进程模型
- 注意
- 阻塞态->运行态和就绪态->阻塞态这二种状态转换不可能发生
- 进程的三种基本状态
- 挂起操作和进程状态的转换
- 挂起和阻塞的区别
- 挂起操作的目的
- 终端用户的需要: 修改、检查进程
- 父进程的需要:修改、协调子进程
- 对换的需要:缓和内存
- 负荷调节的需要:保证实时任务的执行
- 关键图
- 进程管理中的数据结构
- 进程控制块PCB的作用
- 作为独立运行基本单位的标志
- 能实现间断性运行方式
- 提供进程管理所需要的信息
- 提供进程调度所需要的信息
- 实现与其他进程的同步与通信
- 进程控制块的信息
- 进程标识符
- 外部标识符PID
- 内部标识符(端口)
- 处理机状态
- 通用寄存器
- 指令计数器
- 程序状态字PSW
- 用户栈指针
- 进程调度信息
- 进程状态
- 进程优先级
- 进程调度所需的其他信息
- 事件
- 进程控制信息
- 程序和数据的地址
- 进程同步和通信机制
- 资源清单
- 链接指针
- 进程控制块的组织方式
- 线性方式
- 链接方式
- 索引方式
- 进程标识符
- 进程控制块PCB的作用
进程控制
- 操作系统内核
- 两大功能
- 支撑功能
- 中断管理
- 时钟管理
- 原语操作
- 进程的管理,由若干原语(primitive)来执行
- 资源管理功能
- 进程管理
- 存储器管理
- 设备管理
- 支撑功能
- 状态
- 系统态,管态,内核态
- 用户态,目态
- 两大功能
- 进程的创建
- 进程的层次结构
- 父进程
- 子进程
- 引起创建进程的事件
- 用户登录
- 作业调度
- 提供服务
- 应用请求
- 进程的创建过程
- 1.申请空白PCB
- 2.为新进程分配其运行所需的资源
- 3.初始化进程块PCB
- 4.如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
- 进程的终止
- 引起进程终止的事件
- 1.正常结束
- 2.异常结束
- 3.外界干预
- 进程的终止过程
- 1.根据被终止进程的标识符
- 引起进程终止的事件
- 进程的阻塞与唤醒
- 引起进程阻塞和唤醒的事件
- 请求系统服务而未满足
- 启动某种操作而阻塞当前进程
- 新数据尚未到达
- 无新工作可做:系统进程
- 进程阻塞过程(自己阻塞自己)
- 进程唤醒过程(系统或其他进程唤醒自己)
- 引起进程阻塞和唤醒的事件
- 进程的挂起与激活
- suspend
- active
- 进程的层次结构
- 进程同步
- 基本概念
- 两种形式的制约关系
- 间接相互制约关系
- 互斥——竞争
- 直接相互制约关系
- 同步——协作
- 间接相互制约关系
- 临界资源
- 分区
- 进入区enter section
- 临界区critical section
- 退出区exit section
- 剩余区remainder section
- 同步机制应遵循的规则
- 1.空闲让进
- 2.忙则等待
- 3.有限等待
- 4.让权等待
- 两种形式的制约关系
- 进程同步机制
- 软件同步机制:都没有解决让权等待,而且部分方法还会产生死锁的情况
- 硬件同步机制
- 关中断
- 利用Test-and-Set指令实现互斥
- 利用swap指令实现进程互斥
- 信号量机制
- 整型信号量
- 记录型信号量
- 由于整型信号量没有遵循让权等待原则,记录型允许负数,即阻塞链表
- AND型信号量
- 信号量集
- 理解:AND型号量的wait和signal仅能对信号施以加1或减1操作,意味着每次只能对某类临界资源进行一个单位的申请或释放。当一次需要N个单位时,便要进行N次wait操作,这显然是低效的,甚至会增加死锁的概率。此外,在有些情况下,为确保系统的安全性,当所申请的资源数量低于某一下限值时,还必须进行管制,不予以分配。因此,当进程申请某类临界资源时,在每次分配前,都必须测试资源数量,判断是否大于可分配的下限值,决定是否予以分配
- 操作
- Swait(S1,t1,d1…Sn,tn,dn)
- Ssignal(S1,d1…Sn,dn)
- 特殊情况
- 经典进程的同步问题
- 生产者–消费者问题
- 哲学家进餐问题
- 读者–写者问题
- 基本概念