1、目 录,第二章 OS的运行环境,2.1 硬件环境,2.2 操作系统与其它系统软件的关系,2.3 OS与人的接口,2.4 固件微程序设计概念,2.5 磁盘操作系统的运行环境及功能,OS直接依赖于硬件条件,与硬件的关系尤为密切, OS 作为系统的管理程序,为了实现其预定的各种管理功能,更需要有一定的条件,或称之为运行环境来支持其工作。,本章主要讲述OS 对运行环境的特殊要求。,2.1 硬件环境,一、中央处理机 (CPU),1. OS 作为一个程序要在CPU上运行,单个CPU 单机系统,多个CPU 多机系统,2. 在多用户的多道程序设计环境中,计算机的指令系统中的指令必须分为两部分,特权指令,非特权
2、指令,特权指令,定义:指令系统中仅由OS 使用的指令,不允许一般用户使用,否则可能使系统陷入混乱。,用途:启动外设备,设置时钟,清内存等。,用户只能使用非特权指令,只有OS才能使用所有指令(包括特权指令)。,3. 程序运行有两种状态,CPU有时执行用户程序,有时执行操作系统的程序,这有赖于处理机状态的标识,将处理机工作状态划分为:管态、目态。, 管态,一般指操作系统管理程序运行的状态 简称管态,即OS 运行态,可使用特权指令和非特权指令。, 目态,用户程序运行态,只允许访问用户程序自己的存贮区域,如果用户程序在执行时,企图访问OS 所在的区域或想使用某个特权指令 (如改变指令计数器的内容),就
3、立即被捕俘,而被迫中止其执行,然后由OS 处理这一事件,这样保证了OS 的权利和使其程序不会被破坏。,当处理机处在目态中,不可使用特权指令。,4. 程序状态字 (PSW),当处理机处于管理态时,可以执行全部指令(包括特权指令)使用所有资源,并具有改变处理机状态的能力,而当处理机处于目态时,就只能执行非特权指令。,如何知道处理机当前处于什么工作状态呢?以及它下次要执行哪条指令呢?为了解决这些问题,计算机有若干的特殊寄存器。,(1) 用特殊的寄存器存放状态,PC 程序计数器,指示下一条要执行的指令。,PSW 程序状态字,指示处理机状态。,PSW包含:,条件码:反映指令执行后的结果特征。,中断屏蔽码
4、:指出是否允许中断 (中断优先级),CPU的工作状态:管态还是目态。,(2) M68000的程序状态字 (微机) 16位字,T,S,I2,X,N,Z,V,C,I1,I0,15,13,10,8,4,3,0,自陷 中断位 (跟踪),CPU状态位 1:管态 0:目态,中断屏蔽位,负数,结果为0,溢出,进位标志位,条件码,Trap 连机调试,排错用,优先级 07,(3) 不同的机器有不同的PSW,如:8088 (FLAG),A,T,P,Z,C,溢出,S,D,O,15,10,去向 (增减),跟踪,符号,零,辅助进程,奇偶,进位,二、主存储器 (支持OS运行的硬件环境中一个重要方面),1. 一个作业必须把
5、它的程序和数据存放在主存中才能运行。, 多道程序放入, 互不影响 保 护机构, 操作系统空间和 用户程序空间,2. 存贮器类型,RAM random access memory 可读写,随机存贮器,ROM read only memory 只读存贮器(不可改程序存贮) BIOS,3. 存储分块,存储的最小单位称为“ 二进位”,它包含的信息为0或1。存储器最小单位编址单位是字节,有8位、16位等。,“ 双字”是由两个字组成,以“ 四字” IBM大型机为“ 字”。,两个字节组成“ 字”。,把存储器分为“ 块” 便于管理分配,在为用户分配主存空间时,以块为最小单位:,16字节(一块) PC机 64字
6、节(一块) PDP-11机 2k字节(一块) IBM370机、IBM大型机,4. 存储保护,存放在主存的用户程序和操作系统,以及它们的数据,很可能受到正在CPU上运行的某用户程序的有意或无意的破坏,这可能会造成十分严重的后果。所以对主存中的信息加以严格的保护,使操作系统及其它程序不被错误的操作所破坏,是其正确运行的基本条件之一。,近代计算机系统资源为一同执行的多个用户程序所共享。就主存来说,它同时存有多个用户的程序和系统软件。为使系统正常工作,必须防止由于一个用户程序出错而破坏同时存在主存内的系统软件或其他用户的程序,还须防止一个用户程序不合法地访问并非分配给它的主存区域。因此,存储保护是多道
7、程序和多处理机系统必不可少的部分。,主存保护是存储保护的重要环节。主存保护一般有存储区域保护和访问方式保护。存储区域保护可采用界限寄存器方式,由系统软件经特权指令给定上、下界寄存器内容,从而划定每个用户程序的区域,禁止越界访问。,(1) 界地址寄存器 产生越界中断(存贮器保护中断),在CPU中设置一对界限寄存器来存放该用户作业在主存中的下限和上限地址。,三、缓冲技术,上章已讲,它是提高CPU利用率,目前广泛使用多缓冲区技术,设备利用率大为提高。,缓冲区是外部设备在进行数据传输期间专门用来暂存这批数据的主存区域。,四、中断技术,中断简介:,计算机必须能够对微处理器外面发生的事情作出响应。例如,当
8、按动键盘上一个按键,或时钟的报时信号来到,或软盘驱动器工作完毕发出中断信号时,均将引起微处理器的注意并处理相应事件,这就是中断。,(1) 硬件故障中断(不可屏蔽中断):电源故障中断,(2) 输入/输出中断:键盘、计时器、显示器、磁盘I/O中断,(3) 程序性中断:除法错误中断,溢出中断,还包括:断点中断、单点中断(调试用),(1) 能充分发挥处理机的使用效率:因为输入输出设备可以用中断的方式同CPU通讯,报告其完成CPU所要求的数据传输的情况和问题,这样可以免除CPU不断地查询和等待,从而大大提高处理机的效率。 (2) 提高系统的实时处理能力:因为具有较高实时处理要求的设备,可以通过中断方式请
9、求及时处理,从而使处理机立即运行该设备的处理程序(也是该中断处理程序)。,(一) 中断的类别,一般中断按其功能来分可有以下几大类:,(1) 硬件故障中断(不可屏蔽中断):电源故障中断,(2) 输入/输出中断:键盘、计时器、显示器、磁盘I/O中断,(3) 程序性中断:除法错误中断,溢出中断,还包括:断点中断、单点中断(调试用),(4) 外部中断:对CPU而言,它的外部非通道式装置所引起的中断。 如:时钟中断,操作员控制台中断,多机系统中CPU到CPU通讯中断,(5) 软中断 (访管中断):用户程序和操作系统之间只有一个相通的“门户”,这就是访管指令,如利用INT n 中断指令发生的中断,可以实现
10、对OS功能的访问(调用)。,这五类中断又可按中断方式不同划为:,自愿中断:是正在运行的程序的期待的事件,这种事件是由于执行了一条访管指令而引起的。(只有访管中断是它自愿),强迫性中断:是由随机事件引起的,并非由程序设计人员事先安排的。,(二) 中断向量表,IBMPC对不同的中断事件规定了一个0255 之间的一个数,这些数代表了引起中断的事件,它们称为中断类型。,对于每一个中断类型,处理器必须有相应的处理该类事件的程序 (中断例行程序)。,而中断例行程序的地址称为中断向量,其字长为4字节,其中包含有中断例行程序的段首址(CS的内容)和段内偏移地址(IP元值)。将所有256个中断类型中的中断向量放
11、在一张表上称为中断向量表,它在内存区中占有最低阶1k字节(地址00000H003FFH)。如图所示:,IP,CS,IP,CS,IP,CS,00000,00001,00002,00003,00004,00005,00006,00007,003FC,003FD,003FE,003FF,(三) 中断进入,CPU响应后,保护现场(主要是标志位),保护断点(现行的代码段寄存器CS和指令计数IP),中断允许,处理机从外部设备获悉中断类型,然后就把相应的表中项目送入IP与CS,(假设外部设备提供的类型是0001H,则0001H40004,把0004号单元内的16位数值作为首址送IP,而把000420006号
12、单元内的16数值作为首址送CS。这样一来,下一条要执行的指令就是与中断类型1相对应的中断例行程序的第一条指令。),New (IP),New (CS),Old (IP),Old (CS),Old (PSW),IP,CS,PSW,8086,4N,4N +2,中断指针,中断处理,(四) 返回,如果中断例行程序执行时可能改变某些寄存器的值,那么中断例行程序首先要保留初值,执行结束后恢复它们,最后通过执行一条叫“ IRET ” 中断返回指令,去恢复保留在堆栈上的IP、CS以及各标志之值,从而使中断例行程序结束。,(五) 中断优先级,目前多数微型处理机有着多级中断系统,即可以有多根中断请求线(级)从不同设
13、备连接到中断逻辑。通常具有相同特性和优先级的设备可连到同一中断级(线)上,例如系统中所有的磁盘和磁带可以是同一级,而所有的终端设备又是另一级。,与中断级相关联的概念是中断优先级。在多级中断系统中,很可能同时有多个中断请求,这时CPU接受中断优先级为最高的那个中断,忽略其中断优先级较低的那些中断。,如果在同一中断级中的多个设备接口中同时都有中断请求时,有两种办法: (1) 固定的优先数:每个设备接口给安排一个不同的、固定的优先数顺序。在PDP-11中是以该设备在总线中的位置来定,离CPU近的设备,其优先数高于离CPU远的设备。 (2) 轮转法:用一个表,依次轮转响应,这是一个较为公平合理的方法。
14、,五、时钟、时钟队列,1. 在计算机系统中设置时钟其作用很多,如计算机程序中的死循环的解决、中断处理、记录设备使用时间情况、分时系统的时间片、实时系统的实时控制等。,由上述时钟的这些作用可以看到,时钟是操作系统运行的必不可少的硬件设施,所以现在的微型机系统中均有时钟。在微型机系统中,通常只有一个间隔时钟(也作为绝对时钟),在大型机中时钟类型通常要多些。,2. 分类, 绝对时钟:系统时钟,开机后自动修改 初值由用户输入,停机后时钟仍自动修改。 间隔时钟:相对时钟,初始值由用户设定,触发中断等,停机后不再被修改。,3. 时钟队列,由于时钟数很少,而程序需要,我们可以通过软件为每个进程提供其需要的软
15、时钟:,A,B,C,D,50ms,10,5,0,队列头指针,作业(进程)、程序段,唤醒时间,要求:,A作业从现在起50ms后运行 B作业从现在起60ms后运行 C和D作业从现在起65ms后运行,若A运行完后还要运行,则排在D后 则A时间为:5010535ms,才能保证过50ms后又运行A。,A,D,0,35,2.2 操作系统与其它系统软件的关系,OS是整个计算机系统的管理者,是系统的控制中心,它不但控制、管理着其它各种系统软件,而且与其它系统软件共同支持用户程序的运行。可以说操作系统和这些软件构成一个以OS为中心的“ 环境”,以便于用户程序运行。OS的功能设计必须受这些系统软件的功能强弱和完备
16、与否的影响。,一、作业、作业步、进程的关系,作业:是用户在一次上机活动中,要求计算机系统所做的一系列工作的集合。(也称作任务),作业步:一个作业一般可以分成几个必须顺序处理的工作单位(或步骤)。如:一个用高级语言写的用户作业,它的运行要分成三步:先编译,再连接,最后运行。,进程:一个作业步又可分为若干个作业步任务 进程,而一个进程又可能要执行多个线程,如下图:,用户,作业,作业步,作业步,进程,进程,线程,线程,.,.,.,由用户创建,由用户指定,由系统创建,作业、作业步进程和线程的关系,线程是进程内的一个相对独立的可调度的执行单元。,二、重定位的概念,1. 引子,CPU使用的16位寄存器,表
17、示最大数为 65535即FFFFH,CPU采用内存分段方式,解决寻址大于64k空间内存的问题:一段为64k内存,用一个16位的地址值就可指向其中的任一字节,用另一个双字节(16位)的值来标示某一段的起点。,例:每段16个字节,段值为2,段中的地址数为7,则162739字节 绝对地址为39,相对地址为7。,(1) 绝对地址 存储控制部件能够识别的主存单元编号(或字节地址),也就是主存单元的实际地址。,(2) 相对地址 相对于某个基准量(通常用零作基准量) 编址时所使用的地址,常用于程序的编写和编译过程中。,因为多道程序系统中,主存将存放多道作业,而程序员在编写程序时,不可能了解自己的程序将放在主
18、存中何处运行,不可能用绝对地址来编写程序。,(3) 逻辑地址空间 指一个被汇编、编译或连接装配后的目标程序所限定的地址的集合。程序中相对地址的全体称为逻辑地址空间。是相对于实际的主存地址空间而言的。,(4) 物理地址空间 实际的主存地址空间。,在多道程序环境下,用户不可能决定自己使用的主存区,因而在编制程序时常按(以零作为基准地址)相对地址来编写。这样,当程序放入主存时,如果不把程序中与地址有关的“项”变成新的实际地址,而是原封不动的装入,那么程序就不能正确执行(除非有动态地址变换机构)。,2. 重定位:把程序中相对地址变换为绝对地址,举例:,0 LOAD 1, 6 2 ADD 1, 8 4
19、STORE 1, 10 6 A 8 B 10,相对,LOAD 1, 6 ADD 1, 8 STORE 1, 10 A B,100,102,104,106,108,程序装入,主存部分,矛盾,地址单元,不变换会出错,110,(1) 静态重定位,它在程序装入主存时,由连接装入程序进行重定位,程序开始运行前,程序中各与地址有关的项均已重定位完(即已将程序中的相对地址转换成绝对地址了)。,0 LOAD 1, 6 2 ADD 1, 8 4 STORE 1, 10 6 A 8 B 10,相对,LOAD 1, 106 ADD 1, 108 STORE 1, 110 A B,100,102,104,106,10
20、8,程序装入,主存部分,不矛盾,地址单元,110,(2) 动态重定位,重定位不是在程序装入过程中进行,在处理机每次访问主存时,由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。,本节只介绍静态重定位,关于动态重定位技术将在第七章介绍。当操作系统为某目标程序分配了 一个以B为起始地址的连续主存区后,静态重定位过程就是把每个与地址有关的项都加上“ B-R” (设R是该程序编址时的基准地址,通常R0)即可。,如上例中 B100,R0,小的源程序,编译后立即执行,不需要装入程序来做任何工作。实际上许多用户的程序往往要调用许多过程和子程序。过程和子程序首先要同主程序装配起来,形成一个完整的大程
21、序才能运行。过程和子程序很可能不是同一次编译的。因此它们的地址空间之间不会已建立好某种正确关系,往往都是“ 可浮动 ” 的相对地址空间。把这些过程和子程序找出来,并同主程序装配起来,这就是连接-装入程序的功能。它与编译或汇编程序的功能密切相关。通常,连接装入程序可分为绝对装入程序和相对装入程序。,三、绝对装入程序与相对装入程序,1. 绝对装入程序,在个人计算机中,用户能使用的主存起始地址是可以知道的。这种机器上的编译和汇编程序往往把源程序翻译成绝对地址形式的目标程序。当需再次装入目标程序时,就十分简单,没有什么重定位问题,只要按其给出的起始地址,依次地读入即可。,2. 相对装入程序 连接装入程
22、序 (多数多道程序系统使用),把主程序同被其调用的各子程序连接装配成一个大的完整的程序,并装入主存运行 (重定位)。,(1) 由于装入程序要对诸程序进行重定位,而程序中有些项与地址无关(如直接数、寄存器号),有些项与地址有关(如指令存放地址、数据地址和地址指针等)。那么装入程序如何识别它们。通常有两种办法:, 对程序中各数据项附加上指示字,以说明其是否需要重定位。 使用一个与该程序相关联的重定位表。依次给出那些要重定位的数据项。,无论哪种办法都对编译或汇编程序提出了附加要求,因为这些工作都要由它们在编译或汇编过程中来完成。,(2) 将主程序同各程序段连接起来。这个过程比较复杂。通过例子来说明其
23、基本原理。,CALL SUB1,ADD TIME,内部定义符号:P, e, d。 外部调用符号:SUB1, TIME。,P,e,d,有一个程序P(如图所示),它既可以被其它程序调用(通过用符号定义的入口点如P, e, d),也可以调用别的程序模块。前一种情况称为内部定义符号,后者称为外部调用符号。一个源程序经编译或汇编后生成的可重定位目标模块必须明显地给出这些内部符号和外部符号,以供连接装入程序使用。,与每个可重定位目标段相关联的除重定位表(又称重定位词典)或指示字外,还应有一张内部定义符号表和外部调用符号表。,内部定义符号表,符号名,地址,P e d,SUB1 TIME,P e,CALL*,
24、ADD*,d,. . .,外部调用符号表,重定位词典,. . .,. . .,代码和数据区,在内部定义符号表中要依次给出每个内部符号名和它在本程序中的相对地址(当该段被连接装入程序重定位时,该相对地址就重定位成绝对地址)。外部调用符号表要包含本程序中所调用的全部外部符号名。当该程序进行重定位时,可把程序中的所有外部符号调用处,用间接寻址方法处理(间接地址指向外部调用符号表中的相应表目)。外部符号被定义后,将其绝对地址填入外部符号表即可。,第一趟: (1) 找到下一个要连接的程序段P(该段应是可重定位的目标程序); (2) 重定位并装入P; (3) 用P的内部定义符号修正全程符号表(全程符号表是
25、被连接的各程序段所定义的符号全体); (4) 对每个程序段都重复(1) (3)步。,以上是程序在连接前所必须做的准备工作,在进行具体连接和装入时,可用两趟技术来完成。,第二趟: (1) 找到要连接程序段P的外部调用符号表; (2) 从全程符号表中找出该符号的地址填入程序P的外部符号表中; (3) 对每一个被连接的程序段P重复(1)、(2)步。,这个连接过程类似于标准的两趟汇编程序中所使用的处理过程。,2.3. OS与人的接口,一、OS与人的接口有二个方面,1. 用户程序:可通过访管指令进入OS,即系统调用操作指令。,2. 作业控 制说明,作业控制语言,联机操作,用户用作业控制语言编写作业说明书
26、 (卡) 来告诉OS,他对程序的运行意图,在联机操作情况下使用键盘命令和图形用户接口(GUI)。,键盘命令,会话语言,(1) 作业控制语言, 作业标识命令, 执行命令,用以标识一个作业的开始,用以标识一个作业步的开始,并指出要执行的程序名, 数据定义命令:用来描述作业所使用的数据文件, 定界命令:用以标识一个数据文件的结束,其格式为:/,/ JOB NAME=DONOVAN, ACCOUNT=6.251, TIMELIMIT=5, PRIORITY=8, /STEP1 EXEC PL1 /OUTPUT DD UNIT=TAPE9, VOLUME=SER=0123, DCB=(RECFM=FB,
27、 LRECL=80, BLKSIZE=800) /INPUT DD PL/I 程序 / /STEP2 EXEC LINKER, COND=(4, LT, STEP1) /OUTPUT DD DSNAME=REAL.LIVE.FILE /INPUT DD DSNAME=&STEP1.OUTPUT /SYSLIB DD DSNAME=PL1.LIBRARY / /STEP3 EXEC REAL.LIVE.FILE, MEMOR Y=100K /OUTPUT DD UNIT=PRINTER /INPUT DD / 输入数据 /,. . .,. . .,(2) 联机作业控制 终端命令、会话语言和图形用
28、户接口。,用户在分时系统的终端上工作,直接通过键盘打入命令来控制其作业的运行,这种方式称联机作业控制方式。它不需要像脱机批处理作业那样,除程序外还要提交一份作业控制说明来控制作业运行。但用户必须借助终端命令或图形用户接口(GUI)与操作系统通讯,把用户意图告诉系统,以完成计算任务。, 终端命令:终端命令也是一种语言,但不同于一般程序设计语言,也没有标准化。因此各个系统往往按照自己的设计构成一套命令。按功能来说大致都包含以下几类命令:系统访问命令、程序运行命令、程序开发命令、文件操作命令、资源分配命令、系统管理命令、前后台作业转换命令。,举例:(微机)dos. 外部:Format、PRINT 内
29、部:DIR、COPY, 会话语言:用户在终端上以问答方式与系统相互作用时所使用的语言称之为会话语言。例BASIC等。,以终端命令和命令语言方式来控制程序的运行虽然有效,但给用户增加了很大的负担,即用户必须记住各种命令,并从键盘键入这些命令以及所需的数据,以控制他(她)们的程序的运行。图形用户接口的目标是通过对出现在屏幕上的对象直接进行操作,以控制和操纵程序的运行。用键盘和鼠标对菜单中的各种操作进行选择,从而命令程序执行用户选定的操作,极大地方便了用户,受到普遍欢迎。目前图形用户接口(GUI)是最为常见的人机接口(或用户界面)形式。支持GUI的接口系统称为窗口系统,它已成为操作系统的一个重要组成
30、部分,Windows 3.x (Windows NT等系统使用)和X窗口系统(UNIX系统使用)。, GUI,国际上为了促进GUI的发展于1988年制订了GUI标准,该标准规定GUI由以下部件构成:,(1) 窗口,(2) 菜单,(3) 列表盒,(4) 表目盒,(5) 对话盒,(6) 按钮,(7) 滚动杆,基于GUI的应用程序则采用图形界面,生成主窗口,有菜单驱动,可使用对话框作为用户界面。,基于控制台(终端命令)的应用程序,它的输出是基于文本的,不用生成窗口来处理信息。尽管在屏幕中基于控制台的应用程序是包含在一个窗口中,但窗口只显示文本字符。,2.4 固件 微程序设计概念,一、微程序设计与固件
31、,自从微程序设计技术进入了实用阶段以后,硬件和软件之间的界面变得愈来愈不清楚了,许多原层软件的功能通过微程序设计技术可以转化为硬件,也就是通常所说的固化,故称这些具有软件功能的硬件为固件。,所谓微程序设计是指计算机控制器的操作,用微指令编成程序来实现。(每一条微指令都是计算机硬件中最基本的操作)微程并不是在主存中运行,而是在高速控制存储器(控存)中运行。如把ROM、EPROM、PROM用作控存。,优点:, 控制线路的设计可以标准化; 便于修改、维护、检查; 实现兼容,方便用户,为发展系列机创造了良好的条件; 可以实现仿真处理、程序可移植。,二、微程序与OS,在OS中有许多功能要被经常地调用,要
32、求其运行效率要高,而将这些功能用微程序 固件来实现可比用软件实现在速度上要快得多。OS中许多功能也常用固件实现的,如中断管理等,不但可以改善系统性能,降低程序开发的成本还能改善系统的保密性。,2.5 磁盘操作系统的运行环境及功能,一、PC-DOS的层次结构,PC-DOS 其主要功能是进行文件管理和设备管理,其中文件系统负责建立、删除、读写、检索各类文件。设备管理负责完成外部设备 (如显示器、打印机、键盘、软盘驱动器、异步通信设备等)的I/O操作。,操作系统设计的成功关键之一是模块化,并采用了层次结构,PC-DOS的设计者们把所需做的工作按功能性质分成不同的几个部分,并把这些部分组织到精心设计的
33、各个层次中去,这样做使得操作系统的结构简单、效能提高。,从PC-DOS所实现的功能来看,它由6个部分组成,其中,有一个很小的,但作用很特殊的程度叫做“ 引导记录(程序)”,它是用来启动整个操作系统的,若不把它包括在内,PC-DOS的层次结构如图所示:,外部命令,命令处理程序,文件管理模块IBMDOS.COM,I/O接口模块IBM BIO.COM,基本I/O系统ROM-BIOS,磁盘上隐含,固化ROM中,系统DOS磁盘上有,(二) 基本I/O系统ROM-BIOS,由几个小程序组成 (IBM-PC机上运行任何一 个OS的一部分固化,只有换系统硬件时,才能改变它),1. 加电自测程序,当电源开关接通
34、时,此程序对存贮器和接在IBM-PC机上的设备进行测试,它主要包括对CPU、定时器、DMA控制器、中断控制器、内存ROM、键盘、磁盘驱动器、异步通讯接口、打印机配置台数等十几个项目的测试。,2. 初始引导程序,在ROM-BIOS中有一个初始引导程序,它负责把盘中的引导块调入内存中,在ROM中的这一程序只知道把盘片中的0道1扇区的内容调入到内存0:7C00的地方。至于是什么盘片,需要引导什么程序,这完全由0道1扇区中的引导块引导程序来决定。,3. 输入/出支撑程序,这一部分包括I/O设备驱动程序和相应设备的中断服务例程。这些程序包括对IBM-PC机上所有标准外设的支持程序,是实现键盘、显示屏、软
35、盘、打印机等设备完成主要操作功能的程序。,在中断向量表中,共有256类,其中01F类中断均为BIOS提供。(对BIOS模块的调用只能通过中断技术来实现),(三) 引导程序 (启动一个OS的),ROM-BIOS初始引导把软盘上的第一个记录 (或硬盘DOS划分区中的第一个记录) 读入存贮器的一个特定位置 (内存0:7C00的地方),然后由刚读入的引导程序得到控制权,此引导程序会检查目录表以确定头两个文件是否依次为IBMBIO.com和IBMDOS.com,(在系统盘的根目录上查询)。若是,把这两个文件读入首址为0070:0000H的内存区中,然后转0070:0000处IBMBIO.com;若不是,
36、则会发出错信息。,当IBMBIO.com得到控制权后,做些初始化工作,然后向下重定位IBMDOS.com,并把控制权交给它,接着IBMDOS.com又做些初始化工作,最后由得到控制权,显示系统提示符(A)。,诊断硬件,A盘上有系统,C盘上有系统,硬盘启动,提问日期与时间 显示系统提示符,A,软盘启动,转入ROM-BASIC,Y,N,Y,N,加电,图PC-DOS引导过程,(四) 各部分功能简介,由上可知DOS的启动过程就是把存放在磁盘上的DOS文件调入内存(该磁盘称为DOS系统盘),并执行调入的程序。启动成功后,系统就处于DOS的管理之下。由于系统的内存容量有限,所以,启动时只把DOS的三个基本
37、文件读入内存,所有的外部命令仍然存放在磁盘上。,1. IBMBIO.com 直接与ROMBIOS 接口,其功能为:,(1) 测定系统中设备的状态,(2) 管理新增加的外部设备,如大容量磁盘、绘图仪等。当接收一新的I/O设备时,新增设备的驱动程序可加到IBMBIO.com中。,(3) 使磁盘驱动器复位,(4) 设置低值号中断向量 (01FH),(5) 给引入内存的程序重定位,2. IBMDOS.com功能,(1) 初始化程序, 根据IBMBIO.com中参数建立磁盘参数表 为每一个驱动器建立一个文件分配表(FAT) 的首址 在最后一张FAT的末址之后建立程序区(用户区) 首址 检查RAM大小的正确性 设置中断20H至26H、30H的中断向量 在程序区建立前缀控制块,(2) Int 21的执行程序,Int 21H是PC-DOS的系统功能调用的软中断入口,包括近百个系统功能调用。,3. 的功能,它是命令解释程序模块,负责用户键盘命令的解释和执行。分成常驻和覆盖两部分,建立INT 22H,23H,27H等中断。,IBMDOS的初始化程序在IBMDOS.com 的后面建立程序区前缀控制块,然后将的常驻部分调入内存,并将控制权转给的初始化程序,由该程序的初始化程序调入的覆盖部分。,