我知道内存表用于跟踪主内存和辅助内存。操作系统还需要维护有关每个进程的某些信息,以便从辅助内存中获取内容,但我对上述内容几乎没有问题:
1)主存储器是有限的,CPU只能直接访问主存储器,并且可以有许多进程,因此每个进程信息如何由主存储器中的CPU维护。 (即使每个进程的Process Image的一小部分都保存在内存中,但仍然可以有如此多的进程)
2)辅助存储器也可以在TB中,因此如何访问地址,因为它肯定需要超过32位来表示TB。例如。 Process的某些数据位于900 GB的起始位置。该进程的PCB如何告诉CPU它位于900 GB的位置,我的意思是它需要超过32位来说明这一点并假设系统是32位,如果系统是64位,它将如何不同?位。
3)辅助内存也在TB中,CPU必须有某种方式来访问辅助内存的任何部分,这是怎么做的?
4)在主存储器中没有关于过程的信息的情况下也是如此。如果是这种情况,那么将如何执行对该数据内容的检索。这可能不是这种情况,但强迫我从这个角度思考的事情是,主内存只有这么多,并且可能有很多很多进程,因此问题就在这里。
我尝试在互联网上搜索很多但却无法找到答案,如果我发现了什么,我会更加困惑。任何人都可以澄清这些疑虑。
编辑:拿任何CPU或任何操作系统,我只想要一张通用图片。不同系统的细节可能有所不同,但我相信在某种程度上会有一些共性。
答案 0 :(得分:1)
太字节?没问题。
您总是可以用较短的整数构造更长的整数。文件系统经常使用索引,大小和计数,其位数比CPU中指针的大小长。这就是你可以拥有和处理的存储空间大于CPU地址空间的大小。
而且您不需要将所有内容从磁盘加载到RAM中,您可以加载足够的小块并装入CPU的地址空间。
文件系统允许您一次读取一个或多个包含文件和目录的数据块,这些块的大小通常为千字节,而不是兆字节或千兆字节,更不用说太字节了。
所以,更长的指数/尺寸/数量+小块。这就是访问磁盘数据所需的全部内容,而不是可以加载到RAM中。