在没有虚拟存储器之前
源程序在gcc –o 后生成的文件是可执行目标程序a.out,每条指令都有一个逻辑地址 32位。它存在硬盘上。
要执行时,只需找到该文件,将其装入内存。
装入的方式可以有多种,比如分页,分段等等。
但是,必须将该程序完全装入内存。
分页:将一个进程的逻辑地址空间(32位)分成若干大小相等的页。
使用分页方式时有一个问题,必须清楚:
os
是根据文件系统找到的
a.out
,跟
a.out
的逻辑地址没有一点关系
假如a.out是3个页大小,
就将这3个页分别装入内存,
装入内存的过程中将逻辑地址转换为物理地址。
如果内存为1G 每个程序的大小是100M,那么该os最多只能装10个程序。
虚拟存储器的定义:
具有请求调入功能和置换功能
,能从逻辑上对内存容量加以扩充的一种存储系统。
即,程序在运行之前,没必要全部装入内存,
仅把当前要运行的页装入即可,当程序运行时,如果需要其它页面,再进行页面调入或者置换。</
版权声明:本文为bingjing12345原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。