第十章-操作系统 第十章第十章 PC-DOS操作系统操作系统 1 DOS的历史与发展的历史与发展2 PC-DOS的基本结构的基本结构3 PC-DOS的启动引导过程的启动引导过程4 文件管理文件管理5 设备管理设备管理6 内存管理内存管理7 进程管理进程管理8 系统调用与软中断系统调用与软中断9 DOS命令命令10 命令处理程序命令处理程序CCP11 CC-DOS与与PC-DOS 第十章-操作系统 的历史与发展的历史与发展 表表-的发展及的发展及其主要性能其主要性能第十章-操作系统 第十章-操作系统 -的基本结构的基本结构-的基本结构由四部分组成:引导程序 (基本输入输出部分)(磁盘操作系统部分)(命令处理部分)第十章-操作系统 具体来说,与这四个部分相应的程序的全部(或部分)都存放在软盘上,这些程序模块是:自举记录引导程序 基本输入输出管理模块(以隐式文件的形式存放在盘上)磁盘操作系统模块(以隐式文件的形式存放在盘上)命令处理程序 第十章-操作系统 图-层次结构 第十章-操作系统 .引导程序引导程序 该程序模块在FORMAT命令时装在系统磁盘的道第扇区系统启动或复位时,首先进入固化的I/O程序ROM BIOS,对系统进行初始化和自测试,然后进入ROM BIOS的BOOT-STRAP(中断INT19)。
如果是系统盘,则读入引导程序模块;否则,就给出出错信息并进入ROM BASIC引导程序进入内存并被执行后,即将系统盘上目录表内容读入内存同时,判断基本输入输出程序IBMBIO COM和磁盘操作系统程序IBMDOS COM两个文件的位置是否对正确的位置是IBMBIO COM在前,IBMDOS COM紧跟其后如果程序不对或者不是系统盘,将发出出错提示信息如一切正常,则转向执行基本输入输出IBMBIO COM程序第十章-操作系统.IBMBIO.COM 模块模块 IBMBIO.COM模块作为ROM BIOS与IBMBIO.COM模块的接口,主要任务是:()测定系统中设备的状态和进行初始化具有个与 的接口程序设置低序号的中断向量完成引导和传递控制作用第十章-操作系统 表1-中 断 向 量 表 第十章-操作系统 第十章-操作系统.模块模块 表表-中中 断断 向向 量量 表表 第十章-操作系统 第十章-操作系统(1)确定磁盘内部工作参数表-第十章-操作系统 ()对文件分配表进行初始化所谓分配表(ie )是供文件分配磁盘空间使用的表的结构很简单,它由若干个表项所组成每个表项的位长度有两种:位和位对于和版本,取表项长度为位,而对于和,取表项长度为位或位,其值与磁盘容量有关(当磁盘容量簇时为位,否则为位)。
第十章-操作系统 如图-所示,表由长度为位的若干个表项组成,表头占两项共个字节,表示磁盘规格的说明,有种不同规格:双面,每道个扇区:单面,每道个扇区:双面,每道个扇区:单面,每道9个扇区:硬磁盘第十章-操作系统 图10-2 FAT结构形式第十章-操作系统 表头中第、字节由系统设置,总是,按第一个字节识别磁盘规格从第三项起记录盘簇的标记信息,它的含义是:表示该扇区未使用,并可供使用表示是文件的最后一个盘簇表示保留盘簇若不是装配链的一部分时,表示是一个坏盘簇,作为文件结束标志三个任意进制数,表示文件的下一个盘簇号文件的第一个盘簇号则存放在文件的目录中第十章-操作系统 ()为COMMAND.COM模块建立程序段前缀操作系统规定,当调入一个外部命令或功能调用EXEC去调用一个程序时,DOS都要为此程序确定其在内存中存放的最低地址,并为它建立一个程序段前缀表-第十章-操作系统 ()填入20H3FH类中断向量为IBMBIO.模块装入COMMAND.提供装入地址装入后,BIO即将控制传送给COMMAND.模块的第1个字节第十章-操作系统 COMMAND.命令处理程序命令处理程序()在内存中的常驻部分。
初始化部分暂驻部分指挥DOS把用户程序装入内存并使它们去控制计算机工作第十章-操作系统 表10-6 第十章-操作系统.DOS在磁盘上的空间分配在磁盘上的空间分配 PC系统所使用的磁盘,无论是软盘还是硬盘,在盘面上存放DOS都有相似的位置此DOS区域有如下形式:第十章-操作系统 PC-DOS的启动引导过程的启动引导过程.引导程序装入内存及其执行过程引导程序装入内存及其执行过程 它是靠FORMAT固化在软盘0面0道1扇区或硬盘1柱面0磁头1扇区上,是靠运行ROM BIOS时被装入内存的详细地讲是这样:当用户将机器通电后,即自动进入ROM BIOS的复位指令JMP RESET,其机器指令为EA5BE000F0,然后转跳到F0000:E05B进行整个开机工作,在完成系统的初始化和一系列自测试工作之后,就调用INT19(BOOT-STRAP),于是引导程序就被装入内存绝对地址0 7C00处引导程序被装入内存的意义是实现系统自举,装入后将把控制转到引导程序的执行上第十章-操作系统 图10-3 BOOT-STRAP程序框图第十章-操作系统 图10-4 引导程序框图第十章-操作系统 第十章-操作系统 图10-5 PC-DOS.启动引导流程第十章-操作系统 可以按下列方法建立CONFIG文件:()输入:COPY CON:CONFIG ()配置:譬如 BREAK=ON 它为一个程序执行任何功能时,使DOS对Ctrl-reak进行开始开启延长检验(省缺值off)FILES=20 可扩展同时打开文件数20个 BUFFERS=5可扩展缓冲区到5个 第十章-操作系统 ()按F键和ENTER键,以便结束。
AUTOEXEC.是一个特殊的批命令文件当启动或再启动DOS时,命令处理程序检索AUTOEXEC文件,如果该文件出现在DOS盘上,那么每当启动DOS时,DOS总是自动地执行该文件第十章-操作系统 文文 件件 管管 理理.文件目录文件目录 PC-DOS的目录在0道每个目录占32个字节在单面盘中,目录占4个扇区,最多有64个目录入口;在双面盘中,目录为7个扇区,有112个目录入口每个目录的32个字节定义如下:第十章-操作系统 其中:07:文件名其中第一个字节(0字节)表示本目录项的状态00表示本目录项未使用过E5表示被用过,但文件已删除2E表示本目录已用作一目录第十章-操作系统 8:文件扩展名(如.为命令文件、为批文件、为运行文件等)文件属性,有下列几种:01为只读文件02为秘密文件在列目录清单时不出现04为系统文件表示在目录开始的11个字节为盘标号,而目录中其他部分不再包含有用信息盘标号仅存于根目录中该项定义一个子目录为归档位当文件完成了写操作并已关闭时,置此值第十章-操作系统 1221:保留2223:文件建立时间或最近一次文件修改时间此两字节共16位,按下面划分表示小时(hh)、分(mm)和秒(ss):其中:hh、mm均为二进制数,ss是以2 s作增量的二进制数。
第十章-操作系统 2425:建立文件或最后一次修改文件的日期两字 节共16位,分别表示年(yy)、月(mm)和日(dd):其中:yy=0119(1 9802 099)mm=112 dd=1312624:起始簇号硬盘软盘数据空间的第一个簇号总是0022831:以字节为单位的文件长度第十章-操作系统.硬盘上的树形文件结构硬盘上的树形文件结构 硬盘根目录下的最大文件数取决于硬盘上DOS所在盘区的大小根目录下除文件外还可含有子目录,子目录下又可有文件和子目录磁盘的根目录在FORM格式化命令时建立由于软盘的目录为一级目录,所以对文件的访问非常简单,直接通过文件名访问即可但对具有树形文件结构的硬盘来说,要查找一个文件,就必须给出文件的路径(Path)第十章-操作系统 例如,系统工作的当前目录为David,如需找出David的报表(REPORTS)目录下的一种名为ANNUAL.的年报则有两种查找路径:()从当前目录David开始输入ANNUAL ()从根目录开始输入 SALESDAVIDREPORTSANNUALFIG 开头的反斜杠号“”表示根目录从上可见,路径是由一系列目录名组成的,目录名之间用“”号分开。
第十章-操作系统 例如,当前目录为David,现需查找Jeanne下的报表SUMMARY如从根开始,可用 SALESJEANNEREPORTSSUMMARY如用回溯方法,可用 JEANNEREPORTSSUMMARY左面的“”表示从当前目录David回溯至上一层父目录第十章-操作系统 DOS还提供有一组关于目录操作的命令,如:()命令:建立新的目录()命令:删除目录(没有文件和子目录的目录才能被删除)()命令:显示和改变现行目录TREE命令:显示整个磁盘的目录结构第十章-操作系统.文件控制块及文件管理方法文件控制块及文件管理方法 图10-6 文件控制块FCB格式 第十章-操作系统:驱动器号码 文件打开前 0-隐含的驱动器-驱动器A-驱动器 文件打开后1-驱动器A2-驱动器B:文件名左对齐,尾补空格第十章-操作系统 9:文件扩展名1:相对于文件开头的当前块号每块为128 个记录每记录长度则由逻辑记录长度决定逻辑记录长度,以字节为单位文件长度(以字节计)建立文件和最后修改文件的日期:第十章-操作系统 2231:保留为系统用32:当前块内的当前的相对记录号(0127)用户对盘进行顺序读写操作前,需预置此段。
字节015和3236必须由用户程序设置,字节1631则由DOS设置下面,对扩展的文件控制块FCB作一说明:-7:若为FFH的标志,表明是扩展的FCB6至FCB-2:保留区FCB-1:属性字节如02表示秘密文件、04表示系统文件等等第十章-操作系统.系统文件表与读写操作的实现系统文件表与读写操作的实现 图10-SFT表组的链结构 第十章-操作系统 图10-程序数据结构之间的关系 第十章-操作系统 设备管理设备管理 在DOS中设备管理可对两个基本类型字符设备和块设备进行管理DOS设备管理与一些专用数据结构有关,如每个驱动程序都有一个设备表,DOS系统程序就是用此表的信息去分配和管理设备每个设备驱动程序都具有三个部分:设备表、策略程序和中断程序操作的起始扇区号的计算公式为:起始扇区号=(当前簇号-2)每簇扇区数+文件数据区的起始扇区号 第十章-操作系统 内存管理内存管理 DOS对640KB的常规内存区的分配和待分配的内存块是依据内存控制块链进行跟踪管理的DOS的4个内存管理功能调用48H、49H、4AH及58H分别管理内存块申请、内存块释放、内存块修改和内存管理策略设定等操作,它们为DOS操作系统和应用程序有效地、充分地使用有限内存而服务。
第十章-操作系统 进程管理进程管理 图10-PSP和与其相应的程序结构图 第十章-操作系统 DOS操作系统可通过EXEC功能调用4BH来实现程序的管理和控制:EXEC可供系统程序或应用程序(称其为父进程)把另一个程序(称其为子进程)调入到内存中,由父进程决定子进程是否执行,并且父进程还能决定子进程被调入到内存的位置当子进程结束之后,控制将返回到父进程第十章-操作系统 系统调用与软中断系统调用与软中断 用户程序使用系统调用命令的一般步骤为:()把系统调用编号放入寄存器AH中;()把命令要求的调用参数放入有关的寄存器;()执行软中断INT21,启动相应命令执行第十章-操作系统 实际上,在20类这32个中断向量中,目前DOS只使用了20类这8个向量,其余由DOS保留作为今后的功能扩展20类向量所在的区域相当于地址80H下面我们只对常用的几条软中断处理作说明:()系统功能调用21H已讨论过程序的退出正常退出INT 20H用户程序执行完毕后,可使用这条中断处理来结束用户程序,退回操作系统驻留退出INT 27H用于用户自己写的中断处理程序的初始化用这种方法退出后,留下的程序被PC-DOS视为自身的一部分,不会被其他程序覆盖。
第十章-操作系统 ()磁盘读写INT 25H和INT 26H用来读写盘上的若干个扇区,这是两条BIOS调用必须按下列要求设置参数:()驱动器号(0=A,1=B,等)()读写的扇区数 ()开始扇区的逻辑号(0号表示0柱0面1区)(BX)内存起始地址 例如,从双面盘上读出目录的程序如下:,把盘号置为A CX,7双面盘根目录长为7个扇区 ,目录区从0柱0面6区开始 ,传送到1 000H起的内存中去 读盘 T 返回操作系统 第十章-操作系统 DOS 命命 令令.DOS命令的格式和类型命令的格式和类型 显示一个名为TABLE的指定文件的目录项:C:WANGTABLEW如果以通用的格式表示,可写为:d:pathfilenameextW 第十章-操作系统 命令可分为几个部分:()命令名()驱动器名d:()路径名path:()文件名filenameext()参数 第十章-操作系统 命令格式的说明命令格式的说明 d:表示用户指定的驱动器在驱动器符后面跟一个冒号A和B分别表示第一和第二软盘驱动器,C为第一个硬盘驱动器如果省略这个参数,则DOS认为是当前的隐含驱动器path代表目录名的路径,dirnamedirname。
目录名之间以斜杠分开第一个斜杠表示由根目录开始加入文件名时,必须加在目录名路径的末端例如:DIR1DIR2FILEfilenameext表示文件名及其扩展名filespec表示某个指定的文件包括指定驱动器和指定的文件名即d:file-nameext第十章-操作系统 格式中符号的一些说明:()上述 中的项是任选项,如选用这些项时,仅需写出内的参数,无须写本身;()由一竖杠隔开的项(例如OFF)只可输入竖杠两边参数中的一个(ON或OFF),不可两者均输入;()省略号()表示用户可多次重复同一个项目;()可以用大写或小写字母,也可以大、小写混合使用第十章-操作系统 .命令的类型命令的类型 DOS命令可分为内部命令和外部命令两大类内部命令就在DOS内,可以直接识别和执行外部命令和程序文件一样驻留在磁盘上,必须将它从磁盘读出才能执行所以外部命令的磁盘必须事先在驱动器内例如,用户输入命令B:GRAPHICS 系统将从B驱动器中寻找出GRAPHICS命令文件并加以执行第十章-操作系统.DOS命令举例命令举例 .(列目录(列目录)命令命令 用途:显示磁盘文件目录列出磁盘文件目录中的全部目录项,或者仅显示指定文件的目录项。
此外,屏幕上还显示文件数目、磁盘余下的自由空间、文件长度和日期等信息格式:DIRd:pathfilenameextPW 说明:参数P表示屏幕满时显示暂停按任一键后继续显示参数为宽显示方式,每行5个文件名本参数仅用于8025字符方式文件名中可以使用“?”和“”字符第十章-操作系统 例例1 列出盘上所有的文件(如果考虑宽显示方式):ADIRVolume in drive A has no labelDirectory of A:第十章-操作系统 .ERASE(删除文件删除文件)命令命令 用途:在指定驱动器和目录中删除文件格式:ERASEd:pathfilenameext或DELd:pathfilenameext 说明:DEL是ERASE的简记形式删除命令是DOS的内部命令如果不给出驱动器符,就认为是当前隐含的驱动器如果不指定目录路径,则认为是当前的目录可以使用和?作为文件名系统文件IBMBIO.和IBMDOS.不能删除第十章-操作系统 .(显示树结构目录)命令(显示树结构目录)命令 用途:显示指定驱动器上所有树形文件结构的目录,并有选择地显示各子目录中的文件格式:TREEd:F 说明:属外部命令。
对每个目录都给出了从根目录开始的完整的路径名同时给出属该目录的所有子目录如果使用参数F,还将显示出各子目录中的所有文件第十章-操作系统 例例 2 设磁盘上树形文件结构目录如图10-0所示执行TREE命令后显示 图10-10 具有路径的目录 第十章-操作系统 .(打印)命令(打印)命令 用途:在屏幕上显示指定文件的内容格式:TYPEd:pathfilenameext 说明:属内部命令不给出路径名,指当前目录文件中所有字符,包括控制字符都送屏幕但CTRL-I或CHR(9)均按跳格(8个字符间隔)处理此命令只打印文件,不能打印目录可将PRN加到命令后把文件在打印机上打印出来第十章-操作系统 命令处理程序命令处理程序CCP 图10-CCP在内存分配图中的位置 第十章-操作系统 图10-12 命令处理程序框图第十章-操作系统 -与与PC-.-与与PC-的关系的关系 第十章-操作系统.-的生成的生成 BOOT-STRAP将PCDOS的三个文件引入内存后,就检查磁盘上是否存在AUTOEXEC文件如存在,则执行这个批命令文件中的各条命令,CC-DOS的系统盘上就存在一个AUTOEXEC.BAT文件,它含有以下内容:echo offclsecho PLEASE WAITfile 1ccccverify on 第十章-操作系统 它们的工作流程如下:()file。
判断磁盘上是否存在CCLIB文件,如不存在,就显示出错信息,并准备再次引导系统判断CCLIB文件中是否有内容如无内容,则显示出错信息,并准备再次引导程序把本程序的代码段值(CS)和初始偏移值(为全0)存入1F类中断指针存放处(即0000 007C007F)申请一块能放下汉字库的内存空间本程序驻留内存,退出运行第十章-操作系统 ()cccc.cccc.文件分为两部分,一部分是该文件本身的执行代码,另一部分是CC-的程序,它只是在执行cccc.命令时被带入内存驻留,并未真正执行cccc.文件所作的工作过程如下:把汉字库CCLIB文件装入到1F类中断指针指向的内存中去;把1F类中断指针的内容保存起来,以备将来访问汉字库时用;把1D类中断指针指向CRT初始化参数存放处;第十章-操作系统 把10类中断指针改为指向-的CRT控制程序入口:把1F类中断指针改为指向字符字模库的首址;把16类中断指针改为指向CC-的键盘控制程序的入口;把CRT初始化成200640的图形方式;显示CC-的标题(即版本号、研制单位等)本程序驻留内存,退出运行。