unix操作系统 关于虚拟内存映射

理解这个概念以前需要理解几个问题

1.      程序是以文件的形式存在于磁盘上的

2.      程序必须装入内存才能被运行

3.      磁盘是由一个个大小固定的块组成的,文件在磁盘上并不一定占据连续的块

4.      内存也是被划为一个个大小固定的页,程序装入内存后也不是占据连续的页,并且程序也不是完全加载进内存当中

5.      操作系统是多任务的,每个任务都是在执行一定时间后,让其他任务使用cpu资源,因为这段时间很短,用户感觉每个任务都是同时在运行

6.      程序运行的时候由操作系统来管理,每一个运行的实体称为进程,当然进程和程序是两个不同的概念,进程是动态的,程序是静态的,操作系统管理进程是通过一些数据结构来管理的,主要的两个数据结构是进程表和u区

假设页和块大小是相同的,大小都是1k

 

一个exe文件生成之后,其格式是固定的,一般有正文段,数据段,正文段含有指令,数据段含有执行时需要的数据,他们都存在于exe文件中,exe文件经编译之后其内部地址是连续的虚拟地址(假设从0开始,一直到文件大小为止),当然这个exe文件是位于磁盘上

要执行这个文件,操作系统是以创建进程的方式,将这个exe文件的内容加载到内存当中,关键问题是如何加载进内存,既然程序在内存中不是连续的存在,那么是如何进行内存管理的以及是如何执行程序的

操作系统以进程的方式来管理运行的程序,当然需要一些数据结构,其中最重要的是进程表,操作系统维护一个进程表,当进程创建的时候就会在进程表中占据一个表项,这个表很复杂&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值