首页 理论教育 机操作系统和内存布局

机操作系统和内存布局

时间:2022-02-28 理论教育 版权反馈
【摘要】:MS-DOS 6.22是Microsoft公司发布的最后一个DOS版本。它又是一个单任务的操作系统,同一时刻只能运行一项任务。DOS系统和程序使用16位“段基址:偏移量”格式,只能使用低端的640K B,这就是有名的640K B限制。系统硬件使用的内存位于地址区域的高端,范围是A0000H~FFFFFH,共384K B。而EMS则不同,将高于1MB的各个16K B内存块进行编号,程序可以设置一个号码,要求把对应的16K B内存块映射到C4000H上。对于外部设备的管理是汇编语言的重要使用场合之一。

1.9 PC机操作系统和DOS内存布局

1973年,第一个PC操作系统CP/M问世,运行在当时的8位PC机上。它有很好的层次结构,使用BIOS来隔离操作系统和硬件,避免用操作系统的代码直接去控制硬件,因此有很好的可移植性和易用性。在这个基础上,Microsoft公司开发了后来的MS-DOS。

1981年8月,Microsoft公司的MS-DOS 1.0随IBM公司的PC机发布。DOS的全称是磁盘操作系统(Disk Operating System),当时的PC机还没有硬盘。DOS 1.0只支持单面软盘(容量为160K B和180K B),其文件系统为FAT(File Allocation Tab)。

1983年,MS-DOS升级到2.0版本。它支持PC/XT计算机的硬盘,最大的硬盘分区可以达到32MB。1984年,MS-DOS 3.0支持1.2MB软盘,运行在PC/AT机上。1986年的MS-DOS 3.2支持1.44MB软盘(3.5英寸)。1987年的MS-DOS 3.3版本则是当时比较流行的一个版本。

1990年,MS-DOS升级到5.0,它支持XMS(Extended Memory Sp ecification)、EMS(Exp anded Memory Specification)和UMB(Upper Memory Block)等技术,能够访问到640K B之外的物理内存。最大的硬盘分区则可以达到2G B。之后,又发布了MS-DOS 6.0等版本。

MS-DOS 6.22是Microsoft公司发布的最后一个DOS版本。自此,MS-DOS不再作为一个单独的产品,而只能作为W indow s的一部分出现。例如,MS-DOS 7.0版本就是W indow s 95的一个组成部分。

MS-DOS使用字符界面,用户必须通过输入命令来执行各个程序,不易使用。它又是一个单任务的操作系统,同一时刻只能运行一项任务。MS-DOS运行在实模式下,只能寻址640K B内存,要访问其他的内存只能依靠XMS,EMS,DPMI(DOS ProtectedMode Interface)等接口。MS-DOS使用FAT 12/FAT 16文件系统。

DOS操作系统运行在实模式下,在实模式下的寻址范围只有1MB。

DOS系统和程序使用16位“段基址:偏移量”格式,只能使用低端的640K B,这就是有名的640K B限制。其中最低端的l KB,即00000H~003FFH存放的是中断向量表;接下来是256B的BIOS数据区;DOS及应用程序使用00500H~9FFFFH。这在开始使用DOS的20世纪80年代是完全能够满足要求的,因为当时PC机上安装的物理内存容量也是640K B,甚至更少。

系统硬件使用的内存位于地址区域的高端,范围是A0000H~FFFFFH,共384K B。其中有用于显示的视频缓冲区和BIOS程序空间,例如显卡、网卡和主板BIOS。

地址FFFF0H在PC机中有特别的用途。系统在启动时,CS=F000H,IP=FFF0H,即从地址FFFF0H处开始执行,这个区域属于系统BIOS。(F000:FFF0)=EA5BE000F0(是JMP F000:E05B指令的十六进制表示),它立即跳转到BIOS的初始化程序,开始系统的启动过程。

随着软件、硬件技术的快速发展,PC机上安装的内存从640K B增加到1MB、2MB,一直到现在的512MB甚至更多。软件程序越来越庞大,所需的内存也越来越多。为了突破640K B的限制,一种技术是使用高端内存区HMA(H ig h Memory Area),它利用了80286以上CPU的A20地址线。例如,逻辑地址FFFFH:3000H对应的物理地址为FFFFH×10H+3000H=FFFF0H+3000H=102FF0H。8086/8088CPU没有A20地址线,上述地址等同于02FF0H,所以逻辑地址FFFFH:3000H=0000H:2FF0H,即内存环绕。80286及以上的CPU有A20地址线,因此上述物理地址是存在的。程序将段值设为FFFFH,就可以访问FFFF:0000~FFFF:FFFF,也就是物理地址FFFF0H~10FFFFH。实际上,FFFF0H~FFFFFH是属于BIOS的,HMA对应的内存指的是100000H~10FFFFH共65520B的区域。为了和8086/8088完全兼容,PC机设置了一个控制信号A20门。A20门等于0时,A20地址线恒定为0。为了使用HMA,必须将A20门设置为1。

HMA只能增加约64K B的可用空间,而UMB/EMS/XMS技术则能够使程序使用到其他的内存。UMB/EMS技术只能在80386及以上的CPU中才能实现,它是将高于1MB的内存映射到C0000H之上的一个空闲区域,供程序使用。UMB使用的映射是固定的。也就是说,将高于1MB的某个16K B内存块映射一个地址(如C4000H)后,程序在C4000H访问到的内存一直是这个16K B内存,不会改变。而EMS(扩展内存规范)则不同,将高于1MB的各个16K B内存块进行编号,程序可以设置一个号码,要求把对应的16K B内存块映射到C4000H上。如果想使用另外一个16K B内存块,则设置一个新的号码。

XMS技术则能够在80286及以上的CPU中实现。它的原理是在640K B内存中开辟一个缓冲区,再调用XMS功能将缓冲区中的内容传送到高于1MB的内存中去,也可以将高于1MB的内存传送到缓冲区中,如图1-11所示。

img25

图1-11 DOS的内存布局

1.10 外部设备及I/O地址空间

计算机运行时的程序和数据都要通过输入设备送入机器,程序运行的结果要通过输出设备送给用户,所以输入、输出设备是计算机必不可少的组成部分。大容量的外存储器(如磁盘)能存储大量信息,也是现代计算机不可缺少的一部分。对于外部设备的管理是汇编语言的重要使用场合之一。

外部设备与主机(CPU和存储器)的通信是通过外设接口进行的。每个接口包括一组寄存器。一般说来,这些寄存器有三种不同的用途:数据寄存器:用来存放要在外设和主机间传送的数据,这种寄存器实际上起缓冲器的作用。状态寄存器:用来保存外部设备或接口的状态信息,以便CPU在必要时测试外设状态,了解外设的工作情况。例如,每个设备都有忙闲位用来标志设备当前是否正在工作,是否有空接受CPU给予的新任务等。命令寄存器:CPU给外设或接口的控制命令通过此寄存器送给外部设备。例如,CPU要启动磁盘工作,必须发出启动命令等。

各种外部设备都有以上三种类型的寄存器,只是每个接口所配备的寄存器数量是根据设备的需要确定的。例如,工作方式较简单、速度又慢的键盘只有一个8位的数据寄存器,并把状态和命令寄存器合二为一个控制寄存器。又如工作速度快、工作方式又比较复杂的磁盘则需要多个数据、状态和命令寄存器。

为使主机访问外设方便起见,外设中的每个寄存器给予一个端口(Port)地址(又称端口号),这样就组成了一个独立于内存储器的I/O地址空间。IBMPC机的I/O地址空间可达64K,所以端口地址的范围是0000~FFFFH,用16位二进制代码来表示。

在PC机中,由于I/O地址空间是独立编址的,所以系统需要提供独立的访问外设指令(I/O指令)。访问I/O空间可以字节为单位,也可以字为单位,还可以双字为单位进行,这与访问内存空间类似。

主机与外设交换信息是通过输入、输出指令来完成的,在第5章还要专门说明。实际上,对外设的管理及信息传送是汇编语言最经常使用的场合,也是最复杂的一部分程序。

为了便于用户使用外设,IBMPC机提供了两种类型的例行程序供用户调用:一种是BIOS(Basic Inp ut Outp ut Sy stem)功能调用,另一种是DOS(Disk Op erating Sy stem)功能调用。它们都是系统编制的子程序,通过中断方式转入所需要的子程序去执行,执行完后返回原来的程序继续执行。这些例行程序有的完成一次简单的外设信息传送,如从键盘输入一个字符,或送一个字符至显示器等,也有的完成相当复杂的一次外设操作,如从磁盘读写一个文件等。总之,操作系统把一些复杂的外设操作编成例行程序,使用户用简单的中断指令(INT)就可以进入这些例行程序,完成所需要的外设操作,所以用户应尽量利用这些系统所提供的工具来编写自己的程序。

BIOS和DOS功能调用虽然都是系统提供的例行程序,但是它们之间又有差别。BIOS存放在机器的只读存储器ROM中,所以可以把它看成机器硬件的一个组成部分,它的层次比DOS更低,更接近硬件,因此它的语句要完成每一个对设备的直接命令,或信息传送。DOS功能调用是操作系统的一个组成部分,它在开机时由磁盘装入存储器,在它的例行程序中可以一次或多次调用BIOS以完成比BIOS更高级的功能。用户需要使用外设时,应尽可能使用层次较高的DOS功能调用,但有时它不能满足要求,此时,就需要直接调用BIOS,如果BIOS还不能解决问题,那么就只好自己编制中断处理程序了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈