第十章PC-DOS操作系统第十章PC-DOS操作系统§1DOS§2PC-DOS的基本结构§3PC-DOS§4§5§6内存管理§7§8§9DOS§10命令处理程序CCP§11CC-DOS与PC-DOS第十章PC-DOS操作系统§1DOS的历史与发展表10-1DOS的发展及其主要性能第十章PC-DOS操作系统第十章PC-DOS操作系统§2PC-DOS的基本结构PC-IBMBIOIBMDOSCOMMAND(命令处理部分)第十章PC-DOS操作系统具体来说,与这四个部分相应的程序的全部(或部分)都存放在DOS软盘上,自举记录————基本输入输出管理模块(以隐式文件的形式存放在盘上)——磁盘操作系统模块(以隐式文件的形式存放在盘上)——命令处理程序第十章PC-DOS操作系统图10-1PC-DOS层次结构第十章PC-DOS操作系统1.引导程序该程序模块在FORMAT命令时装在系统磁盘的0道第1扇区。系统启动或复位时,首先进入固化的I/O程序ROMBIOS,对系统进行初始化和自测试,然后进入ROMBIOS的BOOT-STRAP(中断INT19)。如果是系统盘,则读入引导程序模块;否则,就给出出错信息并进入ROMBASIC。引导程序进入内存并被执行后,即将系统盘上目录表内容读入内存。同时,判断基本输入输出程序IBMBIOCOM和磁盘操作系统程序IBMDOSCOM两个文件的位置是否对。正确的位置是IBMBIOCOM在前,IBMDOSCOM紧跟其后。如果程序不对或者不是系统盘,将发出出错提示信息。如一切正常,则转向执行基本输入输出IBMBIOCOM程序。第十章PC-DOS操作系统2.IBMBIO.COM模块IBMBIO.COM模块作为ROMBIOS与IBMBIO.COM模块的接口,(1)测定系统中设备的状态和进行初始化。(2)具有11个与ROMBIOS的接口程序。(3)设置低序号的中断向量。(4)完成引导和传递控制作用。第十章PC-DOS操作系统表10-2中断向量表第十章PC-DOS操作系统第十章PC-DOS操作系统3.IBMDOS.COM模块表10-3中断向量表第十章PC-DOS操作系统第十章PC-DOS操作系统(1)确定磁盘内部工作参数。表10-4第十章PC-DOS操作系统(2)对文件分配表进行初始化。所谓分配表FAT(FileAllocationTable)是供文件分配磁盘空间使用的。FAT表的结构很简单,它由若干个表项所组成。每个表项的位长度有两种:12位和16长度为12位或16位,其值与磁盘容量有关(当磁盘容量<4087簇时为12位,否则为16位)。第十章PC-DOS操作系统如图10-2所示,FAT表由长度为12位的若干个表项组成,表头占两项共3个字节,表示磁盘规格的说明,FFFFFFH:双面,FEFFFFH:单面,FDFFFFH:双面,FCFFFFH:单面,每道9第十章PC-DOS操作系统图10-2FAT结构形式第十章PC-DOS操作系统表头中第2、3字节由系统设置,总是FFFF,按第一个字节识别磁盘规格。从第三项起记录盘簇的标记信息,000:表示该扇区未使用,并可供使用。FF8~FFF:表示是文件的最后一个盘簇。FF0~FF7:表示保留盘簇。若不是装配链的一部分时,FF7表示是一个坏盘簇,FF8~FFF作为文件结束标志。×××:三个任意16进制数,表示文件的下一个盘簇号。文件的第一个盘簇号则存放在文件的目录中。第十章PC-DOS操作系统(3)为COMMAND.COM模块建立程序段前缀。操作系统规定,当调入一个外部命令或功能调用EXEC去调用一个程序时,DOS都要为此程序确定其在内存中存放的最低地址,并为它建立一个程序段前缀。表10-5第十章PC-DOS操作系统(4)填入20H~3FH类中断向量。(5)为IBMBIO.COM模块装入COMMAND.COM提供装入地址。装入后,BIO即将控制传送给COMMAND.COM模块的第1个字节。第十章PC-DOS操作系统COMMAND.COM命令处理程序(1)在内存中的常驻部分。(2)初始化部分。(3)暂驻部分。(4)指挥DOS把用户程序装入内存并使它们去控制计算机工作。第十章PC-DOS操作系统表10-6第十章PC-DOS操作系统2.2DOS在磁盘上的空间分配PC系统所使用的磁盘,无论是软盘还是硬盘,在盘面上存放DOS都有相似的位置。此DOS区域有如下形式:第十章PC-DOS操作系统§3PC-DOS的启动引导过程3.1引导程序装入内存及其执行过程它是靠FORMAT固化在软盘0面0道1扇区或硬盘1柱面0磁头1扇区上,是靠运行ROMBIOS时被装入内存的。详细地讲是这样:当用户将机器通电后,即自动进入ROMBIOS的复位指令JMPRESET,其机器指令为EA5BE000F0,然后转跳到F0000:E05B进行整个开机工作,在完成系统的初始化和一系列自测试工作之后,就调用INT19(BOOT-STRAP),于是引导程序就被装入内存绝对地址0∶7C00处。引导程序被装入内存的意义是实现系统自举,装入后将把控制转到引导程序的执行上。第十章PC-DOS操作系统图10-3BOOT-STRAP程序框图第十章PC-DOS操作系统图10-4引导程序框图第十章PC-DOS操作系统第十章PC-DOS操作系统图10-5PC-DOS2.00启动引导流程第十章PC-DOS操作系统可以按下列方法建立CONFIG(1)输入:COPYCON:CONFIG(2)配置:譬如BREAK=ON它为一个程序执行任何功能时,使DOS对Ctrl-Break进行开始开启延长检验(省缺值off)FILES=20可扩展同时打开文件数20BUFFERS=5可扩展缓冲区到5个第十章PC-DOS操作系统(3)按F6键和ENTER键,以便结束。AUTOEXEC.BAT是一个特殊的批命令文件。当启动或再启动DOS时,命令处理程序检索AUTOEXECBAT文件,如果该文件出现在DOS盘上,那么每当启动DOS时,DOS总是自动地执行该文件。第十章PC-DOS操作系统§4文件管理4.1文件目录PC-DOS的目录在0道。每个目录占32个字节。在单面盘中,目录占4个扇区,最多有64个目录入口;在双面盘中,目录为7个扇区,有112个目录入口。每个目录的32个字节定义如下:第十章PC-DOS操作系统0~7:文件名。其中第一个字节(0字节)表示本目录项的状态。00E52E第十章PC-DOS操作系统8~10:文件扩展名(如.COM为命令文件、BAT为批文件、EXE为运行文件等)11:01020408表示在目录开始的11个字节为盘标号,而目录中其他部分不再包含有用信息。盘标号仅存于根目录中。20为归档位。当文件完成了写操作并已关闭时,置此值。第十章PC-DOS操作系统12~21:保留。22~23:文件建立时间或最近一次文件修改时间。此两字节共16位,按下面划分表示小时(hh)、分(mm)和秒(ss):其中:hh、mm均为二进制数,ss是以2s作增量的二进制数。第十章PC-DOS操作系统24~25:建立文件或最后一次修改文件的日期。两字节共16位,分别表示年(yy)、月(mm)和日(dd):yy=0~119(1980~2099)mm=1~12dd=1~3126~24:起始簇号。硬盘软盘数据空间的第一个簇号总是00228~31:以字节为单位的文件长度。第十章PC-DOS操作系统4.2硬盘上的树形文件结构硬盘根目录下的最大文件数取决于硬盘上DOS所在盘区的大小。根目录下除文件外还可含有子目录,子目录下又可有文件和子目录。磁盘的根目录在FORMAT格式化命令时建立。由于软盘的目录为一级目录,所以对文件的访问非常简单,直接通过文件名访问即可。但对具有树形文件结构的硬盘来说,要查找一个文件,就必须给出文件的路径(Path)。第十章PC-DOS操作系统例如,系统工作的当前目录为David,如需找出David的报表(REPORTS)目录下的一种名为ANNUAL.FIG的年报。(1)从当前目录David开始。REPORTS\ANNUAL(2)从根目录开始。\SALES\DAVID\REPORTS\ANNUALFIG开头的反斜杠号“\”表示根目录。从上可见,路径是由一系列目录名组成的,目录名之间用“\”号分开。第十章PC-DOS操作系统例如,当前目录为David,现需查找Jeanne下的报表SUMMARY。如从根开始,可用\SALES\JEANNE\REPORTS\SUMMARY如用回溯方法,¨\JEANNE\REPORTS\SUMMARY左面的“¨”表示从当前目录David回溯至上一层父目录第十章PC-DOS操作系统DOS还提供有一组关于目录操作的命令,(MD)(RD)(没有文件和子目录的目录才能被删除)(CD)TREE第十章PC-DOS操作系统4.3文件控制块及文件管理方法图10-6文件控制块FCB格式第十章PC-DOS操作系统0-1-驱动器A2-1-驱动器A2-驱动器B左对齐,尾补空格。第十章PC-DOS操作系统912~13:相对于文件开头的当前块号。每块为12816~19:文件长度(以字节计)20~21:建立文件和最后修改文件的日期:第十章PC-DOS操作系统22~31:保留为系统用。32:当前块内的当前的相对记录号(0~127)。用户对盘进行顺序读写操作前,需预置此段。字节0~15和32~36必须由用户程序设置,字节16~31则由DOS设置。下面,对扩展的文件控制块FCB作一说明:FCB-7:若为FFH的标志,表明是扩展的FCB。FCB-6至FCB-2:保留区。FCB-1:属性字节。如02表示秘密文件、04表示系统文件等等。第十章PC-DOS操作系统4.4系统文件表与读写操作的实现图10-7SFT表组的链结构第十章PC-DOS操作系统图10-8程序I/O数据结构之间的关系第十章PC-DOS操作系统§5设备管理在DOS中设备管理可对两个基本类型——字符设备和块设备进行管理。DOS设备管理与一些专用数据结构有关,如每个驱动程序都有一个设备表,DOS系统程序就是用此表的信息去分配和管理设备。每个设备驱动程序都具有三个部分:设备表、策略程序和中断程序。I/O操作的起始扇区号的计算公式为:=(当前簇号-2)×每簇扇区数+文件数据区的起始扇区号第十章PC-DOS操作系统§6内存管理DOS对640KB的常规内存区的分配和待分配的内存块是依据内存控制块链进行跟踪管理的。DOS的4个内存管理功能调用48H、49H、4AH及58H分别管理内存块申请、内存块释放、内存块修改和内存管理策略设定等操作,它们为DOS操作系统和应用程序有效地、充分地使用有限内存而服务。第十章PC-DOS操作系统§7进程管理图10-9PSP和与其相应的程序结构图第十章PC-DOS操作系统DOS操作系统可通过EXEC功能调用4BH来实现程序的管理和控制:EXEC可供系统程序或应用程序(称其为父进程)把另一个程序(称其为子进程)调入到内存中,由父进程决定子进程是否执行,并且父进程还能决定子进程被调入到内存的位置。当子进程结束之后,控制将返回到父进程。第十章PC-DOS操作系统§8系统调用与软中断(1)把系统调用编号放入寄存器AH(2)(3)执行软中断INT21,启动相应命令执行。第十章PC-DOS操作系统实际上,在20~3FH类这32个中断向量中,目前DOS只使用了20~27H类这8个向量,其余由DOS保留作为今后的功能扩展。20~3FH类向量所在的区域相当于地址80H~FFH。(1)系统功能调用21H已讨论过。(2)程序的退出。①正常退出INT20H。用户程序执行完毕后,可使用这条中断处理来结束用户程序,退回操作系统。②驻留退出INT27H。用于用户自己写的中断处理程序的初始化。用这种方法退出后,留下的程序被PC-DOS视为自身的一部分,不会被其他程序覆盖。第十章PC-DOS操作系统(3)磁盘读写。INT25H和INT26H用来读写盘上的若干个扇区,这是两条BIOS调用。(AL)驱动器号(0=A,1=B,…等)(CX)