ZKX's LAB

linux上,C代码被编译链接成可执行文件后,被加载运行的过程具体是怎样的? tlb 缺页中断

2020-10-02知识2

在操作系统的页表问题中提到了某个页面不在内存时,用于保存该页面的磁盘地址不是页表的一部分 地址变换的整个过程大概是这样的。首先拿到一个逻辑地址,然后拿这个逻辑地址的虚拟页号,到页表上去进行比对(没有TLB)的情况。如果比对存在,说明这个块已经被调入内存了,如果不在,则会产生缺页中断,缺页中断就会启动I/O,然后去外存调块。

OS问题,求详细解答,问题如下

linux上,C代码被编译链接成可执行文件后,被加载运行的过程具体是怎样的? 《深入理解计算机系统》一书在提到加载器是如何工作时讲到“…父进程生成一个子进程,它是父进程…

arm上实现内存管理的单元叫什么 arm上实现内存管理的单元叫存储器管理单元。MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表,此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM中还是在大容量存储器设备中。如果数据不在RAM中,MMU将产生缺页中断。MMU的两个主要功能如下:1.将虚地址转换成物理地址。2.控制存储器存取允许。嵌入式系统中,存储系统差别很大,可包含多种类型的存储器件,如FLASH、SRAM、SDRAM、ROM等,这些不同类型的存储器件速度和宽度等各不相同;在访问存储单元时,可能采取平板式的地址映射机制对其操作,或需要使用虚拟地址对其进行读写;系统中,需引入存储保护机制,增强系统的安全性。为适应如此复杂的存储体系要求,ARM处理器中引入了存储管理单元来管理存储系统。

计算机操作系统分页问题? 与分页有关的工作操作系统在四段时间里做与分页有关的工作:进程创建时,进程执行时,缺页中断时和进程终止时。当在分页系统中创建一个一个新进程时,操作系统需要确定该进程的程序和数据在初始时有多大,并为它们创建一个页表。操作系统还要在内存中为页表分配空间并对其进行初始化。当进程被换出时,页表不需要驻留在内存中,但当进程运行时,页表必须在内存中。另外,操作系统要在磁盘交换区中分配空间,以便在一个进程换出时在磁盘上有放置此进程的空间。操作系统还要用程序正文和数据对交换区进程初始化,这样当新进程发生缺页中断时,可以调入需要的页面。某些操作系统直接从磁盘上的可执行文件对程序正文进行分页,以节省磁盘空间和初始化时间。最后,操作系统必须把有关页表和磁盘交换区的信息存储在进程表中。当调度一个进程执行时,必须为新进程重置MMU,刷新TLB,以清除以前的进程遗留下的痕迹。当缺页中断发生时,操作系统必须通过读硬件寄存器来确定是哪个虚拟地址造成的缺页中断。并计算出需要的页面以及要替换的老的页面。最后,还要备份程序计数器,使其指向引起缺页终端的指令,并重新执行该指令。当进程退出的时候,操作系统需要释放进程的页表,。

#mmu#内存管理#arm#地址#页表

随机阅读

qrcode
访问手机版