第1章 计算机系统概述
1.1 操作系统的基本概念
1.1.1 操作系统的三大功能
参考博客:https://blog.csdn.net/weixin_43914604/article/details/104408571
操作系统有以下三大功能:
1.1.2 操作系统的四大特征
参考博客:https://blog.csdn.net/weixin_43914604/article/details/104416461
四大特征:并发、共享、虚拟、异步
这里注意区别并发和并行的概念:
并发
:两个或多个事件在同一时间间隔内
发生,这些事件在宏观上是同时发生的,在微观上是交替发生的。操作系统的并发性指系统中同时存在着多个运行的程序
并行
:两个或多个事件在同一时刻
发生
- 资源共享即共享,是指系统中的资源可以
供内存中多个并发执行的进程
共同使用
- 虚拟是把一个物理上的实体变为若干逻辑上的对应物。
- 异步:多道程序环境允许多个程序
并发
执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。
并发性和共享性互为存在条件
1.2 操作系统的分类
参考博客:https://blog.csdn.net/weixin_43914604/article/details/104445449
总共有以下8种,由前发展到后
1.3 操作系统的运行机制和体系结构
1.3.1 运行机制和体系结构
参考博客:https://blog.csdn.net/weixin_43914604/article/details/104452762
1.3.2 中断和异常
参考链接:https://blog.csdn.net/weixin_43914604/article/details/104462974
1.3.3 系统调用
参考链接:https://blog.csdn.net/weixin_43914604/article/details/104464558
第 2 章 进程管理
2.1 进程与线程
2.1.1 进程的定义、特征、组成、组织
参考博客:https://blog.csdn.net/weixin_43914604/article/details/104758221
PCB是什么?
PCB:进程控制块
(1)进程的定义
(2)进程的特征
(3)进程的组成
(4)进程的组织
2.1.2 进程的五种状态及状态转换
参考链接:https://blog.csdn.net/weixin_43914604/article/details/104819326
2.1.3 原语实现对进程的控制
参考链接:https://blog.csdn.net/weixin_43914604/article/details/104880533
(1)什么是进程控制?
(2)进程控制的五种原语
进程的创建、终止、唤醒、阻塞、切换。
什么是原语呢?
系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语。
具体细节内容就点上面博客链接了,这里主要是理一个大纲。
2.1.4 进程之间的三种通信
参考链接:https://blog.csdn.net/weixin_43914604/article/details/104882398
什么是进程通信呢?
进程通信是指进程间的信息交换。
三种通信:共享通信、消息传递、管道通信
2.1.5 线程概念与多线程模型
参考链接:https://blog.csdn.net/weixin_43914604/article/details/104885645
线程是处理机调度单位,进程是资源分配单位
(1)什么是线程
(2)线程的属性
(3)多线程模型
多对一模型
一对一模型
多对多模型
2.2 处理机的调度
2.2.1 处理机的三种调度
参考链接:https://blog.csdn.net/weixin_43914604/article/details/105323244
(1)调度的概念
(2)高级调度( 作业调度)
(3)中级调度(内存调度)
(4)低级调度(进程调度)
(5)三种调度对比
2.2.2 进程调度的时机、过程、方式
参考博客:https://blog.csdn.net/weixin_43914604/article/details/105324472
2.2.3 调度算法的五种评价指标
参考链接:https://blog.csdn.net/weixin_43914604/article/details/105325136
(1)CPU利用率
(2)系统吞吐量
系统吞吐量:单位时间内完成作业的数量
(3)周转时间
(4)等待时间
(5)响应时间
2.2.4 六种作业/进程调度算法
前三种参考链接:https://blog.csdn.net/weixin_43914604/article/details/105328521
后三种参考链接:https://blog.csdn.net/weixin_43914604/article/details/105333646
- 先来先服务(FCFS)
- 短作业优先(SJF)
- 高响应比优先(HRRN)
- 时间片轮转调度算法(RR)
- 优先级调度算法
- 多级反馈队列调度算法
(1)先来先服务(FCFS)
- First come first sever
(2)短作业优先(SJF)
- Shortest Job First
(3)高响应比优先(HRRN)
- Highest Response Ratio Next
问题:响应比是什么?
具体怎么计算参考链接博客
(4)前三种算法对比
(5)时间片轮(RR)
- Round-Robin
通俗讲,一人几分钟,轮流来。
(6)优先级调度算法
(7)多级反馈队列调度算法
(8)后三种算法对比
2.3 进程的同步与互斥
2.3.1 进程的同步与互斥
参考链接:https://blog.csdn.net/weixin_43914604/article/details/104942405
临界区一次只能进一个进程
实现临界区进程互斥的软件实现方法:
https://blog.csdn.net/weixin_43914604/article/details/104943004
实现临界区进程互斥的硬件实现方法:
https://blog.csdn.net/weixin_43914604/article/details/104944962
2.4 死锁
参考链接:https://blog.csdn.net/weixin_43914604/article/details/105437474
2.4.1 什么是死锁?
2.4.2 死锁产生的四个必要条件
互斥条件、不剥夺条件、请求和保持条件、循环等待条件
2.4.3 什么时候会发生死锁?
对不可剥夺资源的不合理分配
2.4.4 死锁的处理策略
(1)预防死锁
① 破坏互斥条件
采用SPOOLing技术将互斥的资源改造为共享资源
缺点:不是所有的资源都能改造成共享资源
② 破坏不可剥夺条件
强行释放手里的资源
③ 破坏请求和保持条件
进程一下子申请完所有需要的资源。
缺点:资源利用率低,可能造成某些进程饥饿
④ 破坏循环等待条件
相当于成环的链式资源分配改为不成环的顺序资源分配
(2)避免死锁:银行家算法
系统处于不安全状态未必死锁,但死锁时一定处于不安全状态。系统处于安全状态一定不会死锁。
什么是安全序列?
(3)死锁的检测和解除
① 死锁的检测
② 死锁的解除
三种方法:资源剥夺法、撤销进程法、进程回退法