文章目录
- 第1章
- 第2章
-
- 2.1.1 进程的定义、组成、组织方式、特征
- 2.1.2 进程的状态与转换
- 2.1.3 进程控制
- 2.1.4 进程通信
- 2.1.5 - 2.1.7 线程概念、实现和多线程模型以及转换
- 2.2.1 处理机调度的概念、层次
- 2.2.2 - 2.2.3 进程调度的时机、切换与过程调度方式
- 2.2.4 调度算法评价指标
- 2.2.5 FCFS、SJF、HRRN调度算法
- 2.2.6 - 2.2.7 RR、优先级调度算法、多级队列调度算法
- 2.3.1 进程同步、进程互斥
- 2.3.2 进程互斥的软件实现方法
- 2.3.3 进程互斥的硬件实现方法
- 2.3.4互斥锁
- 2.3.5 信号量机制
- 2.3.6 用信号量实现进程互斥、同步、前驱关系
- 2.3.6 生产者-消费者问题
- 2.3.7 多生产者-多消费者模型
- 2.3.8 吸烟者问题
- 2.3.9 读者-写者问题
- 2.3.10 哲学家进餐问题
- 2.3.11 管程
- 2.4.1 死锁的概念
- 2.4.2 死锁的处理策略——预防死锁
- 2.4.3 死锁的处理策略——避免死锁
第1章
1.1.1 操作系统的概念、功能和目标
作为用户和计算机硬件之间的接口。
提供的功能
- 命令接口
- 联机命令接口
- 脱机命令接口
- 程序接口
- GUI(图形用户界面)
- Windows
- iOS
- Android
目标
- 方便用户使用
1.1.2 操作系统的特征
并发与并行
- 并发:多个事件交替发生(宏观上同时发生、微观上交替进行)
- 并行:多个事件同时发生
共享
- 两种资源共享方式
- 互斥共享方式:一个时间段内只允许
一个进程
访问该资源 - 同时共享方式:一个时间段内允许
多个进程
“同时”访问
- 互斥共享方式:一个时间段内只允许
虚拟
概念:把一个物理上的实体变为若干个逻辑上的对应物。
- 空分复用计数
- 时分复用计数
异步
概念:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停的,以不可预知的速度向前推进。只有系统具有并发性,才有可能导致异步性。
1.1.3 操作系统的发展与分类
OS的发展与分类
- 手工操作阶段
- 纸带机(用户独占全机、人机速度矛盾)
- 批处理阶段——单道
- 单道批处理系统(外围机——磁带)
- 多道批处理系统(操作系统开始出现)
- 分时操作系统
- 轮流处理作业
- 不能处理紧急任务
- 实时操作系统
- 优先处理紧急任务
- 硬实时系统:必须在严格的时间内完成处理
- 软实时系统:可以偶尔犯错
- 网络操作系统
- 分布式操作系统
- 个人计算机操作系统
1.1.4 操作系统的运行机制与体系结构
OS的运行机制和体系结构
运行机制
- 两种指令
- 特权指令
- 非特权指令
- 两种处理器状态
- 核心态(root)
- 用户态
- 两种程序
- 内核程序(运行在核心态)
- 应用程序
操作系统内核
- 时钟管理(实现计时功能)
- 中断处理
- 原语(程序运行具有原子性,不可中断)
- 对系统资源进行管理的功能
- 进程管理
- 存储器管理
- 设备管理
操作系统的体系结构
- 大内核(将操作系统的主要功能模块都作为系统内核,运行在核心态)
- 微内核(只把最基本的功能保留在内核)
1.1.5 中断和异常
中断机制的诞生:操作系统介入,开展管理工作。“用户态—>核心态”是通过中断实现的,并且中断是唯一途径。
中断的概念和作用
中断的分类
- 内中断(异常)
- 陷阱(trap)
- 故障(fault)
- 中止(abort)
- 外中断(CPU外部)
外中断的处理过程
1.1.6 系统调用
概念:应用程序通过系统调用请求操作系统的服务。保证系统的稳定性和安全性。
系统调用和库函数的区别:
- 系统调用是操作系统向上层提供的接口。
- 有的库函数是对系统调用的进一步封装。
- 当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用。
第2章
2.1.1 进程的定义、组成、组织方式、特征
定义:
组成:PCB(进程存在唯一的标志),程序段,数据段。
组织方式:
- 链接方式,指针指向不同的队列;
- 索引方式,索引表。
特征:
- 动态性
- 并发性
- 独立性
- 异步性
- 结构性
2.1.2 进程的状态与转换
状态:
-
运行态:占有CPU,并在CPU上运行。单核只能一个进程运行,双核则可以运行两个。(CPU: √,其它资源: √)
-
就绪态:已经具备运行条件,但是没有空闲的CPU,暂时不能运行。(CPU: X,其它资源: √)
-
阻塞态:等待某个事件的发生,暂时不能运行。(CPU: X,其它资源: X)
-
创建态:创建进程控制块(PCB),程序段,数据段。
-
终止态:回收内存,程序段,数据段,撤销PCB。
在进程的大部分生命周期,都处于三种基本状态。