一.软硬件基本知识
1.在计算机多如牛毛的硬件部件中最重要的三个是:中央处理器(CPU)、内存和I/O芯片。下图为现代计算机的硬件结构框架
PCI bridge被称为北桥,是为了让内存等设备能够跟上CPU的频率。ISA bridge为南桥,让低速设备可以连接到北桥上。
2.计算机软件的体系结构:
应用程序调用运行库提供的应用程序编程接口,而运行库调用操作系统提供的系统调用接口。
3.目前所有的操作系统对CPU的分配方式都是以抢占式进行的,每个程序会以进程的方式运行,每个进程有自己独立的地址,每个进程根据自己优先级的高低都有机会得到CPU资源,但当CPU运行超过超过一段时间后,就会让给其它等待的进程。如果操作系统分配给每个进程的时间都很短,那么CPU会频繁的切换任务,从而造成多任务同时运行的假象。
4.硬件驱动来搞定硬件操作的繁琐细节,通常由硬件厂商开发,通常应遵守操作系统的提供的接口跟框架。硬件驱动可以看做是操作系统的一部分,它与操作系统内核一起运行在特权级。
5.硬盘基本知识:一个硬盘往往有多个盘片,一个盘片有两面,每面按照同心圆划分为多个磁道,每个磁道划分为若干扇区,一个扇区一般为512字节。每个扇区有一个逻辑编号
6.程序与内存:
地址空间可以分为两种:虚拟地址空间和物理地址空间,物理地址空间是在计算机中实实在在存在的、唯一的内存地址,虚拟空间是指虚拟的、想象出的地址,每个进程都有自己独立的虚拟地址空间,这是程序隔离的方法。
(1)最开始,人们采用分段的方法将一段程序所需大小的虚拟空间映射到物理空间,一个字节对应一个字节的严格映射,例如:
这样虽然隔离了程序,但内存使用效率太低。
(2)分页的方法后来被发明,其原理是将地址空间人为的划分为页(page,大小由硬件或操作系统决定,大部分为4k),下面举一个简单例子:
设1页的大小为1KB,设两个程序的虚拟空间地址有8KB,即8个虚拟页:
假设这是一个32位的电脑,即拥有2^32个物理寻址能力(4G),但假设目前只有6KB的内存(6个物理页可用),当我们将进程里虚拟空间按也划分,常用的代码或数据页装到内存,不常用的装到磁盘(磁盘页中),需要时再取出来。上图中的process1的VP0/1/7倍映射到了物理页PP0/2/3,VP2/3却存储在了磁盘的DP0/1(磁盘页)中,而其他的注入VP4等可能还没有被用到过。
不同的进程可用将自己的虚拟页映射到同一物理页,实现了内存的重用,当进程需要使用DP1的数据或代码时,操作系统会复负责将其从磁盘中调取出来到内存,并为其与VP3建立映射关系。
下面是虚拟存储的实现方式:
原文:http://www.cnblogs.com/WonderHow/p/4909752.html