包含老师上课画的重点
整体上来说考试要求还是比较简单的,跟着我过一遍本文,包过。
一共分为5章,4章是重点章节
结构 | 一言以蔽之 |
---|
整体式结构 | 用户态包含应用和系统库,核心态包含系统调用和底层的设备驱动以及内核。 |
层次式结构 | 分为进程、文件、存储、设备、硬件管理五部分 |
客户/服务器结构 | 用户态是客户服务器、进程服务器、文件服务器、存储服务器。核心态是硬件和微内核 |
虚拟机 | 一个操作系统划分为多个子操作系统,每个操作系统有相应的应用程序 |
- 内核态:CPU访问内存所有的数据和进行所有的操作。包括磁盘,程序切换。
- 用户态:仅能有限的访问数据和操作。不允许访问外围设备。
- 特权指令:只能在内核态操作的指令,其余的为非特权指令。
PV为重点!
生产者消费者模型
简单的模型
int buffer;
semaphore sp(缓冲区为空,可以放入)=1,sc(没有产品可以用来消费)=0;
process producer(void)
{
while(1)
{
生产产品
P(sp);
buffer=产品
V(sc);
}
}
process customer(void)
{
while(1)
{
P(sc);
消费=buffer;
V(sp);
消费商品
}
}
1.IO中断 2.外部中断 3.程序中断 4.硬件故障中断 5.访管中断
- 管程的三大特性
1.互斥性 2.共享性 3.安全性 - 管程定义
是一种若干数据结构,变量,函数组成的特殊数据结构。进程可以使用提供的接口,但是不可以使用其内部的结构。
- 死锁的四个必要条件
- 互斥使用资源
- 占用且申请资源
- 不可抢占式分配资源
- 循环等待
- 死锁的原因
- 同类资源分配不合理
- 进程推进顺序不合理
- 何如预防死锁
- 可抢占式分配资源
- 资源按需分配
- 资源静态分配
- 死锁定理:当一个进程的资源分配图完全不可以简化的时候,就发生了死锁
例题:n个进程,共享m个资源。每个进程最多分配多少个(X)资源不会发生死锁?
满足公式:n(X-1) + 1 <= m
例题:n个进程,一个使用X个资源。最少分配多少个(m)资源不会发生死锁?
满足公式:n(X-1) + 1 <= m
- 快表是什么?
将最近访问的页表部分内容存入相联缓存器,则其中的页表则为快表
- 当作业要访问的页面不在主存的时候,由缺页中断服务函数将页面调到主存中去。若主存空间不够,需要将一定的页面置换出来。
- 页面置换算法
- FIFO先进先出
- LRU(最近最久未使用置换)
1.什么是设备驱动程序?
答:是主机和设备之间特殊的程序。是驱动IO,IO控制器,DMA控制器的代码的集合。是硬件的接口。设备必须要有设备驱动程序
2.设备驱动程序的作用?
答:1.检查用户发送的IO指令的合法性 2.发送IO指令控制设备 3.处理设备的硬件异常
- 软件IO,分为系统调用和spooling技术
- 软件IO的作用是什么?:高效(提高IO效率),统一规范标准
- IO通道控制方式
- 字节多路通道: 低速IO,适合用于打印机等等
- 数组选择通道: 高速IO适合磁盘等。同时只允许一个设备传输。
- 数组多路通道: 高速IO,同时适合多个设备传输。
- spooling的作用:能同时操作多个外围设备。
将独立设备变成共享设备。提高系统效率。 - 为什么要使用缓冲?
- CPU和IO设备速率不匹配
- 逻辑记录大小与物理记录大小不一致
- DMA控制,通道控制会使进程长时间等待
- 硬件缓存:硬件上有相应寄存器 软件缓存:使用临时区域存储数据
- 磁盘的三个参数?三个时间?
参数:1. 柱面号 2. 磁头号 3. 扇区号
时间:1. 寻找时间 2. 延迟(旋转)时间 3. 传输时间
- 顺序存取—根据顺序记录存取
- 随机存取—根据编号直接移动到记录地址进行读写操作
- 按键存取—根据key值得到逻辑记录,再去找到物理记录
- 顺序结构
- 链表结构
- 索引结构:
- 哈希结构:通过key值找到物理地址,适合无序快速查找
- 位示图
- 空闲文件目录
- 空闲块表(组织成链表,效率低下)