寄存器,高速缓存(1,2,3级缓存),内存,磁盘swap区。
程序的编译,链接,装入内存。
编译:将源代码编译成机器可执行的代码片段。
链接:将编译后的代码片段和系统库函数链接成一个完整的可以执行的程序。
装入:将完整的可以执行的程序和数据装入到内存中。
内存分配方式:固定分区分配,动态分区分配(类似于链表),可重定位分配。
内存逻辑地址:按照某种数据结构编号组成的地址。如下面的页面和页表。
物理内存地址:内存中实实在在的地址。
地址转换寄存器:将逻辑地址转换为物理地址。
页面:将进程的逻辑地址空间分为多个相等的片,称为页面。编号从0开始。同时将进程所占用的物理内存按照固定大小分为若干块,称为物理块。
页表:根据页面分配信息,将页面的逻辑编号和物理块映射,如0页就是0号物理块。
请求分页存储管理:将程序按照固定大小分成多份,单位为页。当内存不够用的时候,将不用的页置换到swap区,然后将需要的再调入到内存。
请求分段存储管理:和请求分页的区别是,分段是按照作业的相关性来分段,这样有对于程序的开发和效率更友好,且对换入换出swap 区更高效。
请求分页,分段存储管理实现了虚拟存储。这些实现也需要一些硬件的支持。如页表机制,缺页中断机构,地址转换机构
页面置换算法:先进先出算法,最近最久未使用(LRU)置换算法,最佳置换算法,Clock置换算法
IO 多路复用技术
OIO NIO AIO 是什么?有什么区别,使用场景
操作系统内核自带的对文件打开,关闭,读写,获取元数据相应函数。
操作系统级别的文件共享技术。
DMA(直接存储器访问):一个较为简单的只能处理IO相关命令的特殊处理器。CPU 只需要简单的发送读取文件命令,DMA控制器就会接收到信号对IO外设进行读取,将需要的数据直接放入到内存或者外设中,操作完成之后向CPU 发送完成信号。这样CPU就不用处理这些低速的IO事务,而去执行计算任务,大大提高了CPU的效率。
IO 通道:基于DMA 来实现对多组数据块操作。此种方式比DMA方式能更好的提高CPU的使用效率。但是代价昂贵。
一个物理磁盘可以分为多个逻辑磁盘,每个逻辑磁盘可以单独使用。每个逻辑磁盘有专门的区域来存储目录和FAT表。一个逻辑磁盘有一个FAT表。Window 早期使用该方式。现在基本上都使用NTFS。
链接分配方式:一个文件由若干盘块号组成链表的方式。FAT NTFS都属于此种方式
FAT 表:存放物理盘的盘块号。每条记录最后还存放文件下一个块号,将形成一个文件块号链表。
FCB :文件控制块。每个文件都有一个,里面包含文件的基础信息。包含文件物理盘块的首个盘块号。
NTFS :以逻辑磁盘为单位,每个逻辑磁盘有一个MFT(master file table )。一个表里存放该磁盘所有的目录,文件,以及未分配的空间等元数据信息。这种技术以簇为单位来分配和回收磁盘空间。
簇:由若干个盘块组成的一个基本单位。
索引分配方式:一个文件由若干个盘块号对应的内容组成。此种方式直接将一个文件的所有盘块号存放在一个盘块。文件控制块中只要记录存放所有盘块信息的盘块号。针对大文件又可以分为多级索引。将文件所有的盘块号按照等级来存储。
原文:https://www.cnblogs.com/henuzyy/p/10826933.html