计算机体系概述
-
操作系统是什么
操作系统是计算机资源的管理者,包括了,处理机,内存,文件和设备管理 -
操作系统的特征
- 拟步享发(虚拟,异步,共享,并发)
-
管态和目态的区别
管态可以执行特权指令
目态可以执行非特权指令
通过系统调用,或者中断的方式实现切换 -
并发和并行的区别
并发是同一个时间间隔执行多个事件
并行是同一个时刻执行多个事件 -
微内核和大内核
- 大内核是把操作系统主要的功能放入核心态中
- 微内核是把操作系统的基本功能放入核心态中
-
系统调用和用户调用
系统调用是操作系统和应用程序之间的交互过程
一般调用是在用户态进行的
进程管理
-
进程的概念
动态运行的程序,是资源分配的基本单位,具有并发性 -
进程与线程的区别
- 进程是资源分配的基本单位,线程是系统调度的基本单位
- 一个进程中可以有多个线程,每个线程可以创建和撤销其他线程,多个线程可以并发执行
- 之所以引入线程,是因为进程切换的开销太大
-
进程(作业)调度算法
- 先来先,短作业优先,优先级算法,高响应比算法,多级队列算法
-
进程通信
- 共享存储:对共享空间进行互斥访问
- 消息传递:通过发送和接收原语进行数据交换
- 管道通信:开辟一个固定大小的空间,进行互斥访问
-
进程状态的切换
-
处理机调度
- 高级调度:从外存调入内存,只执行一次
- 中级调度:把暂时不用的进程调入外存(挂起),需要时调入
- 低级调度:从就绪队列中选择一个进程分配给处理机
-
同步和互斥的区别
- 同步是直接制约,顺序上的,次序上的制约,如,要完成 B 事务,必须先完成 A 事务。引入同步,是因为进程的并发性会丧失同步性
- 互斥是间接制约,多个进程访问同一个资源时,只有一个能访问,其他的进程必须等待,如果我们骑共享单车时,同一时间只准一个人骑车
-
同步机制的四个准则
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
-
临界区
- 使用临界资源的那段代码
-
死锁产生的条件(互不请循)
- 互斥
- 不可剥夺
- 请求并保持等待
- 循环等待
-
死锁的解决
- 死锁的预防
- 死锁的避免
- 死锁的检测与解除
- 银行家算法:主要思想是避免系统在资源分配是进入不安全状态,每次在分配资源的时候都检查系统是否有足够的资源,如果有就进行试验分配,没有则拒绝分配
-
饥饿与死锁的区别
- 饥饿是一个或者多个进程因为长时间等待,而在推进上受到影响
- 死锁是多个进程因为竞争同一个资源而陷入僵持局面,在没有外力的情况下无法推进
-
中断与异常的区别
- 中断是 cpu 指令外部的事务,如 IO 中断
- 异常是 cpu 指令内部的事务,如越界,算法溢出,非法操作符
-
管程
管程是对 PV 操作的一组封装,因为每次编写管程都会太麻烦,太分散,管程就是一种框架,库,封装好需要的操作,提供一个外在的接口用于数据通信
内存管理
-
内存分配算法
- 连续分配算法:单一连续分配,固定分区分配,动态分区分配(首次适应算法,最坏适应算法,最佳适应算法)
- 非连续分配算法:分页(按照物理划分,大小固定),分段(按照逻辑划分,大小不固定),段页
- 虚存分配:分页请求,分段请求,段页请求
-
页面置换算法
- 最佳页面置换算法,先来先算法,最近最久未使用,clock 算法
-
用户程序变为进程的步骤
-
编译
-
链接(静态链接,装入时动态链接,运行时动态链接)
-
装入(绝对装入,静态重定位,动态重定位)
-
局部性原理
- 时间局部性:被访问的指令将在不久后再次被访问
- 空间局部性:被访问的存储单元,其附近的存储单元将不久被访问
-
页面分配策略
固定分区局部置换
可变分区全局置换
可变分区局部置换
文件管理
-
文件的逻辑结构
- 无结构
- 有结构
- 顺序结构
- 索引结构
- 索引顺序结构
-
文件分配方式
- 连续分配
- 链接分配
- 索引分配
-
文件的目录结构
- 单机目录
- 多级目录
- 树型目录
-
文件存储空间的管理
- 空闲表法
- 位示图法
- 成组链接法
-
磁盘调入算法
- 先来先
- 最短寻道时间优先
- 电梯调度算法
输入输出管理
-
IO 控制方式
- 程序 IO 控制方式
- 中断驱动 IO 控制方式
- DMA 控制方式
-
缓冲区
为了解决 IO 设备和 cpu 之间速度不匹配的问题而设定的区域