简单来说就是将内存分为若干固定大小的区域,每个区域存储一个程序或进程。
简单总结来说页式存储就是将物理内存和逻辑内存划分为固定大小的页,实现灵活的内存管理。
每个页分为页号和页内地址,页号用来和块号对应,代表存储的位置,大小可以代表页的数量页内地址代表的是存储的数据内容大小可以代表数据大小
Q:什么是抖动现象?
A:在存储管理中,抖动现象通常指的是在虚拟内存系统中,由于页面置换算法的不断执行而导致的频繁页面调度和物理内存的不断变动。这种不断的页面调度可能会导致性能的波动,称为抖动。
由页内地址+页号组成。
页内地址:决定了每一页能存储的最大值。
(1)页内地址也叫块内地址,因为页的大小跟块的大小是相等的,里面的编号的个数都是一致的。
(2)如图所示,页内地址的编号从0~11,也就是12位二进制,就有2的12次方个编码,所以这个页内地址指定的页的大小或者块的大小就是4K.
页号:决定了在整个页式存储中,程序做多能分多少个页。
(1)决定页的编号(是第几个页,它的编号)。
(2)如图所示,页号从12到31,共20个位二进制,也就是2的20次方个页,所以这个程序最多分1M个页。
一句话总结这个算法的目的就是根据页面访问情况,选择合适的页面进行替换,以优化内存利用
理论上的算法无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距 。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的。
先调入内存的页先被置换淘汰,会产生抖动现象, 即分配的页数越多,缺页率可能越多(即效率越低)
在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象。(效率最高的)
简单总结快表就是在页式存储中,用于快速查找物理页框的高速缓存,提高地址转换效率的方式
快表是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号(可以看成是页表的频繁访问数据的副本)。
快表与慢表的区别
快表是将页表存于Cache中
慢表是将页表存于内存上
慢表需要访问两次内存才能取出数据,而快表是访问一次Cache和一次内存,因此更快。
将程序或进程划分为若干逻辑段,每段具有不同的长度,实现更灵活的内存分配
将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的
一句话总计段页式存储结合了段式存储和页式存储的特点,既具备段的灵活性又有页的高效管理
计算机系统中采用的索引文件结构如下图所示:系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB* 10=40KB数据:10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接 物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可标10244KB=4098KB数据。
二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为1024 1024*4KB数据。
树形结构主要是区分相对路径和绝对路径,如图下图:
当前处于D1文件下,如果想要寻找F2,如果是是相对路径就是直接“W2”,如果是绝对路径,必须要从根目录“/”出发,应该是“/D1/W2”。
是从当前路径开始的路径
是从根目录开始的路径
全文件名=绝对路径+文件名。要注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。
将所有空闲空间整合成一张表,即空闲文件目录,记录每个连续空闲区的起始盘块号、盘块数。
将所有空闲空间链接成一个链表,根据需要分配
适用于离散分配的物理结构。
操作系统保存着链头,链尾指针
操作系统保存着链头,链尾指针
既分组,每组内又链接成链表,是上述两种方法的综合
对每个物理空间用一位标识,为1则使用,为0则空闲,形成张位示图
微内核,顾名思义,就是尽可能的将内核做的很小,只将最为核心必要的东西放入内核中,其他能独立的东西都放入用户进程中,这样系统就被分为了用户态和内核态,如下图所示:
实质 | 优点 | 缺点 | |
---|---|---|---|
单体内核 | 将图形 、设备驱动及文件系统等功能全部在内核中实现,运行在内核状态和同一地址空间 | 减少进程间通信和状态切换的系统开销,获得较高的运行效率 | 内核庞大,占用资源较多且不易裁剪 。系统的稳定性和安全性不好 |
微内核 | 只实现基本功能,将图形系统、文件系统设备驱动及通信功能放在内核之外 | 内核精炼,便于裁剪和移植。系统服务程序运行在用户地址空间,系统的可靠性 、稳定性和安全性较高 。可用于分布式系统。 | 用户状态和内核状态需要频繁切换,从而导致系统效率不如单体内核 |
嵌入式系统初始化过程按照自底向上 、从硬件到软件的次序依次为芯片级初始化->板卡级初始化->系统级初始化
芯片级是微处理器的初始化,板卡级是其他硬件设备初始化,系统级初始化就是软 件及操作系统初始化。