地址重定位
每个程序的指令都是对应的是物理内存地址,在批处理系统中,所有程序都是从0开始的,但是两个程序切换,如果都从0开始,肯定是有问题的
这个错误,是需要操作系统进行修改的,当第二程序的运行的时候...,我们可以改变一下思路,首先就是记录下每个程序的起始地址,可以让CPU增加一个寄存器(基址寄存器),专门用来记录保存起始地址
例如第一个程序的起始地址是0,第二程序的起始地址就是1000,运行第一个程序的是时候...当切换到第二程序的时候,寄存器的值切换到1000,如下图
这种修改地址叫做动态重定位,
往往我们的都有自己的地址范围,比如1000-2000属于第一程序的地址范围,但是当我们的程序有问题的时候,指令是1500...,叫做MMU(内存管理单元)
分块装入内存
我们都是知道操作系统是把CPU运行时间进行分片,搞成了一个个时间片,那样我们程序在运行一段时间后,就能让出CPU,让其他程序运行,这就是我们说的分时系统
有了分时系统...总结
操作系统和cpu一块制造的假象,以为每个程序都在使用4GB的内存,实际上是虚拟的
操作系统不是一下子装载全部的程序,而是分块进行加载,即分页,然后按需加载,且存取物理内存并不是连续的,有时候先装入这一块