估计阅读时长:18min
目录
- 操作系统的主要组成部分
- 进程和线程
- 进程的定义
- 线程的定义
- 两者关系
- 线程同步的方式
- 进程的通信方式
- 进程的三种状态
- 进程调度策略
- windows内存管理
- 虚拟内存
- 内存映射文件
- 内存堆栈
- 中断和轮询
- 中断的定义
- 轮询的定义
- 临界区和冲突解决
- 临界资源的定义
- 临界区的定义
- 解决冲突
- 缓冲区溢出
- 缓冲区溢出的定义
- 缓冲区溢出的危害
- 缓冲区溢出的原因
- 死锁
- 死锁的定义
- 死锁的条件
- 避免死锁
- 处理死锁
- 分页和分段
- 页的定义
- 段的定义
- 两者区别
操作系统的主要组成部分
进程和线程的管理、存储管理、设备管理、文件管理
进程和线程
进程的定义
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动
进程是系统进行资源分配和调度的一个独立单位
线程的定义
线程是进程的一个实体,是CPU调度和分派的基本单位
两者关系
一个进程可以有多个线程,多个线程也可以并发执行
线程同步的方式
互斥量、信号量、事件
进程的通信方式
管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET
进程的三种状态
就绪状态、运行状态、阻塞状态
进程调度策略
FCFS(先来先服务),优先级,时间片轮转,多级反馈
windows内存管理
虚拟内存
最适合用来管理大型对象或者结构数组
内存映射文件
最适合用来管理大型数据流以及在单个计算机上运行多个进程之间共享数据
内存堆栈
最适合用来管理大量的小对象
中断和轮询
中断的定义
指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程
轮询的定义
定时对各种设备轮流询问一遍有无处理要求
临界区和冲突解决
临界资源的定义
一次仅允许一个进程使用的资源
临界区的定义
每个进程中访问临界资源的那段程序
解决冲突
- 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入
- 任何时候,处于临界区内的进程不可多于一个
- 进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区
- 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象
缓冲区溢出
缓冲区溢出的定义
指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上
缓冲区溢出的危害
程序崩溃导致拒绝服务、跳转并且执行一段恶意代码
缓冲区溢出的原因
程序中没有仔细检查用户输入的参数
死锁
死锁的定义
在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。
死锁的条件
互斥、不可抢占、占有并等待、环形等待
避免死锁
对资源的分配要给予合理的规划
处理死锁
鸵鸟策略、预防策略、避免策略、检测与恢复策略
分页和分段
页的定义
用户程序的地址空间被划分成若干固定大小的区域
段的定义
将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息
两者区别
- 段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的 ;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
- 段的大小不固定,有它所完成的功能决定;页大大小固定,由系统决定
- 段向用户提供二维地址空间;页向用户提供的是一维地址空间
- 段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制