视频字幕
地址翻译是操作系统内存管理的核心机制。程序在运行时使用的是逻辑地址,也叫虚拟地址,这些地址需要转换为实际的物理地址才能访问内存。就像邮政系统一样,我们写信时使用的地址需要邮局转换为具体的投递路线。地址翻译确保了程序的独立性和内存的有效管理。
静态重定位是最简单的地址翻译方式。程序装入内存时,装入程序将所有逻辑地址加上基址,一次性转换为物理地址。例如,逻辑地址100H加上基址1000H得到物理地址1100H。这种方式简单高效,但程序装入后不能移动,内存利用率较低,适用于单道程序系统。
动态重定位在程序运行时实时完成地址转换。CPU发出逻辑地址,通过加法器与基址寄存器中的值相加,得到物理地址。界限寄存器用于检查地址是否越界,保证内存访问的安全性。例如逻辑地址100H加上基址1000H得到物理地址1100H。这种方式允许程序在内存中移动,提高了内存利用率。
分页系统将逻辑地址分解为页号和页内偏移两部分。页号用于在页表中查找对应的页框号,页内偏移保持不变。例如逻辑地址包含页号2和偏移100H,通过页表查找得到页框号7,最终物理地址为7乘以页面大小加上偏移100H。这种方式实现了内存的非连续分配,提高了内存利用率。
分段系统将逻辑地址分解为段号和段内偏移。段号用于在段表中查找段基址和段长度,同时进行越界检查。例如段号1对应基址5000H和长度800H,偏移200H小于段长度,通过检查后物理地址为5000H加200H。分段支持不同长度的段,更符合程序的逻辑结构,但可能产生外部碎片。