1、目目 录录第二章第二章 OS的运行环境的运行环境2.1 硬件环境硬件环境2.2 操作系统与其它系统软件的关系操作系统与其它系统软件的关系2.3 OS与人的接口与人的接口2.4 固件固件微程序设计概念微程序设计概念2.5 磁盘操作系统的运行环境及功能磁盘操作系统的运行环境及功能 OS直接依赖于硬件条件,与硬件的关系直接依赖于硬件条件,与硬件的关系尤为密切,尤为密切,OS 作为系统的管理程序,为了实作为系统的管理程序,为了实现其预定的各种管理功能,更需要有一定的条现其预定的各种管理功能,更需要有一定的条件,或称之为运行环境来支持其工作。件,或称之为运行环境来支持其工作。本章主要讲述本章主要讲述OS
2、 对运行环境的特殊要求。对运行环境的特殊要求。2.1 硬件环境硬件环境一、中央处理机一、中央处理机(CPU)1.OS 作为一个程序要在作为一个程序要在CPU上运行上运行单个CPU 单机系统多个CPU 多机系统2.在多用户的多道程序设计环境中,计算机的指在多用户的多道程序设计环境中,计算机的指令系统中的指令必须分为两部分令系统中的指令必须分为两部分特权指令非特权指令特权指令特权指令定义:定义:指令系统中仅由OS 使用的指令,不允许一般用户使用,否则可能使系统陷入混乱。用途:用途:启动外设备,设置时钟,清内存等。用户只能使用非特权指令,只有OS才能使用所有指令(包括特权指令)。3.程序运行有两种状
3、态程序运行有两种状态CPU有时执行用户程序,有时执行操作系统的程序,这有赖于处理机状态的标识,将处理机工作状态划分为:管态、目态。管态管态一般指操作系统管理程序运行的状态 简称管态,即OS 运行态,可使用特权指令和非特权指令。目态目态用户程序运行态,只允许访问用户程序自己的存贮区域,如果用户程序在执行时,企图访问OS 所在的区域或想使用某个特权指令(如改变指令计数器的内容),就立即被捕俘,而被迫中止其执行,然后由OS 处理这一事件,这样保证了OS 的权利和使其程序不会被破坏。当处理机处在目态中,不可使用特权指令。4.程序状态字程序状态字(PSW)当处理机处于管理态时,可以执行全部指令(包括特权
4、指令)使用所有资源,并具有改变处理机状态的能力,而当处理机处于目态时,就只能执行非特权指令。如何知道处理机当前处于什么工作状态呢?以及它下次要执行哪条指令呢?为了解决这些问题,计算机有若干的特殊寄存器。(1)用特殊的寄存器存放状态用特殊的寄存器存放状态CS:IP(PC)程序计数器,指示下一条要执行的指令。PSW 程序状态字,指示处理机状态。PSW包含:条件码:反映指令执行后的结果特征。中断屏蔽码:指出是否允许中断(中断优先级)CPU的工作状态:管态还是目态。(2)M68000的程序状态字的程序状态字(微机微机)16位字位字TSI2X N Z V CI1I015131084 30自陷中断位(跟踪
5、)CPU状态位1:管态0:目态中断屏蔽位负数结果为0溢出进位标志位条件码Trap 连机调试,排错用优先级 07(3)不同的机器有不同的不同的机器有不同的PSW,如:,如:8088(FLAG)ATPZC溢出SDO 1510去向(增减)跟踪符号零辅助进程奇偶进位PLI0Nr同上MPETTSEMPE任务特权标志扩展任务切换仿真协处理器监控保护允许80286(32位字)IBM 370 大型机的大型机的PSW程序状态字程序状态字系统屏蔽 钥 EMWP 中断码 ILC CC 程序屏蔽 指令地址0711153133353963位IBM370 的程序状态字的程序状态字PSWM位是机器校验方式位,W位是等待状态
6、位,P位是处理器工作状态位。二、主存储器二、主存储器(支持支持OS运行的硬件环境中一个运行的硬件环境中一个重要方面重要方面)1.1.一个作业必须把它的程序和数据存放在一个作业必须把它的程序和数据存放在主存中才能运行。主存中才能运行。多道程序放入,互不影响 保护机构OSOS 空间用户空间主存 操作系统空间和用户程序空间2.2.存贮器类型存贮器类型RAM random access memory 可读写,随机存贮器ROM read only memory 只读存贮器(不可改程序存贮)BIOSEPROM可改写ROM,用特殊和紫外线照射芯片PROM可编程写入,用特殊PROM写入器设备驱动器用户OSRA
7、MIBMPC 在 MS/DOS下内存分区ROM48K8K基本输入/出系统程序BIOS40KROM32KB CBASIC8KB 空闲3.3.存储分块存储分块 存储的最小单位称为“二进位”,它包含的信息为0或1。存储器最小单位编址单位是字节,有8位、16位等。“双字”是由两个字组成,以“四字”IBM大型机为“字”。两个字节组成“字”。把存储器分为“块”便于管理分配,在为用户分配主存空间时,以块为最小单位:16字节(一块)PC机64字节(一块)PDP-11机2k字节(一块)IBM370机、IBM大型机4.4.存储保护存储保护 存放在主存的用户程序和操作系统,以及它们的数据,很可能受到正在CPU上运行
8、的某用户程序的有意或无意的破坏,这可能会造成十分严重的后果。所以对主存中的信息加以严格的保护,使操作系统及其它程序不被错误的操作所破坏,是其正确运行的基本条件之一。(1)界地址寄存器界地址寄存器 产生越界中断(存贮器保护中断),在CPU中设置一对界限寄存器来存放该用户作业在主存中的下限和上限地址。10005000OSUser 1Jump 6000User 2作业在主存中的上限地址将6000与上限地址5000比较,越界则越界中断10006000下界上界(2)存储保护键:存储保护键:(五位二进位/每块组成)其中最左四位是保护键,最右一位是取保护标志位。A块B块C块001010100101000存储
9、键取保护位0不保护1保护如图:001007钥Key11特权指令只要键匹配,存取均可键不匹配,则不可存是否可取要看保护位举例:存A,取A,均可以(键Key匹配)存B,取B,均不可以(键不匹配,且取保护)存C,不可以(键不匹配)取C,可以,因取保护位为0,即不保护取程序状态字5.5.存贮器组织存贮器组织(1)二维地址结构二维地址结构 8088微处理器的寻址能力为1M字节,因为它有20条地址引线(即微处理器的地址长度为20位),从而确定了每一个存贮单元的地址,即从0一直扩展到最高的地址单元1048575(即1024k-1)。但是,8088又是16位的处理器,它包含的寄存器都是16位的。所以它所能执行
10、的运算大部分局限于处理16位的数,其范围为0到65,535(即64k)。由于整个地址长度为20位,因此必须以某种方法来控制这20位,也就是要解决16位的计算机怎么能够用20位的地址工作的问题。利用分段编址的方法可以解决这一问题(段式管理)。在段式系统中,一个作业的某一分段在主存中占领一片区域,该分段在主存中有一个段的起始地址,该地址值由段表中的主存始址这一数据项指示(相当于一个基地址寄存器的作用)。分段内某一指令(或数据)的地址应由两部分组成:即段首地址加上段内位移(如图所示)BB段基地址寄存器SUB分段W用两个16位的数,头一个16位数左移4位,使它构成20位,表示段的基地址(是一个为 16
11、位数的单元)。第二 个16位数按原样使用,表示段内位移,两个数相加,形成一个完整的20位地址。例如:例如:C018C0180FFFFFE7FCFFFF代码分段寄存器CS:代码分段C018FE7F0000CFFFF+20位字节(或字)地址(2)存贮器的总体布局存贮器的总体布局 IBM-PC所做的安排是将在存储器的高阶部分留作专用,低阶部分(除最低阶处作中断向量表,系统数据区之外)的存贮单元供公用。这样做既能获益于保留的存贮空间,又有足够的地址空间供一般的应用。如图所示:00000H10000HA0000HB0000HB8000HC0000HF6000HFE000HFFFFFH256k RAM扩充
12、RAM未用单色显示终端彩色显示终端扩充存贮供未来的ROM使用ROM-BASIC (32k)ROM-BIOS (8k)216k40k显示存贮器128k64k内存256k ROM寻址空间768k RAM寻址空间1k字节系统中断向量表DOS 暂驻区 暂驻部分三、缓冲技术三、缓冲技术 上章已讲,它是提高CPU利用率,目前广泛使用多缓冲区技术,设备利用率大为提高。是外部设备在进行数据传输期间专门用来暂存这批数据的主存区域。目前许多计算机系统广泛使用多缓冲区技术。以PDP-11的UNIX操作系统为例,整个系统有两个缓冲池。一个缓冲池是为了磁盘之类的块设备而设置的,该池共有15个缓冲区,每个缓冲区大小为51
13、4个字节。另一个缓冲池是为慢速字符设备而设置的,该池共有100个缓冲区,每个缓冲区大小为8个字节。所有的缓冲区都用链指针链入不同的缓冲区队列(详见UNIX系统)。当需要缓冲区时,就向操作系统提出请求,操作系统分给一块相应的空闲缓冲区供其使用。四、中断技术四、中断技术中断简介:中断简介:计算机必须能够对微处理器外面发生的事情作出响应。例如,当按动键盘上一个按键,或时钟的报时信号来到,或软盘驱动器工作完毕发出中断信号时,均将引起微处理器的注意并处理相应事件,这就是中断中断。(1)能充分发挥处理机的使用效率:因为输入输出设备可以用中断的方式同CPU通讯,报告其完成CPU所要求的数据传输的情况和问题,
14、这样可以免除CPU不断地查询和等待,从而大大提高处理机的效率。(2)提高系统的实时处理能力:因为具有较高实时处理要求的设备,可以通过中断方式请求及时处理,从而使处理机立即运行该设备的处理程序(也是该中断处理程序)。非屏蔽中断请求 中断逻辑 中断指令INTn溢出中断INT0除法错中断单步中断T=1中断控制器8259A可屏蔽中断请求IBM-PC中断逻辑和中断源中断逻辑和中断源 图中所表示的是IBM-PC的中断源及中断逻辑。在IBM-PC中有可屏蔽的中断请求INTR,这类中断主要是输入输出设备的IO中断。这种IO中断可以通过建立在程序状态字PSW中的中断屏蔽位加以屏蔽,此时即使有IO中断,处理机也不
15、予以响应;另一类中断是不可屏蔽的中断请求,这类中断是属于机器故障中断,包括内存奇偶校验错以及掉电使得机器无法继续操作下去等中断源。它是不能被屏蔽的,一旦发生这类中断,处理机不管程序状态字中的中断屏蔽位是否建立都要响应这类中断并进行处理。此外还有程序中的问题所引起的中断(如溢出,除法错都可引起中断)和软件中断等,由于IBM-PC中具有很多中断源请求,它们可能同时发生,因此由中断逻辑按中断优先级加以判定,究竟响应哪个中断请求。中断信号是发送给中央处理机并要求它处理的,但处理机又如何发现中断信号呢?为此,处理机的控制部件中增设一个能检测中断的机构,称为中断扫描机构。通常在每条指令执行周期内的最后时刻
16、扫描中断寄存器,询问是否有中断信号到来。若无中断信号,就继续执行下一条指令。若有中断到来,则中断硬件将该中断触发器内容按规定的编码送入程序状态字PSW的相应位(IBM中是1631位),称为中断码。(一一)中断的类别中断的类别一般中断按其功能来分可有以下几大类:(1)硬件故障中断硬件故障中断(不可屏蔽中断不可屏蔽中断):电源故障中断(2)输入输入/输出中断:输出中断:键盘、计时器、显示器、磁盘I/O中断(3)程序性中断:程序性中断:除法错误中断,溢出中断,还包括:断点中断、单点中断(调试用)(4)外部中断:外部中断:对CPU而言,它的外部非通道式装置所引起的中断。如:时钟中断,操作员控制台中断,
17、多机系统中CPU到CPU通讯中断(5)软中断软中断(访管中断访管中断):用户程序和操作系统之间只有一个相通的“门户”,这就是访管指令,如利用INT n 中断指令发生的中断,可以实现对OS功能的访问(调用)。这五类中断又可按中断方式不同划为:自愿中断:自愿中断:是正在运行的程序的期待的事件,这种事件是由于执行了一条访管指令而引起的。(只有访管中断是它自愿)强迫性中断:强迫性中断:是由随机事件引起的,并非由程序设计人员事先安排的。(二二)中断向量表中断向量表 IBMPC对不同的中断事件规定了一个0255 之间的一个数,这些数代表了引起中断的事件,它们称为中断类型中断类型。对于每一个中断类型,处理器
18、必须有相应的处理该类事件的程序(中断例行程序)。而中断例行程序的地址称为中断向量,其字长为4字节,其中包含有中断例行程序的段首址(CS的内容)和段内偏移地址(IP元值)。将所有256个中断类型中的中断向量放在一张表上称为中断向量表,它在内存区中占有最低 阶 1 k 字 节(地 址00000H003FFH)。如图所示:IPCSIPCSIPCS0000000001000020000300004000050000600007003FC003FD003FE003FF(三三)中断进入中断进入CPU响应后保护现场(主要是标志位)保护断点(现行的代码段寄存器CS和指令计数IP)中断允许处理机从外部设备获悉中
19、断类型,然后就把相应的表中项目送入IP与CS(假设外部设备提供的类型是0001H,则0001H40004,把0004号单元内的16位数值作为首址送IP,而把000420006号单元内的16数值作为首址送CS。这样一来,下一条要执行的指令就是与中断类型1相对应的中断例行程序的第一条指令。)New(IP)New(CS)Old(IP)Old(CS)Old(PSW)IPCSPSW80864N4N+2中断指针中断处理中断处理(四四)返回返回 如果中断例行程序执行时可能改变某些寄存器的值,那么中断例行程序首先要保留初值,执行结束后恢复它们,最后通过执行一条叫“IRET”中断返回指令,去恢复保留在堆栈上的I
20、P、CS以及各标志之值,从而使中断例行程序结束。(五五)中断优先级中断优先级 目前多数微型处理机有着多级中断系统,即可以有多根中断请求线(级)从不同设备连接到中断逻辑。通常具有相同特性和优先级的设备可连到同一中断级(线)上,例如系统中所有的磁盘和磁带可以是同一级,而所有的终端设备又是另一级。与中断级相关联的概念是中断优先级。在多级中断系统中,很可能同时有多个中断请求,这时CPU接受中断优先级为最高的那个中断,忽略其中断优先级较低的那些中断。如果在同一中断级中的多个设备接口中同时都有中断请求时,有两种办法:(1)固定的优先数:每个设备接口给安排一个不同的、固定的优先数顺序。在PDP-11中是以该
21、设备在总线中的位置来定,离CPU近的设备,其优先数高于离CPU远的设备。(2)轮转法:用一个表,依次轮转响应,这是一个较为公平合理的方法。(六六)PC-DOS与用户程序的接口与用户程序的接口 PC-DOS与用户程序的接口是系统调用,具体说是通过软件中断实现的,软件中断是程序自行安排的中断,它常在CPU执行到程序中“INT n”指令时产生,CPU根据中断类型的编号n转到不同的中断服务程序去执行。PC-DOS保留了中断类型20H到3FH的软件中断作为OS调用,但是,其中只有少数几个用上了,余下的都留作将来需要时用。(对01F类中断均为BIOS提供,对BIOS模块的调用也只能通过中断手段来实现)IN
22、T 20 程序正常退出INT 21 功能调用请求中断INT 22 结束地址中断INT 23 CTRL-BREAK 退出中断INT 24 出错退出中断INT 25 绝对磁盘读中断INT 26 绝对磁盘写中断INT 27 程序结束并保留举例:磁盘读写“INT 25”和“INT 26”用来读写盘上的若干扇区,这两个中断把控制直接传送给BIOS。在使用这两条命令前,必须按下列要求设置参数:(AL)磁盘驱动器号(例如:0A,1B,);(CX)要读出扇区数;(DX)开始扇区的逻辑号(0号表示0道0面1区);(DS:BX)内存起始地址例如:我们可在DEBUG状态下,用A命令送入下面一段程序,其功能是从双面盘
23、上读出根目录的内容:A DEBUG;调用DEBUG调试程序-A 0100;键入A命令08F1:0100 MOV AL,0;把盘号置为A08F1:0102 MOV CX,7;双面盘根目录长为7个扇区08F1:0105 MOV DX,5;根目录从0道0面6区开始,即逻辑扇区号为508F1:010B INT25;读盘08F1:010D INT20;正常返回DOS例:PC-DOS的功能调用过程:“INT 21”功能调用请求中断 PC-DOS提供了从0到57H共88个功能调用(又称子功能调用),它们为用户使用操作系统,进行文件管理、磁盘管理,实现字符设备的I/O操作及其它方面的操作提供了强有力的手段。P
24、C-DOS的子功能调用过程是,先将功能号放入AH寄存器中,再按其具体的功能调用要求设置好有关的寄存器,然后,执行软中断“INT 21”,最后分析出口参数,其简单过程如图:调用功能号 AH置入口参数执行INT 21分析出口参数PC-DOS的子功能调用过程的子功能调用过程例:系统调用02H-显示器输出,待显示的字符存放在DL寄存器中,使用这个功能调用后,该字符在屏幕上显示。MOV DX,OFFSET BUFFER;取缓冲区的偏置值送DXMOV BX,DX;BX指向BUFFER首址INC BX;移动BX,使它指向所需字符INC BX;MOV DL,BX;将BUF中的一个字节内容送DL MOV AH,
25、02H;将功能号送AH INT 21H;执行功能调用.五、时钟、时钟队列五、时钟、时钟队列1.1.在计算机系统中设置时钟其作用很多在计算机系统中设置时钟其作用很多 如计算机程序中的死循环的解决、中断处理、记录设备使用时间情况、分时系统的时间片、实时系统的实时控制等。由上述时钟的这些作用可以看到,时钟是操作系统运行的必不可少的硬件设施,所以现在的微型机系统中均有时钟。在微型机系统中,通常只有一个间隔时钟(也作为绝对时钟),在大型机中时钟类型通常要多些。2.2.分类分类 绝对时钟:系统时钟,开机后自动修改 初值由用户输入,停机后时钟仍自动修改。间隔时钟:相对时钟,初始值由用户设定,触发中断等,停机
26、后不再被修改。3.3.时钟队列时钟队列由于时钟数很少,而程序需要,我们可以通过软件为每个进程提供其需要的软时钟:ABCD 50ms1050队列头指针作业(进程)、程序段唤醒时间要求:A作业从现在起50ms后运行B作业从现在起60ms后运行C和D作业从现在起65ms后运行若A运行完后还要运行,则排在D后则A时间为:5010535ms,才能保证过50ms后又运行A。AD035 2.2 操作系统与其它系统软件的关系操作系统与其它系统软件的关系 OS是整个计算机系统的管理者,是系统的控制中心,它不但控制、管理着其它各种系统软件,而且与其它系统软件共同支持用户程序的运行。可以说操作系统和这些软件构成一个
27、以OS为中心的“环境”,以便于用户程序运行。OS的功能设计必须受这些系统软件的功能强弱和完备与否的影响。一、作业、作业步、进程的关系一、作业、作业步、进程的关系作业:作业:是用户在一次上机活动中,要求计算机系统所做的一系列工作的集合。(也称作任务)作业步:作业步:一个作业一般可以分成几个必须顺序处理的工作单位(或步骤)。如:一个用高级语言写的用户作业,它的运行要分成三步:先编译,再连接,最后运行。进程:一个作业步又可分为若干个作业步任务 进程,而一个进程又可能要执行多个线程,如下图:用户作业作业步作业步进程进程线程线程.由用户创建由用户指定由系统创建作业、作业步进程和线程的关系作业、作业步进程
28、和线程的关系线程是进程内的一个相对独立的可调度的执行单元。二、重定位的概念二、重定位的概念1.引子引子CPU使用的16位寄存器,表示最大数为 65535即FFFFH,CPU采用内存分段方式,解决寻址大于64k空间内存的问题:一段为64k内存,用一个16位的地址值就可指向其中的任一字节,用另一个双字节(16位)的值来标示某一段的起点。例:每段16个字节,段值为2,段中的地址数为7,则162739字节绝对地址为39,相对地址为7。(1)绝对地址绝对地址 存储控制部件能够识别的主存单元编号(或字节地址),也就是主存单元的实际地址。(2)相对地址相对地址 相对于某个基准量(通常用零作基准量)编址时所使
29、用的地址,常用于程序的编写和编译过程中。因为多道程序系统中,主存将存放多道作业,而程序员在编写程序时,不可能了解自己的程序将放在主存中何处运行,不可能用绝对地址来编写程序。(3)逻辑地址空间逻辑地址空间 指一个被汇编、编译或连接装配后的目标程序所限定的地址的集合。程序中相对地址的全体称为逻辑地址空间。是相对于实际的主存地址空间而言的。(4)物理地址空间物理地址空间 实际的主存地址空间。在多道程序环境下,用户不可能决定自己使用的主存区,因而在编制程序时常按(以零作为基准地址)相对地址来编写。这样,当程序放入主存时,如果不把程序中与地址有关的“项”变成新的实际地址,而是原封不动的装入,那么程序就不
30、能正确执行(除非有动态地址变换机构)。2.重定位:把程序中相对地址变换为绝对地址重定位:把程序中相对地址变换为绝对地址举例:0 LOAD 1,62 ADD 1,84 STORE 1,106 A 8 B 10 相对LOAD 1,6ADD 1,8STORE 1,10A B100102104106108程序装入主存部分矛盾地址单元不变换会出错110(1)静态重定位静态重定位它在程序装入主存时,由连接装入程序进行重定位,程序开始运行前,程序中各与地址有关的项均已重定位完(即已将程序中的相对地址转换成绝对地址了)。0 LOAD 1,62 ADD 1,84 STORE 1,106 A 8 B 10 相对L
31、OAD 1,106ADD 1,108STORE 1,110A B100102104106108程序装入主存部分不矛盾地址单元110(2)动态重定位动态重定位 重定位不是在程序装入过程中进行,在处理机每次访问主存时,由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。本节只介绍静态重定位,关于动态重定位技术将在第七章介绍。当操作系统为某目标程序分配了 一个以B为起始地址的连续主存区后,静态重定位过程就是把每个与地址有关的项都加上“B-R”(设R是该程序编址时的基准地址,通常R0)即可。如上例中 B100,R0 小的源程序,编译后立即执行,不需要装入程序来做任何工作。实际上许多用户的程序往
32、往要调用许多过程和子程序。过程和子程序首先要同主程序装配起来,形成一个完整的大程序才能运行。过程和子程序很可能不是同一次编译的。因此它们的地址空间之间不会已建立好某种正确关系,往往都是“可浮动”的相对地址空间。把这些过程和子程序找出来,并同主程序装配起来,这就是连接-装入程序的功能。它与编译或汇编程序的功能密切相关。通常,连接装入程序可分为绝对装入程序和相对装入程序。三、绝对装入程序与相对装入程序三、绝对装入程序与相对装入程序1.绝对装入程序绝对装入程序 在个人计算机中,用户能使用的主存起始地址是可以知道的。这种机器上的编译和汇编程序往往把源程序翻译成绝对地址形式的目标程序。当需再次装入目标程
33、序时,就十分简单,没有什么重定位问题,只要按其给出的起始地址,依次地读入即可。2.相对装入程序相对装入程序 连接装入程序连接装入程序(多数多多数多道程序系统使用道程序系统使用)把主程序同被其调用的各子程序连接装配成一个大的完整的程序,并装入主存运行(重定位)。(1)由于装入程序要对诸程序进行重定位,而程序中有些项与地址无关(如直接数、寄存器号),有些项与地址有关(如指令存放地址、数据地址和地址指针等)。那么装入程序如何识别它们。通常有两种办法:对程序中各数据项附加上指示字,以说明其是否需要重定位。使用一个与该程序相关联的重定位表。依次给出那些要重定位的数据项。无论哪种办法都对编译或汇编程序提出
34、了附加要求,因为这些工作都要由它们在编译或汇编过程中来完成。(2)将主程序同各程序段连接起来。这个过程比较复杂。通过例子来说明其基本原理。CALL SUB1ADD TIME内部定义符号:P,e,d。外部调用符号:SUB1,TIME。Ped 有一个程序P(如图所示),它既可以被其它程序调用(通过用符号定义的入口点如P,e,d),也可以调用别的程序模块。前一种情况称为内部定义符号,后者称为外部调用符号。一个源程序经编译或汇编后生成的可重定位目标模块必须明显地给出这些内部符号和外部符号,以供连接装入程序使用。与每个可重定位目标段相关联的除重定位表(又称重定位词典)或指示字外,还应有一张内部定义符号表
35、和外部调用符号表。内部定义符号表符号名地址PedSUB1TIMEPeCALL*ADD*d.外部调用符号表重定位词典.代码和数据区 在内部定义符号表中要依次给出每个内部符号名和它在本程序中的相对地址(当该段被连接装入程序重定位时,该相对地址就重定位成绝对地址)。外部调用符号表要包含本程序中所调用的全部外部符号名。当该程序进行重定位时,可把程序中的所有外部符号调用处,用间接寻址方法处理(间接地址指向外部调用符号表中的相应表目)。外部符号被定义后,将其绝对地址填入外部符号表即可。第一趟:(1)找到下一个要连接的程序段P(该段应是可重定位的目标程序);(2)重定位并装入P;(3)用P的内部定义符号修正
36、全程符号表(全程符号表是被连接的各程序段所定义的符号全体);(4)对每个程序段都重复(1)(3)步。以上是程序在连接前所必须做的准备工作,在进行具体连接和装入时,可用两趟技术来完成。第二趟:(1)找到要连接程序段P的外部调用符号表;(2)从全程符号表中找出该符号的地址填入程序P的外部符号表中;(3)对每一个被连接的程序段P重复(1)、(2)步。这个连接过程类似于标准的两趟汇编程序中所使用的处理过程。2.3.OS与人的接口与人的接口一、一、OS与人的接口有二个方面与人的接口有二个方面1.用户程序:用户程序:可通过访管指令进入OS,即系统调用操作指令。2.作业控作业控制说明制说明作业控制语言联机操
37、作 用户用作业控制语言编写作业说明书(卡)来告诉OS,他对程序的运行意图,在联机操作情况下使用键盘命令和图形用户接口(GUI)。键盘命令会话语言(1)作业控制语言作业控制语言 作业标识命令作业标识命令 执行命令执行命令用以标识一个作业的开始用以标识一个作业步的开始,并指出要执行的程序名/作业名 JOB 操作数,/作业步名 EXECPROG=过程名程序名PGM=程序名其它参数 数据定义命令:数据定义命令:用来描述作业所使用的数据文件 定界命令:定界命令:用以标识一个数据文件的结束/数据集名 DD 以逗点分开的操作数其格式为:/JOBNAME=DONOVAN,ACCOUNT=6.251,TIMEL
38、IMIT=5,PRIORITY=8,/STEP1EXECPL1/OUTPUTDDUNIT=TAPE9,VOLUME=SER=0123,DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)/INPUTDDPL/I 程序/STEP2EXECLINKER,COND=(4,LT,STEP1)/OUTPUTDDDSNAME=REAL.LIVE.FILE/INPUTDDDSNAME=&STEP1.OUTPUT/SYSLIBDDDSNAME=PL1.LIBRARY/STEP3EXECREAL.LIVE.FILE,MEMOR Y=100K/OUTPUTDDUNIT=PRINTER/INPUT
39、DD/输入数据/.第1作业步,PL/I编译第2作业步,将PL/I的输出与库程序相连接(仅当上一步没有4级以上严重编译错误时才执行该作业步)第3作业步,执行用户程序(2)联机作业控制联机作业控制 终端命令、会话语言和图形用户接口。用户在分时系统的终端上工作,直接通过键盘打入命令来控制其作业的运行,这种方式称联机作业控制方式。它不需要像脱机批处理作业那样,除程序外还要提交一份作业控制说明来控制作业运行。但用户必须借助终端命令或图形用户接口(GUI)与操作系统通讯,把用户意图告诉系统,以完成计算任务。终端命令:终端命令:终端命令也是一种语言,但不同于一般程序设计语言,也没有标准化。因此各个系统往往按
40、照自己的设计构成一套命令。按功能来说大致都包含以下几类命令:系统访问命令、程序运行命令、程序开发命令、文件操作命令、资源分配命令、系统管理命令、前后台作业转换命令。举例:(微机)dos.外部:Format、PRINT 内部:DIR、COPY 会话语言:会话语言:用户在终端上以问答方式与系统相互作用时所使用的语言称之为会话语言。例BASIC等。以终端命令和命令语言方式来控制程序的运行虽然有效,但给用户增加了很大的负担,即用户必须记住各种命令,并从键盘键入这些命令以及所需的数据,以控制他(她)们的程序的运行。图形用户接口的目标是通过对出现在屏幕上的对象直接进行操作,以控制和操纵程序的运行。用键盘和
41、鼠标对菜单中的各种操作进行选择,从而命令程序执行用户选定的操作,极大地方便了用户,受到普遍欢迎。目前图形用户接口(GUI)是最为常见的人机接口(或用户界面)形式。支持GUI的接口系统称为窗口系统,它已成为操作系统的一个重要组成部分,Windows 3.x(Windows NT等系统使用)和X窗口系统(UNIX系统使用)。GUI国际上为了促进GUI的发展于1988年制订了GUI标准,该标准规定GUI由以下部件构成:(1)窗口(2)菜单(3)列表盒(4)表目盒(5)对话盒(6)按钮(7)滚动杆基于GUI的应用程序则采用图形界面,生成主窗口,有菜单驱动,可使用对话框作为用户界面。基于控制台(终端命令
42、)的应用程序,它的输出是基于文本的,不用生成窗口来处理信息。尽管在屏幕中基于控制台的应用程序是包含在一个窗口中,但窗口只显示文本字符。2.4 固件固件 微程序设计概念微程序设计概念一、微程序设计与固件一、微程序设计与固件 自从微程序设计技术进入了实用阶段以后,硬件和软件之间的界面变得愈来愈不清楚了,许多原层软件的功能通过微程序设计技术可以转化为硬件,也就是通常所说的固化,故称这些具有软件功能的硬件为固件。所谓微程序设计微程序设计是指计算机控制器的操作,用微指令编成程序来实现。(每一条微指令都是计算机硬件中最基本的操作)微程并不是在主存中运行,而是在高速控制存储器(控存)中运行。如把ROM、EP
43、ROM、PROM用作控存。优点:优点:控制线路的设计可以标准化;便于修改、维护、检查;实现兼容,方便用户,为发展系列机创造了良好的条件;可以实现仿真处理、程序可移植。二、微程序与二、微程序与OS 在OS中有许多功能要被经常地调用,要求其运行效率要高,而将这些功能用微程序 固件来实现可比用软件实现在速度上要快得多。OS中许多功能也常用固件实现的,如中断管理等,不但可以改善系统性能,降低程序开发的成本还能改善系统的保密性。2.5 磁盘操作系统的运行环境及功能磁盘操作系统的运行环境及功能一、一、PC-DOS的层次结构的层次结构 PC-DOS 其主要功能是进行文件管理和设备管理,其中文件系统负责建立、
44、删除、读写、检索各类文件。设备管理负责完成外部设备(如显示器、打印机、键盘、软盘驱动器、异步通信设备等)的I/O操作。操作系统设计的成功关键之一是模块化,并采用了层次结构,PC-DOS的设计者们把所需做的工作按功能性质分成不同的几个部分,并把这些部分组织到精心设计的各个层次中去,这样做使得操作系统的结构简单、效能提高。从PC-DOS所实现的功能来看,它由6个部分组成,其中,有一个很小的,但作用很特殊的程度叫做“引导记录(程序)”,它是用来启动整个操作系统的,若不把它包括在内,PC-DOS的层次结构如图所示:外部命令命令处理程序文件管理模块IBMDOS.COMI/O接口模块IBM BIO.COM
45、基本I/O系统ROM-BIOS磁盘上隐含固化ROM中系统DOS磁盘上有(二二)基本基本I/O系统系统ROM-BIOS由几个小程序组成(IBM-PC机上运行任何一 个OS的一部分固化,只有换系统硬件时,才能改变它)1.加电自测程序加电自测程序当电源开关接通时,此程序对存贮器和接在IBM-PC机上的设备进行测试,它主要包括对CPU、定时器、DMA控制器、中断控制器、内存ROM、键盘、磁盘驱动器、异步通讯接口、打印机配置台数等十几个项目的测试。2.初始引导程序初始引导程序在ROM-BIOS中有一个初始引导程序,它负责把盘中的引导块调入内存中,在ROM中的这一程序只知道把盘片中的0道1扇区的内容调入到
46、内存0:7C00的地方。至于是什么盘片,需要引导什么程序,这完全由0道1扇区中的引导块引导程序来决定。3.输入输入/出支撑程序出支撑程序这一部分包括I/O设备驱动程序和相应设备的中断服务例程。这些程序包括对IBM-PC机上所有标准外设的支持程序,是实现键盘、显示屏、软盘、打印机等设备完成主要操作功能的程序。在中断向量表中,共有256类,其中01F类中断均为BIOS提供。(对BIOS模块的调用只能通过中断技术来实现)(三三)引导程序引导程序(启动一个启动一个OS的的)ROM-BIOS初始引导把软盘上的第一个记录(或硬盘DOS划分区中的第一个记录)读入存贮器的一个特定位置(内存0:7C00的地方)
47、,然后由刚读入的引导程序得到控制权,此引导程序会检查目录表以确定头两个文件是否依次为IBMBIO.com和IBMDOS.com,(在系统盘的根目录上查询)。若是,把这两个文件读入首址为0070:0000H的内存区中,然后转0070:0000处IBMBIO.com;若不是,则会发出错信息。当IBMBIO.com得到控制权后,做些初始化工作,然后向下重定位IBMDOS.com,并把控制权交给它,接着IBMDOS.com又做些初始化工作,最 后 由得到控制权,显示系统提示符(A)。诊断硬件A盘上有系统C盘上有系统硬盘启动提问日期与时间显示系统提示符A软盘启动转入ROM-BASICYNYN加电图PC-
48、DOS引导过程(四四)各部分功能简介各部分功能简介 由上可知DOS的启动过程就是把存放在磁盘上的DOS文件调入内存(该磁盘称为DOS系统盘),并执行调入的程序。启动成功后,系统就处于DOS的管理之下。由于系统的内存容量有限,所以,启动时只把DOS的三个基本文件读入内存,所有的外部命令仍然存放在磁盘上。1.IBMBIO.com 直接与ROMBIOS 接口,其功能为:(1)测定系统中设备的状态(2)管理新增加的外部设备,如大容量磁盘、绘图仪等。当接收一新的I/O设备时,新增设备的驱动程序可加到IBMBIO.com中。(3)使磁盘驱动器复位(4)设置低值号中断向量(01FH)(5)给引入内存的程序重
49、定位2.IBMDOS.com功能(1)初始化程序初始化程序 根据IBMBIO.com中参数建立磁盘参数表 为每一个驱动器建立一个文件分配表(FAT)的首址 在最后一张FAT的末址之后建立程序区(用户区)首址 检查RAM大小的正确性 设置中断20H至26H、30H的中断向量 在程序区建立前缀控制块(2)Int 21的执行程序的执行程序Int 21H是PC-DOS的系统功能调用的软中断入口,包括近百个系统功能调用。 的功能 它是命令解释程序模块,负责用户键盘命令的解释和执行。分成常驻和覆盖两部分,建立INT 22H,23H,27H等中断。IBMDOS的初始化程序在IBMDOS.com 的后 面 建 立 程 序 区 前 缀 控 制 块,然 后 将的常驻部分调入内存,并将控制权转给的初始化程序,由该程序的初始化程序调入的覆盖部分。