计算机对抽象的应用(简单理解)
2012-11-18 18:24
302 查看
一直对我们操作系统如何运行程序有疑问,并一直想不通,后来看了<深入理解计算机系统>感觉讲得挺有道理(至少从概念上讲),所以写这篇作为自己的理解吧。
先从硬件来计算机分为:CPU(运算器+控制器+寄存器)+总线+I/0设备+内存
对上述进行抽象产生了进程的概念,即进程拥有独立的CPU,虚拟地址,I/0操作等。
对内存的抽象产生了虚拟存储器的概念。
对设备的抽象产生了文件的概念。
从上述角度来理解程序的运行(以linux来说)我们编译好的应用程序一般是ELF格式的文件,里面包含将要运行的虚拟地址,以及代码段,数据段,BSS段等相关信息。
当我们运行程序时,操作系统通过一系列的操作创建跟父进程一样的虚拟空间结构,并创建虚拟存储器和页表,加载器把文件跟虚拟存储器进行映射,并把各个段标志为私有、写时拷贝。当PC运行对虚拟存储器进行写时,OS则创建物理页,并更新页表,
从上述过程来看,我们应用了进程的概念,则每个进程都有独立的虚拟空间,还虚拟存储器的概念,以及存储器映射的概念(即把文件跟虚拟存储器进行关联)。
讲得不是很详细,里面东西比较多,具体大家可以看书。作为总结,只供讨论。
相关文章推荐
- 基于openssl的计算机安全学demo(包含Diffie-Hellman,HAMC,AES的简单应用)
- CSS简单理解与应用
- Linux内核分析课程--通过反汇编一个简单的c程序,分析汇编代码并理解计算机如何工作的
- 一个新人对于JavaScript简单应用的理解
- 将计算机思维故事化——之设计模式简单工厂、工厂模式及抽象工厂
- 分析一个简单C程序的汇编代码,理解计算机是如何工作的
- 三滴水:光说不练假把式,Flask关于请求表单的粗浅应用及理解+简单SQL语句温习
- linux内核分析作业:以一简单C程序为例,分析汇编代码理解计算机如何工作
- 关于DataRow和DataColumn的一点个人简单理解-.NET教程,数据库应用
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- WEB应用中context上下文的简单理解
- 深入理解计算机系统(1.3)------操作系统的抽象概念
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 深入理解计算机系统读书笔记之一个简单汇编程序的调试分析
- 简单理解static_cast, dynamic_cast, reinterpret_cast和const_cast的区别和应用
- 黑马程序员 贪心法则的应用及简单理解
- 从C简单程序的汇编代码入手,以理解计算机工作原理。
- 云课堂 Linux内核分析 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 形象理解计算机网络里的各种抽象概念
- 计算机网络自顶向下 :应用层(简单概念和http协议相关简单介绍)