本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
一 文件管理
1.1 索引文件结构
如下图所示,系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB*10=10KB数据;
10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存1024*4KB=4098KB数据。
二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为102410244KB 数据。
1.2 文件和树形目录结构
文件安全分为四级,从高到低分别为:系统安全、用户安全、目录安全、文件安全。
- 相对路径:是从当前路径开始的路径。
- 绝对路径:是从根目录开始的路径。 全文件名=绝对路径+文件名。要注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。
- 树形结构主要是区分相对路径和绝对路径,如下图所示:
1.3 空闲存储空间的管理
- 空闲区表法:将所有空闲空间整合成一张表,即空闲文件目录。
- 空闲链表法:将所有空闲空间链接成一个链表,根据需要分配。
- 成组链接法:既分组,每组内又链接成链表,是上述两种方法的综合。
- 位示图法:
重要,对每个物理空间用一位标识,为1则使用,为0则空闲,形成一张位示图。
二 设备管理
设备的分类方式:
- 按数据组织分类:块设备、字符设备。
- 资源分配角度分类:独占设备、共享设备和虚拟设备。
- 数据传输速率分类:低速设备、中速设备、高速设备。
2.1 I/O软件
I/O设备管理软件的所有层次及每一层功能如下图:
2.2 输入输出技术
程序控制(查询)方式: CPU主动查询外设是否完成数据传输,效率极低。
程序中断方式:外设完成数据传输后,向CPu 发送中断,等待CPu 处理数据,效率相对较高。适用于键盘等实时性较高的场景。
中断响应时间指的是从发出中断请求到开始进入中断处理程序;中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。
DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路,效率很高。适用于硬盘等高速设备。
在一个总线周期结束后,CPu会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时;区分指令执行结束和总线周期结束。
通道:也是一种处理机,内部具有独立的处理系统,使数据的传输独立于CPU。分为字节多路通道的传送方式(每一次传送一个通道的一个字节,多路通道循环)和选择通道的传送方式(选择一个通道,先传送完这个通道的所有字节,再开始下一个通道传送)。
2.3 虚设备和SPOOLING技术
一台实际的物理设备,例如打印机,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。
引入SPOOLING技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化。如下图所示:
三 微内核操作系统
微内核,顾名思义,就是尽可能的将内核做的很小,只将最为核心必要的东西放入内核中,其他能独立的东西都放入用户进程中,这样,系统就被分为了用户态和内核态,如下图所示:
单核和微内核的优缺点上面也介绍了,单核方便进程切换,但是内核庞大,稳定性弱;微内核稳定性高,便于裁剪,但是进程间的切换消耗资源,效率低。
四 嵌入式操作系统
- 嵌入式操作系统特点:微型化、代码质量高、专业化、实时性强、可裁剪可配置。
- 实时嵌入式操作系统的内核服务:异常和中断、计时器、I/o管理。
- 常见的嵌入式RTOS(实时操作系统): vxWorks、RT-Linux、QNX、 pSOs 。