计算机操作存储,文件,设备管理
存储管理
页式存储
页式存储是操作系统的一种存储管理方式。通过页表来进行映射程序中的页在内存中的块的存储
进程(程序)中的地址, 我们称之为逻辑地址(虚地址),而内存中的地址我们称之为物理地址(实地址);
每个页分为页号和页内地址, 页号用来和块号对应, 代表存储的位置, 大小可以代表页的数量,页内地址代表的是存储的数据内容, 大小可以代表数据大小
优点: 利用率高 、碎片小(只在最后一个页中有) 、分配及管理简单 。缺点: 增加了系统开销,可能产生抖动现象。
默认页面大小是4K,逻辑地址十六进制1D16H,H代表是十六进制,所以数据是1D16, 通常来说1是页码,D16是数据,所以物理地址就是1对应的块号,数据不变还是D16
页面置换算法
缺页表示需要执行的页不在内存物理块中, 需要从外部调入内存, 会增加执行时间,因此, 缺页数越多, 系统效率越低。
最优算法: OPT,理论上的算法, 无法实现, 是在进程执行完后进行的最佳效率计算, 用来让其他算法比较差距 。原理是选择未来最长时间内不被访问的页面置换, 这样可以保证未来执行的都是马上要访问的。
先进先出算法: FIFO, 先调入内存的页先被置换淘汰, 会产生抖动现象, 即分配的页数越多, 缺页率可能越多(即效率越低)
最近最少使用: LRU,在最近的过去, 进程执行过程中, 过去最少使用的页面被置换淘汰, 根据局部性原理,这种方式效率高, 且不会产生抖动现象。
最少访问过的先淘汰掉
快表(TLB)
快表是一块小容量的相联存储器, 由快速存储器组成, 按内容访问, 速度快, 并且可以从硬件上保证按内容并行查找, 一般用来存放当前访问最频繁的少数活动页面的页号(可以看成是页表的频繁访问数据的副本)。
快表是将页表存于Cache中
慢表是将页表存于内存上
因此慢表需要访问两次内存才能取出数据, 而快表是访问一次Cache和一次内存, 因此更快
第一次去拿页号,第二次去拿物理地址
段式存储
将进程空间分为一个个段, 每段也有段号和段内地址, 与页式存储不同的是, 每段物理大小 不同, 分段是根据逻辑整体分段的
地址表示: (段号, 段内偏移):其中段内偏移不能超过该段号对应的段长, 否则越界错误,而此地址对应的真正内存地址应该是: 段号对应的基地址(所存储的位置)+段内偏移。
优点: 程序逻辑完整, 修改互不影响
缺点: 内存碎片浪费大,导致内存利用率低。
段表,段号,基地址,段长,看是否越界,是看的段长,不是基地址(0,1597)。0是段号,1597是段内偏移,就是段长
段页存储
对进程空间先分段, 后分页,段表每个段号再对应一个页表, 优缺点如下:
优点: 空间浪费小 、存储共享容易 、能动态连接。
缺点: 由于管理软件的增加, 复杂性和开销也增加, 执行速度下降
文件管理
文件结构
计算机系统中采用的索引文件结构如下图所示:
系统中有13个索引节点, 0-9为直接索引, 即每个索引节点存放的是内容, 假设每个物理
盘大小为4KB, 共可存4KB*10=40KB数据;
10号索引节点为一级间接索引节点, 大小为4KB, 存放的并非直接数据, 而是链接到直
接 物理盘块的地址, 假设每个地址占4B, 则共有1024个地址, 对应1024个物理盘, 可
存1024x4KB=4096KB数据。
二级索引节点类似, 直接盘存放一级地址, 一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块, 容量又扩大了一个数量级, 为1024x1024x4KB数据。
8个地址项0,1,2,3,4,5,6,7,每个地址项大小4字节,5个地址为直接索引0,1,2,3,4,2个是一级索引5,6,一个是二级索引7,,磁盘索引块和磁盘数据块大小为1KB,访问文件的逻辑块号为5和518,块号为5是第6个,块号518是第519个,地址是4字节,1kb大小,则一级索引就可以存256个,两个1级索引就是512,,加上前面5个直接索引就是5个数据,就是517
单个文件最大长度就是直接索引加一级索引加二级索引的总和
树形文件
相对路径: 是从当前路径开始的路径,不包括当前的工作目录。
绝对路径: 是从根目录开始的路径。
空间存储
空闲区表法: 将所有空闲空间整合成一张表, 即空闲文件目录。
空闲链表法: 将所有空闲空间链接成一个链表, 根据需要分配。
成组链接法: 既分组, 每组内又链接成链表, 是上述两种方法的综合。
位示图法: 对每个物理空间用一位标识, 为1则使用, 为0则空闲, 形成一 张位示图。
32位,0到31每个对应一个物理块,一排就是一个字,字长就是32,第几个字就是第几排
4195号就是第4196个数据,4196除以32得131余4,131存满,第132个字,也就是第132排
余4就是第4个位置,0,1,2,3, 3号位是1,已经存储了
微内核操作系统
微内核, 顾名思义, 就是尽可能的将内核做的很小, 只将最为核心必要的东西放入内核中, 其
他 能独立的东西都放入用户进程中, 这样, 系统就被分为了用户态和内核态
嵌入式操作系统
嵌入式操作系统特点: 微型化 、代码质量高 、专业化 、实时性强 、可裁剪可配置。
实时嵌入式操作系统的内核服务: 异常和中断 、计时器 、I/O管理。
常见的嵌入式RTOS(实时操作系统):VxWorks、RT-Linux、QNX、pSOS。
嵌入式系统初始化过程按照自底向上 、从硬件到软件的次序依次为:
芯片级初始化->板卡级初始化->系统级初始化。
芯片级是微处理器的初始化, 板卡级是其他硬件设备初始化, 系统级初始化就是软 件及操作系统初始化。
设备管理
SPOOLING技术
外设建立两个缓冲区,输入井和输出井,数据排队打印,每个进程都在用一个打印机,设备虚拟化