您的位置:首页 > 理论基础

计算机对抽象的应用(简单理解)

2012-11-18 18:24 239 查看

一直对我们操作系统如何运行程序有疑问,并一直想不通,后来看了<深入理解计算机系统>感觉讲得挺有道理(至少从概念上讲),所以写这篇作为自己的理解吧。

先从硬件来计算机分为:CPU(运算器+控制器+寄存器)+总线+I/0设备+内存

对上述进行抽象产生了进程的概念,即进程拥有独立的CPU,虚拟地址,I/0操作等。

对内存的抽象产生了虚拟存储器的概念。

对设备的抽象产生了文件的概念。

从上述角度来理解程序的运行(以linux来说)我们编译好的应用程序一般是ELF格式的文件,里面包含将要运行的虚拟地址,以及代码段,数据段,BSS段等相关信息。

当我们运行程序时,操作系统通过一系列的操作创建跟父进程一样的虚拟空间结构,并创建虚拟存储器和页表,加载器把文件跟虚拟存储器进行映射,并把各个段标志为私有、写时拷贝。当PC运行对虚拟存储器进行写时,OS则创建物理页,并更新页表,

从上述过程来看,我们应用了进程的概念,则每个进程都有独立的虚拟空间,还虚拟存储器的概念,以及存储器映射的概念(即把文件跟虚拟存储器进行关联)。

讲得不是很详细,里面东西比较多,具体大家可以看书。作为总结,只供讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐