首先让程序进入内存
重定位:修改程序中的地址(是相对地址)
程序载入后还需要移动
重定位的最合适时机---运行时重定位
首先在内存中找一段空闲的内存,然后把这段空闲内存的地址找到例如起始地址1000,然后把这个1000赋给pcb,因为创建了进程自然就有了pcb,这个起始地址就作为基地址,然后pc置好初始地址开始执行。
把程序放到找到的空闲内存中,每次执行都有进行地址翻译
基地址+偏移量
思路如下:
当进行交换时
是将整个程序一起载入内存中吗?不是
程序员眼中的程序
每一个段都有一个基址
gdt+ldt
操作系统这个表放在gdt里,而每个进程有自己的ldt表(进程段表,在pcb中)
此时转换的时候不是整个程序,而是程序中对应的段进行转换
如对本文有疑问, 点击进行留言回复!!
linux下文本编辑器vim的使用方法(复制、粘贴、替换、行号、撤销、多文件操作)
网友评论