目录
操作系统
1、操作系统的功能?
1)操作系统是计算机资源的管理者
- 处理机管理(进程切换、进程调度、死锁)
- 存储器管理(扩孔内存、内存的保护和共享、提高内存的利用率、内存的分配和回收、地址映射)
- 文件管理
- 设备管理(完成用户的I/O请求、方便用户使用设备、提供设备的利用率)
2)操作系统为用户提供了使用计算机硬件系统的接口(系统调用 )
- 命令接口:用户通过控制台或终端输入操作命令,向系统提供各种服务要求
- 程序接口:由系统调用组成,用户在程序中使用这些系统调用来请求操作系统为其提供服务
- 图形接口:最常见的图形用户界面GUI (最终还是通过调用程序接口实现的)
3)操作系统用作扩充机器
- 没有任何软件支持的计算机称为裸机,实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。
- 操作系统将裸机改造成功能更强、使用更方便的机器。
- 我们将覆盖了软件的机器称为扩充机器或虚拟机。
2、操作系统的特征?
并发:计算机系统中同时运行多个应用程序。
共享:系统中的资源可供内存中多个并发执行的进程使用。
虚拟:将物理上的实体变成若干逻辑上的对应物。
异步:多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行已不可预知的速度前进。
3、什么是内核?
内核是计算机上配置的底层软件,是计算机功能的延伸。
1)时钟管理:时钟的第一功能是计时,向用户提供标准的系统时间;通过时钟中断的管理,可以实现进程的切换。
- 在分时操作系统中:采用时间片轮转进行调度的实现;
- 在实时系统中:按截至时间控制运行的实现;
- 在批处理系统中:通过时钟管理来衡量一个作业的运行程度等。
2)中断机制:提高多道程序运行环境中CPU的利用率
3)原语:
- 处于操作系统的最底层,是最接近硬件的部分。
- 这些程序的运行具有原子性,其操作只能一气呵成
- 这些程序的运行时间都较短,而且调用频繁。
4)系统控制的数据结构及处理:进程管理、存储器管理、设备管理
4、什么是大内核和微内核?
大内核 | 微内核 | |
将操作系统的主要功能模块都作为系统内核,运行在核心态 | 只把最基本的功能保留在内核 | |
优点 | 高性能 | 内核功能少,结构清晰,方便维护 |
缺点 | 内核代码庞大,结构混乱,难以维护 | 性能低,需要频繁地在核心态和用户态之间切换 |
进程管理
进程
1、进程的5种状态
- 创建态
- 就绪态
- 阻塞态
- 运行态
- 终止态
2、进程的通信方式
共享内存:两个进程同时共享一块内存
无名管道:只能在具有亲缘关系的进程之间进行通信
命名管道:可以在不具有亲缘关系的进程之间进行通信
消息队列:存放在内核中
套接字:不同机器间的进程之间进行通信
3、进程和线程的区别
线程依赖于进程,一个进程至少有一个线程。
进程 | 线程 | |
调度 | 系统资源的分配和调度 | CPU资源的分配和调度 |
崩溃现象 | 多进程程序中,一个进程崩溃不会对其他进程造成影响 | 多线程程序,一个线程崩溃,会导致程序崩溃 |
地址 | 独立地址 | 共享所属进程的地址空间 |
资源 | 拥有系统资源的一个独立单位 | 基本不同有系统资源,只拥有一点在运行时必不可少的资源 |
切换开销 | 大 | 小 |
3、进程和程序的区别
进程是程序的一个执行过程。
进程 | 程序 |
动态 | 静态 |
并发性 | 没有并发性 |
暂时的 | 永存的 |
4、进程的调度算法
- 先来先服务
- 短作业优先
- 优先级调度
- 最高响应比优先
- 时间片轮转
- 多级反馈队列
死锁&饥饿
1、产生死锁的原因
- 系统资源不足
- 进程推进顺序不当
2、产生死锁的必要条件
- 互斥
- 请求和保持
- 不剥夺条件
- 环路等待条件
3、处理死锁的方法
- 预防死锁
- 避免死锁
- 检测死锁
- 解除死锁
4、进程的同步和互斥
同步:多个进程因合作关系而具有一定的先后顺序
互斥:多个进程在同一个时刻只能有一个进程进入临界区
5、同步机制的四个准则
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
银行家算法
3.内存管理
3.1、存储器的功能?
3.1.1-内存的分配和管理
连续分配
单一连续分配:系统区、用户区
固定分区分配:会产生内部碎片
动态分区分配:会产生外部碎片
- 首次适应
- 最佳适应
- 最坏适应
- 临近适应
非连续分配
虚拟内存:请求分页
页面置换算法
- 最佳置换
- 先进先出置换
- 最近最久未使用
- 时钟置换算法
3.1.2-地址变换:逻辑地址转变为物理地址
3.1.3-扩充内存
覆盖技术
交换技术
3.1.4-存储保护
3.2、执行过程
编译
链接
静态链接
装入时动态链接
运行时动态链接
装入
绝对装入
可重定位装入
动态运行装入