理解UNIX(V6)内核:分页虚实地址映射与进程管理

需积分: 10 4 下载量 95 浏览量 更新于2024-08-25 收藏 325KB PPT 举报
"分页虚实地址映射-UNIX(V6)内核阅读" 在UNIX(V6)内核中,分页虚实地址映射是一种关键的技术,它允许操作系统有效地管理和调度进程的内存空间。这个机制涉及到核心态和用户态的地址空间划分、页面管理和进程切换时的地址映射维护。 首先,核心态逻辑空间被划分为八个页面,每个页面大小为8k字节。这些页面分别用于存放Unix代码、I/O操作和当前进程的ppda(Per Process Data Area)。而用户态逻辑空间则按照进程的需求进行分配,通常包括共享正文段、数据段以及用户栈。共享正文段使得多个进程可以共享同一份代码,减少了内存的消耗;数据段存储进程的全局变量和静态变量;用户栈则用于存储函数调用时的局部变量和返回地址。 地址映射的过程由两组寄存器来完成,一组用于存放每个段的起始地址(UISA,User Instruction Segment Address),另一组记录段的长度和属性(UISD,User Instruction Segment Descriptor)。每个进程有16个UISA和UISD寄存器,分别用于保存8个页面的虚地址和属性。当进程切换时,退出进程的UISA和UISD寄存器内容会被保存到user结构的u-uisa[16]和u-uisd[16],而新进程的映射寄存器则由estabur()和sureg()这两个装配程序重新装配。 1. 现行进程的表示:在UNIX(V6)内核中,通过ppda来表示当前进程的相关数据,这包括进程的内存映射信息和其他状态信息。 2. 装入某个页面:在内存管理中,装入页面意味着将磁盘上的页面数据加载到物理内存中,以便进程能够访问。这一过程通常由页表机制来完成,页表记录了虚拟地址到物理地址的映射关系。 3. 进程切换时带走的信息:在进程切换时,除了CPU上下文外,地址映射的相关信息也需要被保存和恢复,确保进程在切换前后能够正确地访问自己的内存空间。 在UNIX(V6)中,进程的创建、调度和销毁都涉及到了虚实地址映射的更新。通过这种方式,操作系统能够在有限的内存资源下高效地支持多进程并发执行,同时保持了内存的安全性和隔离性。此外,由于UNIX(V6)的源代码主要是用C语言编写,这使得它的设计和实现对于学习操作系统原理和内核编程的人来说更加友好和易于理解。