在“SILBERSCHATZ,GALVIN&GAGNE的操作系统概念”一书中,他们提到过,
主内存(主内存)和内置于处理器本身的寄存器是CPU可以直接访问的唯一存储
这句话引起了很多混乱。如果CPU无法访问辅助内存,那么它如何从辅助内存中获取程序?
答案 0 :(得分:1)
CPU无法直接访问辅助内存并不意味着无论如何都无法访问它。当系统启动时,BIOS内置程序(在ROM中)将引导加载程序(从辅助可引导设备)复制到RAM的内存,并要求cpu继续从该特定地址执行。 一旦CPU开始执行Boot loader,Boot loader就会调用从磁盘读取所需的功能(二级存储)并将操作系统内核映像复制到内存中。通过I / O端口完成数据传输 你将内核映像放入内存,因此引导加载程序要求cpu跳转到内核的入口点。你的内核已经启动了这一点。 内核设置OS环境,加载必要的驱动程序(包括磁盘/ cd-rom驱动程序)。在此之后,由OS磁盘驱动程序执行I / O端口操作或DMA访问以从二级存储加载数据。 通常DMA是首选,因为它不涉及CPU来从设备轮询数据,但编码有点困难 我希望我清除了你的怀疑:)。