操作系统
并发与并行
并发强调多个任务同时存在
并行强调多个任务同时执行
并行是并发的子集
操作系统的基本功能
- 文件管理
- 进程管理
- 内存管理
- 设备管理
进程与线程
进程
进程是资源分配的最小单位,由进程控制块PCB保存进程相关信息
线程
线程是调度的最小单位,一个进程可以有多个线程,同一个进程的多个线程共享进程资源
进程与线程的区别
- 进程是资源分配的单位,线程不用有资源
- 线程是独立调度的基本单位,同进程的线程切换不会引起进程切换,不同进程的线程切换会引起进程切换
- 进程开销大,线程开销小
- 线程间通信通过共享数据,进程间通信通过IPC
进程调度算法
- 先来先服务FCFS
- 短作业优先SJF
- 时间片轮转
- 多级队列
- 多级反馈队列
进程同步
进程通信
- 管道
- 共享存储
- 消息队列
- 信号量
- 套接字
死锁
必要条件
- 互斥
- 不可抢占
- 占有等待
- 环路
如何避免死锁
银行家算法
思想:判断此次请求是否会造成死锁,如果是则拒绝请求,否则允许
内存
分页
页面置换算法
- 最佳OPT:置换最不可能被使用的页面,理想算法
- 最近最少使用LRU:维护页面链表
- 最近未使用NRU:为每个页面设置读标记R和写标记M,每次替换使用程度最轻的页面
- 先进先出FIFO:
- 第二次机会:页面链表,访问位,改良FIFO,最老的页面被访问过,则将其访问位清零并移到链表尾
- 时钟算法:将链表改为环形链表