操作系统
- 系统资源的管理者
- 提供的功能
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
- 目标:安全、高效
- 作为用户和计算机硬件之间的接口
- 提供的功能
- 命令接口
- 联机命令接口
- 脱机命令接口
- 程序接口
- GUI(图形用户界面)
- 目标:方便用户使用
操作系统的特征
- 并发
- 共享
- 虚拟
- 异步
并发
并发:指两个或多个事件在同一时间间隔发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
并行:指两个或多个事件在同一时刻同时发生。
操作系统的并发性指计算机系统中同时存在着多个运行的程序。
共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
两种资源共享方式
- 互斥共享方式:一段时间内只允许一个进程访问资源。
- 同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问。
虚拟
是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
虚拟技术:
- 空分复用技术
- 时分复用技术
异步
计算机系统的层次结构
中断
1、当中断发生时,CPU立即进入核心态
2、当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3、对于不同的中断信号,会进行不同的处理
中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。(唯一途径)
核心态->用户态的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
系统调用
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
进程
进程实体(静态的):程序段、数据段、PCB
进程(动态的):是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
PCB:进程控制块
用来描述进程的各种信息(如程序代码存放位置),系统为每个运行的程序配置一个数据结构。
进程的特征
- 动态性
- 并发性
- 独立性
- 异步性
- 结构性
创建原语
1、申请空白PCB
2、为新进程分配所需资源
3、初始化PCB
4、将PCB插入就绪队列
进程通信
- 共享存储
- 消息传递
- 管道通信
线程
线程是一个基本的CPU执行单元,也是程序执行流的最小单位。线程是调度的基本单位。
引入线程后,进程只能作为除CPU之外的系统资源的分配单元。
线程是处理机调度的单位
进程是资源分配的单位
死锁
- 定义
在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象。
- 产生的必要条件
- 互斥条件
对必须互斥使用的资源的争抢(如哲学家的筷子、打印机设备)。
- 不剥夺条件
不由其他进程强行夺走,只能主动释放。
- 请求和保持条件
进程已经保持了一个资源,去请求新的资源,对自己的资源保持不放。
- 循环等待条件
进程资源的循环等待链。
预防死锁
破坏互斥条件、破坏不剥夺条件、破坏请求和保持条件、破坏循环等待条件。
1、把只能互斥使用的资源改造为允许共享使用。例如用SPOOLing技术将打印机改造为共享设备。
2、方案1 进程得不到满足时,主动释放
方案2 操作系统协调,强行剥夺
3、静态分配方法,即进程在运行前一次申请完它所需要的全部资源
4、顺序资源分配法,给系统资源编号,按编号递增顺序申请,相同编号的一次申请完。
避免死锁
银行家算法:在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源分配请求。
死锁的检测和解除:
资源分配图:依次消除与不阻塞进程相连的边,直到无边可消。
解除死锁的方法:
- 资源剥夺法
- 撤销进程法
- 进程回退法
如何决定“对谁动手”:
- 进程优先级
- 已执行时间
- 还要多久才完成
- 进程已经使用了多少资源
- 进程是交互式还是批处理式的