9.1 微机系统的基本配置
9.2 系统启动
9.3 DOS状态下运行可执行的文件
9.4 Windows环境下的多任务的执行第 9章 微型计算机动态工作过程实例返回主目录第 9章 微型计算机动态工作微型计算机配置相关外设,加装电源后,在软件的支持下,形成了实用的微型计算机系统 。 人们广泛使用的 PC系列机,都是上述意义下的已系统化的计算机 。 从上电启动,程序运行,至关电停机的全过程中,整个系统内部始终动态协调工作,以有序控制信号的不断流通组织起数据信息的流通,
并在流通过程中完成加工处理 。
9.1 微机系统的基本配置目前市场上国内外 PC系列微型机生产厂商很多,这些厂商可以根据不同用户的要求,进行必要的软件,硬件配置,
特别是几年来硬件发展很快,每年价格都有大幅度下降,实际配置不断改进 。 这里所指的基本配置以常见硬件配置为主 。
1,486
80486微处理器主频 66~100 MHz;内存 8 MB,16 MB
RAM; 硬盘 540 MB,850 MB; 双软驱 1.44 MB和 1.2 MB;
显示器有 SVGA1024× 768,256 KB显存及 101键盘和鼠标器等 。 操作系统配置 DOS 6.1或 Windows 95等
2,586微型机基本配置
Pentium微处理器主频 166 MHz;内存 32 MB RAM; 快闪速擦写 ROM; 硬盘 2 GB;单软驱 1.44 MB; 16倍光驱;
显示器 800× 600,16位色显存 1 MB; 104键盘;双键鼠标等 。
操作系统配置 Windows 95/98及 DOS 6.22等 。
3,686微型机基本配置
Pentium-微处理器,主频 466 MHz;内存 64 MB RAM; 快闪速擦写 ROM;硬盘 15GB;单软驱 1.44 MB;显示器
1024× 768,32位色显存 32 MB; 104键盘;双键鼠标等 。 操作系统配置 Windows 98及 DOS 6.22等 。
以 Pentium[CD*2]Ⅲ 为处理器的微机,主频高达 500 MHz;
内存扩至 128 MB RAM;硬盘 15~30 GB等,硬件性能大幅度提高 。 操作系统可安装 Windows 2000等升级软件 。
另外,带多媒体的上网微机,还应外加配置网卡,56
KB波特率 Modem,16位声霸卡,大屏幕彩电,有源音箱等图 9 - 1 给出了标准配置的微机系统硬件的连接示意图 。 图中简化了主板扩展槽总线类型简化了,仅取了 PCI和 ISA两种 。
图 9- 1 标准配置的微机系统硬件连接示意图
8 0 X 8 6
处理器 - P C I
桥连
P C I- I S A
桥连主存储器 数据缓冲器处理器总线中断控制器、定时器
C M O S,R A M
I S A 总线打印机适配器一并串行口适配器两串键盘接口 扬声器接口高速缓存驱动器适配器硬驱打印机 鼠标 键盘 扬声器M O D E M
软驱 光驱图形适配器
CRT
P C I总线外设
± 5 V ± 1 2 V
电源箱主机外 设
9.2 系统启动
9.2.1
PC系列计算机复位初始化是指计算机各主要部件在接到系统复位信号后进入初始化状态,以及 CPU为运行后续程序所进行的基本初始化程序设置 。
1.
冷启动 ( Cold Start) 是指开机上电后开始的复位初始化 。
上电后供电用的几组开关电源投入工作,主电源 +5 V触发主频用石英晶体振荡,产生系统时钟信号,供 CPU及有关部件用作内部操作时间基准 。
与此同时,各组电源 ( +5 V,-5 V,+12 V,-12 V等 )
都达到预定电压时,产生电源就绪信号 PWRGOOD,使系统复位电路产生具有一定脉冲宽度的高电平复位信号
RESET。 它具有较强的驱动能力,能使各有关部件同时复位进入下述状态:
·总线控制器裁决由 CPU掌管总线;
· DMA控制器处于接收 CPU编程方式;
·中断控制器屏蔽中断;
·清零打印机适配器命令口;
·清零串口适配器等待编程;
· CRT显示器关屏幕;
·键盘复位自检;
· 不选中任何软硬盘驱动器;
· 80X86CPU复位后工作于实址方式,内部寄存器赋初值,
数据段寄存器 DS=0000H,附加段寄存器 ES=0000H,堆栈段寄存器 SS=0000H,标志段寄存器 FR=0000H(禁止中断 ),而代码段寄存器 CS和指令指针寄存器 IP共指向 CS,IP=0FFFF0H等等 。
由于复位后,CPU掌管总线,随后 CPU通过 AB总线发出
FFFF0H地址信息,通过控制总线发生 读存储器控制命令,
从 ROM BIOS的 FFFF0H单元取出第一条无条件转移指令 ( JMP
RESET),转向标号为 RESET的初始化程序入口 。 此时 BIOS程序作为系统软件的一部分,在第一线控制整机的运行 。
MEMR
一般微机主机箱面板上有一个复位 ( RESET) 按钮,
按下它后,在不切断电源的情况下,同样可以使复位电路产生系统复位信号 RESET,进入复位状态 。 这种方式又称为按钮复位启动 。 值得提出的是,电后,作为内存容量主体的
RAM单元内容是随机的,或者说是杂乱无章的,如果 CPU的
CS,IP指向的 FFFF0H处改为 RAM,或者 CPU错误复位使 CS:
IP为 0000H等 RAM地址,计算机将无法正常启动,不能投入工作 。
2,CPU的初始化程序设置在 CPU进入 RESET初始化程序,正式进行系统自检操作前,必须做好一些准备工作,
例如,CPU复位后,DS=SS=ES=0000H,一齐指向 RAM
的首段,而这一段的 0000~ 03FFH已被确定安排中断向量表,
其他部分安排了 BIOS( 基本输入 /输出系统 ),操作系统的通信区不能冲突,因此必须按照统筹安排的原则,由 BIOS进行初始化分配 。 又如,在系统的自检过程中,可能会发现错误,
严重的错误则转入动态停机,非严重的错误可通过并行口允许测试,随后在 CRT上显示其错误类型,或通过扬声器发一长两短等音响提醒程序员注意 。 这样,则必须事先将并行口编程为输出,CRT允许显示,使用定时器编程控制扬声器音调,建立 BIOS—中断向量表,重新安排 DS,ES,SS段寄存器内容等等 。
9.2.2系统自检系统自检主要指硬件系统的自检 。 由于自检是不脱机在线调试且基本上没有程序员的介入,只借助于不太长的专用测试程序,因此自检能力有限,无错的测试结果也是相对的 。 不过目前硬件的平均无故障间隔时间长,出错率极低,所以一般情况下,无错的测试结果仍是可信,可用的 。
随着 CPU性能的升级,CPU的自检项目会逐渐加多,但这些项目的检测包含着基本测试原理 。 对一些固定数据的算术运算应得到确切的结果,如果出错则属于严重错误 。 如果使用一个独立的计时电路对一段专用程序运行的耗时进行统计,则可以换算出 CPU的运行速度等参数 。
ROM-BIOS是操作系统软件的核心部分之一,是唯一真正常驻内存的程序 。 对它和其他 ROM程序进行检测时,首先检测它们的首字是否为 AA55H的特征标记,其次进行校验和核对,
就是将全部程序代码逐个字节相加,结果应为 0。 对一般用户
ROM而言,其程序段的首址应是 2K的整数倍 。 自检中发现的错误也属于严重错误 。
系统对 CMOS RAM内容也进行校验和检测 。 如果发生中断控制器不能实现屏蔽,动态存储器不能刷新,定时器计时不准等属于严重错误 。 而键盘出错,软,硬盘出错和打印机出错等,
则为非严重出错 。
对 RAM检测时,包含两个方面 。 一是由硬件电路在写入
RAM内容时配奇,读出 RAM内容时查奇,进行奇偶校验,一旦发现错误认为严重错误 。
二是,虽然奇偶校验对了,但因它不能发现偶数错误,
还必须用软件方法进行补充测试 。 一般采用分别向每个 RAM
单元先后写入 00H,FFH,AAH,55H,01H五项内容,再读出后复校的方法 。 如果发现错误则报警并动态停机;如未发现错误,则在屏幕上显示,MEMORY TEST 1024KB OK”的字样 。
由于 RAM检测,以若干 KB单元 ( 目前常以 64 KB,或更大容量 ) 为 1组顺序进行,每组检测完毕,才改动显示值,所以屏幕上会出现数字跳动的现象 。
9.2.3热启动在早期 CPU工作速度不高的情况下,RAM检测要耗时长达几十秒钟 。 目前,虽然 CPU速度极高,但检测速度仍要取决于内存器件读写速度,加之内存容量不断扩大,例如从早期的 640 KB到 4 MB,16 MB,…,128 MB,检测仍需要较长的时间 。
为了节省系统启动时间,BIOS-ROM支持在不切断电源情况下的另一种启动方式 ——热启动 ( Warm Start) 。 用户按下 Alt+Ctrl+Del组合键时,由键盘中断服务程序判定为热启动请求,建立热启动键盘标志 RESET-FLAG为 1234H( 或其它值 ),再执行一条转移指令,进入标号为 RESET的初始化程序入口 。
三种启动方式 ( 冷,复位,热启动 ) 都进入初始化检测程序,但在随后的检测热启动标志时,会执行不同的程序分支 。 由于开机上电时 RAM为随机状态,正常运行时又不对键盘标志 RESET—FLAG进行操作,该单元出现热启动标志值的几率微乎其微,所以冷启动和复位启动方式会进入系统自检过程 。 而热启动则跳过所有 RAM( 甚至包括 CRT适配器上的显示 VRAM) 的性能测试 。 热启动后,热启动标志被清除 。
图 9 - 2 中表示出上述三种启动方式的路径区别 。
由于热启动跳过 RAM检查,节省了启动时间 。 正因为如此,它对 RAM内容,不闻不问,。 若已知或怀疑内存中已驻有病毒程序时,它无力,杀毒,。 而冷启动或复位启动时,
由于 RAM检查过程中写入了清一色的检测数据,病毒自然被排除掉 。
图 9-2 三种启动方式的初始化流程各部件复位
C P U 掌管总线
C P U 实址方式电源就绪时钟发生
按下复位按钮面板复位信号
C P U 从 F F F F 0 H
R O M 单元读取指令开机上电创建电源复位启动
R E S E T初 始化程 序有热启动标志冷 启 动 复 位 启 动
A l t + C t r l + D e l键热 启 动建热启动标志
1 2 3 4 H
系统自控
Y
A
N
9.2.4
原则上说,计算机的硬件系统都由 CPU,内存,总线,
I/O接口和 I/O设备等几大部件构成,具体组装某一种类型微机时有标准的配置,
调整 。
在系统自检的过程中,BIOS-ROM还对已存入在
CMOS RAM单元中系统配置信息进行读出,并与实际配置相比较,判断是否相符 。 若不相符 ( 如记录配置 1.2 MB的 A
盘,而实则是 1.44 MB的 A盘 ),发出警告;若各项都相符,
在屏幕上列表显示整机硬件资源 。 与此同时,BIOS对各部件设备进行初始化编程控制,包括以下内容:
· CRT进入显示模式 3的 80× 25彩色字符方式;
· 可编程中断控制器处于固定优先级,软件复位结束方式,开中断;
· DMA控制器处于固定优先级,确定的 DMA申请和响应电平;
· 串行口工作于异步方式,确定的数据格式和波特率下;
· 定时器通道分配用于时钟,扬声器 ( 1 kHz声响 ) 等 。
对于可以支持适配器板即插即用功能的 BIOS,还应具有在判断已装有多个同一类型的适配器时,可能出现访问地址,
中断申请线及 DMA申请线的冲突时,由软件进行再分配,在线调整,保证用户一旦插入后即可无冲突使用 。
在启动系统自检过程中,如果及时按下了 DEL等键后,
系统进入 SETUP操作 。
实质上是对 CMOS RAM 进行读 —修改 —写的操作 。 当用户根据屏幕的提示选择了新的设备配置参数时,SETUP 程序将对应的参数的二进制数据通过接口写入到相应单元 。
如软驱 A盘由 1.2 MB改为 1.44 MB,则应将 CMOS RAM中存储软盘参数的 10H单元内容由 20H改写为 40H。
由于主机已部分启动,没有能力重新识别刚写入的设备参数,所以需要重新冷启动或复位启动,此后 A盘便适用
3.5英寸的高密度盘 。
当微型机 CMOS RAM发生故障,而不能进入系统配置设置状态时,常使系统挂起,无法正常工作 。 这时,可在停机后将 CMOS RAM的后备充电电池用跳接线临时短路 。 掉电后 CMOS RAM信息丢失,即被擦除 。 以后再重新开机,
由专用软件支持写入正常配置参数,而后备电池被充电后又正常工作 。
9.2.5DOS
在完成复位和系统自检后,BIOS引了 INT 19H功能调用引导操作系统的主体程序调入内存 。 早期的微机系统中,多使用 DOS系统软件,对于它的引导和自举启动比较简单,其流程清楚,易于理解 。
当系统检测有 A盘存在时,INT 19H子程序先对 A盘进行读出操作,若发现装有系统软件时,就由 A盘启动 。 若 A盘没有系统文件不能用于启动时,则转向检测 C盘 。 一般 C盘装有系统文件,则由 C盘启动 。 由于系统盘的 0道 0面 1扇区处安排了 BOOT自举程序,将其调入内存 RAM后,INT19H将 CS:
IP移向 BOOT程序 。
后者从 BIOS接管软件控制权后,先调入 IBMBIO.COM
程序,再由 BIO.COM程序运行调入 IBMDOS.COM程序,然后,
由 DOS.COM程序运行并调入 COMMAND.COM程序 。 由于这一过程是逐个串接调入的,人们形象化地称之为自举,图 9 -
3 描述了自举过程 。
在 DOS组成三大程序块的调入,运行的过程中,为操作系统,机器硬件及用户程序员间建立了多个接口 。 其中
BIO.COM是 DOS的基本输入系统,也是 DOS与 ROM BIOS的接口,与系统硬件建立了联系 。 DOS.COM程序负责磁盘存储器与其他资源的管理,它以系统 DOS功能调用 INT21H的近百个子程序与用户程序进行接口,使用户共享系统资源 。 而
COMMAND.COM是命令处理程序,为面向操作员的键盘命令提供接口 。 图 9 - 4 表示了 PC-DOS的层次结构 。
图 9 – 3 DOS启动的引导流程图
I N T 1 9 H 调用
A 盘上有 D O S?
A
启动 A 盘
N C 盘上有 D O S?
启动 C 盘
N 用户插入系统盘装入 B o o t块,并执行装入 B I O,C O M 块,并执行外设初始化装入 D O S,C O M 块,并执行装入 C O M M A N D,C O M块,并执行显示 A >或 C >
等待用户命令输入系统自检
Y Y
图 9-4 PC-DOS 的层次结构用户
C O M M A N D,C O M
键盘命令
I B M D O S,C O M用户程序
I B M B I O,C O M
B I O S
系统硬件
PC - D O S
R A M
R O M
完整
D O S
注:图中符号表示接口关系
DOS引入后,给出了多个软件中数据向量 ( 包括系统功能调用 INT 21H),大部分可用于系统本身和用户,部分不公开 。 在 DOS引导过程中,如果在装入并执行 IBMBIO.COM
时,检测到启动盘上有系统配置重构文件 CONFIG.SYS,则执行这一文件,重新设置 DOS的工作环境,扩充 DOS功能,
提高系统的运行效率 。 它可用于为一些具体外设安排进行管理和服务的设备驱动程序,为磁盘提供数据缓冲区,使磁盘文件常用部分存于内存中,减少重复读取时磁道定位带来的大量时间开销,还可设置病毒防御程序等等 。
9.2.6Windows的引导
Windows是一个支持多用户,多任务,可以充分发挥计算机资源能力,具有良好图形界面的操作系统 。 由于性能优良,使用便捷,且可模拟人们已熟悉的 DOS环境,是目前微机系统首选的系统软件 。 其引导,启动的基本过程与 DOS相似,但全过程要复杂得多 。 这里对其不再作详细描述,仅介绍涉及双启动或多种启动时,
操作 。
假设在某 586机启动前,对 C盘进行过硬盘分区操作 。 设有 Windows 98及 DOS 6.22等两个或更多的分区,并置 Windows
98为当前激活分区 。 这时 Windows分区表中的自举指示符
bootind为 80H可自举; DOS分区表中的自举指示符为 00H,不可自举 。
若开机上电自检后,在 BIOS调用 INT 19H,正式使用硬盘进行启动前,检测到程序员选择菜单启动方式 ( 可由按下
,F8”功能健获得 ),此时屏幕上显示:
Microsoft Windows 98 Startup Menu
1.Normal ; 98
2.Logged ; 98启动,
3.Safe Made ; 98启动,
4.Step BY Step Confirmation ; 98启动,单步选择加
5.Command Prompt Only ; 98启动,DOS
6.Safe Mode Command Prompt Only ; 98启动,安全
DOS
7.Previous Version OF MS[CD*2]DOS ; MS-DOS
Enter a Choice
此时可使用键盘上的光标键 ↑和 ↓来移动突出显示所需选项,按 Enter键作选择 。 由于光标正常置于 1项,若长时不作选择,一些机器在等待时间结束后,自动按 Windows常规启动 。 1~6选项都是 Windows环境下的不同模式,硬盘启动时,
都进入 Windows分区读出文件操作 。
选择选项 7时,在引导 MS-DOS启动前,必须进行一次硬盘分区的操作,使 DOS分区激活 。 这时首先将硬盘的 0道 0面
1区的主自举块读入内存后,改写 Windows 分区自举指示符为 00H,DOS分区自举指示符为 80H,然后回写 C盘主自举块 。
以后,再由 INT 19H BOIS功能调用引导程序正式启动 DOS,
以实现操作系统的切换 。 图 9 - 5给出了两种操作系统硬盘分区的激活切换示意图 。
基于同样原因,当需要退出 DOS进入 Windows环境时,
只能采取再次激活硬盘 Windows 分区的办法,重新启动 。 如果选取模式 5进行启动,可方便部分用户在熟悉 DOS环境下进行操作,显示 C> Windows。 由于这种环境仅是在 Windows大环境下的小改造,同样退出 DOS进入 Windows时,则只要键入 EXIT软命令就可实现,转换容易 。
图 9 – 5 硬盘分区,主自举块和系统自举块主自举程序块第一分区表第二分区表第三分区表第四分区表
5 5 H
A A H
b o o t - i n d
8 0 H ( 0 0 H )
该区开始的道号、扇段号、
磁头号
W i n d o w s
该区结束的道、扇头号该区之前的扇段数该区占用的扇段数
0 0 0
1 B E
1 C E
1 D E
1 E E
1 F E
1 F F
+ 0
+ 4
+ 8
+ C
+ F
b o o t - i n d
0 0 H ( 0 8 H )
该区开始的道号、扇段号、
磁头号
D O S
该区结束的道、扇头号该区之前的扇段数该区占用的扇段数
+ 0
+ 4
+ 8
+ C
+ F
系统自举块
( 1 扇)
第一副本文件定位表第二副本文件定位表根目录
R O O T B O O T
系统文件区用户文件区
ndows也以 ROM BIOS作为自已的基本软件部分,用以和硬件接口 。 它和用户的接口有两种命令形式:图形命令和键盘命令 。 图形命令是用鼠标操作或键盘操作选中图形;键盘命令是在运行菜单项下由键盘输入的字符串 。 图 9 - 6 给出了
Windows的层次结构,图中 Windows核心部分较为复杂,这里不作讨论 。 关于图形和键盘两类命令的生成和简单处理过程在以下几节中介绍 。
图 9- 6 Windows的层次结构用户键盘命令
R O M - B I O S
R A M
R O M
完整
W i n d o w s
系统硬件图形命令解释程序图形命令键盘命令解释程序
W i n d o w s
核心
9.3 DOS
9.3.1等待用户键盘命令输入启动 DOS后,进入 DOS状态,屏幕上显示 C>( 或 A>),
并等待程序员输入命令 。 在这一阶段,屏幕上未发生任何变化,往往给人们造成一个错觉,似乎计算机不在工作,仅是静悄悄地等待 。 其实并非如此 。
此时,CPU以每秒万次的速度重复取指令,分析指令,
执行指令操作,不断循环执行 COMMAND.COM的命令输入检测子程序 。 它每次先检测键盘缓冲标志,判断有无键输入,
有键输入时,从键盘缓冲区读入键码;无键输入时,最简单的办法是重复上述动作 。
近年来为降低功耗,提高 CRT使用寿命,对无键输入的时间进行累计,当程序员长时间不输入键时,自动关断视频,
使屏幕暂停显示或者出现保护性活动画面 。 一旦有键输入时,
软件重开视频或恢复正常图像显示 。
CRT显示适配器以每秒 50次的重复频率,不断地从显示存储器 ( VRAM) 中读取显示字符的 ASCII码和其属性内容,经转化后刷新屏幕显示 。 由于这时 CRT工作于模式 3,即 80× 25
的彩色字符方式,每个屏幕上的一个字符对应两个 VRAM字节,
可以算出刷新时,VRAM
M=80× 25× 2× 50 次 /s=200 KB/s
如果以 Windows 98启动,CRT 工作于图形模式显示图形界面,若屏幕分辨率为 800× 600,16位色,可以推算出屏幕刷新时 VRAM的读出速率为
M=800× 600× 16/8× 15 次 /s=48 MB/s
另外,动态刷新电路以约 15.2 μs的周期不间隔地对主存中大量采用的 DRAM进行信息刷新,再生等操作;实时时钟连续工作,不断向 CMOS RAM中的多字节 BCD码提供新计时值等等 。
9.3.2
键命令的输入与 CPU的工作是完全并行的 。 以键入 Pctools
工具软件名为例,当第一个命令键 ( P) 按下时,键盘向主机发送 8位串行的扫描码 ( 19H),经主机键盘接口串 -并转换后,
生成一字节并行扫描码 ( 19H),同时产生键盘中断请求信号
( IRQ9),经中断控制器 8259送至 CPU。 CPU响应中断后,
在中断服务程序中将一字节键扫描码转换为两字节键代码
( 19H,7CH),存入键盘缓冲区 ( RAM),并建立有键输入
( 不空 ) 标志 。 中断返回后,CPU在输入子程序中检测到键盘缓冲区不空的标志后,读取键代码,将其中的 ASCII码 ( 7CH)
送入输入命令行缓冲区及 VRAM中 。 后者支持次输入键名 ( P)
显示在 C>的右边,并调整光标向前移动一位 ( 形成 C>P-) 。
当有后续命令键继续输入时,复上述动作,直至按下回车键,COMMAND.COM识别为命令输入结束,转向命令识别,出错处理 。 命令键入的流程如图 9 - 7 所示 。
图 9 – 7 命令键入的流程启动无键按下?
主程序读键盘标志
Y
读键代码
N
置空标志回车?
输入结束送 W R A M
显示输入命令缓冲区
N
Y
键按下串—并转换键盘串行扫描码
C P U 中断服务接口并行扫描码键代码置不空标志中断申请转换结束键盘缓冲器
9.3.3文件的调入命令输入结束后,COMMAND.COM命令处理程序对输入命 令 进 行 分 析,判断,处理 。 输 入 命 令 有 误 时,
COMMAND.COM提示属于非法命令等,清除命令行缓冲区内容,重新显示 C>等待新的输入 。 输入无误的情况下,区分内部,外部命令分别予以执行 。 若输入 Pctools,则被定为外部命令,为当前盘 C中的可执行文件 。
在对当前盘 C进行操作时,COMMAND.COM按照系统磁盘格式规定的磁道,磁头,扇区号 ( C,H,R) 地址读取目录资料,判断用户所调用的文件是否存在 。 若文件不存在则提示文件未找到;若文件存在则进一步调文件定位表查找,
确定该文件所在的磁盘地址,文件长度和文件属性等 。
然后,CPU按 DOS分配给调入文件所使用内存 RAM的首址,文件长度和读文件时的传递方向,对 DMAC进行初始化编程,使 DMAC进入等待阶段 。 与此同时,CPU通知硬盘适配器按 Pctools文件所在的磁盘地址进行定位,做好读出文件的准备 。
在硬盘 C完成各项准备工作并读出文件的部分信息后,向
DMAC提出 DMA请求 。 DMAC从总线控制器取得总线控制权后,开始 DMA传送,将数据由磁盘经适配器直接写入内存缓冲区 。 传送过程中,DMAC不断自行调整发送的内存地址,
并检测是否已达到规定的传输长度 。 若未达到,继续传送;
若已达到,则 DMAC通知硬盘结束本次读文件操作,向 CPU交还总线控制权 。 随后硬盘适配器向 CPU发出中断申请,请求
COMMAND.COM软件进行调入文件后的处理 。
DMA过程中,考虑到磁盘读写操作,可能与内存存取的快速度不匹配,为此,DMAC设有 READY接口引脚 。 当在规定的 DMA周期,磁盘未完成预定动作时,可通过 READY
产生电路向 DMAC申请延迟结束 DMA 操作,直至完成动作,
才向下进行 。
实际上,在上一节的磁盘启动,本节的读取磁盘根目录及文件定位表的操作中,都引发过 DMA传送过程 。
9.3.4文件的执行与返回 DOS
由于 Pctools是可执行文件,调入后,COMMAND.COM
在为其准备好必要的运行环境后,使用调用或转移指令,将
CS,IP指向该文件的第一条可执行指令所在的地址,实施
,交权,。
此时,Pctools文件程序通过 CPU掌管总线,使用系统资源 。 它重新设置自己的数据段,附加段,堆栈段寄存器地址,
使相关的数据信息包容在自己的管辖段内,为自己所用文件执行过程中允许调用 DOS 和 BIOS公开对外服务的子程序,
极大地扩大了应用范围 。
Pctools作为工具软件,允许用户输入命令选择菜单项并予以执行,其过程和其调入,执行与上述过程相似 。
9.3.5
在 DOS环境下许多软件采用屏幕菜单模式,由用户通过键盘选择相应的菜单项,一般有两种方法 。 第一种方法是将各项操作命令用文字标出,以其中首字或其他有代表意义的一个字符作为命令的关键字 。 例如,一调试软件规定多项命令:
· Dump——显示内存单元命令;
· Move——数据块移动命令;
· Traco——指令运行跟踪命令;

在屏幕上一行内排列为 Dump Move Traco...,并对首字加粗 ( 或加亮等 ) 。 用户输入命令时可只输入一个关键字符,调试软件执行以下程序进行命令分支执行:
MOV AH,0
INT 16H ;
CMP AL,′D′ ; 是否为 D
JZ DUMP ; 是 D命令转 Dump
CMP AL,′M′ ; 是否为 M
JZ MOVE ; 是 M命令转 Move处理程序

第二种方法是在屏幕上顺序列出菜单项,并以当前光标位置指定首菜单项,用户可直接按回车键选中,或在等待一定时间后按隐含方式选中 。 若用户要另选菜单,可使用 ↑键和 ↓键调整光标位置指向选择的菜单项,然后按回车键选中 。 仍以上例调试软件菜单为例,其屏幕显示如下:
屏幕位置列号 20
行号 101.DUMP
122.MOVE
143.TRACO
160.RETURN DOS
光标置于菜单项 1处为首选项,用户直接按回车键便选中了该项 。 此时,调试程序首先接到的是表示输入命令结束的回车键代码 0DH,然后它读取当前光标位置上字符的 ASCII码,
再根据 ASCII码的值进行程序分支操作 。 由于用户未调整光标位置,其对应字符,1”的 ASCII码为 31H,程序转向 DUMP子程序运行 。 这一过程由 PC汇编程序描述
P,MOV AH,0 ;
CMP AL,′↑′ ; 判断是否 ↑
JZ UP ; 是 ↑
CMP AL,′↓′ ; 判断是否 ↓
JZ DOWN ; 是 ↓
CMP AL,0DH ;
JNZ P ; 不是回车键,
MOV AH,08H ; 使用 BIOS
INT 10H ; 读取光标位置上的字符
CMP AL,′1′ ; 判断是否是字符,1”
JZ DUMP ; 是,1”转 DUMP
CMP AL,′2′ ; 判断是否是字符,2”
本例中,CRT工作于模式 3( 80× 25彩色字符方式 ),0
页,显示存储器 VRAM首址为 B8000H。 若用户选取了屏幕上的菜单项 1,由于字符,1”位于屏幕为 10行 20列处,可按下式计算和屏幕上字符,1”对应的 VRAM
VRAM 单元首址 =B8000H+(10× 80+20)=B8000 H
+578H=B8578H即 VRAM B8578H,B8579H两单元处存放着字符,1”的 ASCII码 ( 31H)和其显示属性 ( 07H——黑底白字 ) 。 经 BIOS INT 10H调用返回上述参数,用于判断转移至 DUMP子程序 。
Windows启动时菜单项选择的处理与上述过程相似 。 要说明的是它们最后都采用了,图形界面,,用户选中的是代表某一程序 ( 子程序 ) 的图形,经过,查图,最后确定执行相关程序 。
9.4 Windows
Windows启动成功后,微机由开机上电时的实地址工作方式转换为虚拟保护方式 。 在这种方式下,允许用户不仅可以使用由 CPU全部地址信息 ( 地址总线位宽 ) 所确定大小的内存物理空间,而且可以使用外存虚拟存储空间 。 在这种方式下,
Windows管理和支持多用户,多任务的执行,同时由于有了硬件保护措施,使系统安全性大大提高,系统资源得到充分利用,
充分展现了高档微机的优越性能 。
9.4.1Windows环境下的鼠标操作在 Windows环境下,CRT工作于彩色图形方式,比如分辨率为 800× 600,16位色,显存 VRAM为 1 MB以上 。 由于
Windows完善的图形软件和高速图形显示卡的支持,在屏幕桌面上和窗口中显示出各类图标,菜单,标题,形成了使用方便的人 —机图形交互界面 。
鼠标是 Windows操作时输入用户命令极为便捷的工具,它用于选择和控制机器的工作流程 。 启动后,鼠标箭头处于屏幕上一个确定的初始化位置 。 以后随着鼠标的上下,左右移动,
它只能给出相对原起点的变化值 。 鼠标通过串行口,向 CPU发送 X,Y坐标变化量,经串行口适配器串 —并转换后,通过中断控制器 ( 8259或兼容芯片 ) 向 CPU申请中断 。 CPU响应中断接收数据后,将它们转化为鼠标箭头的坐标变换,写入到显卡
CRT控制器,反映为鼠标箭头的跟踪移动 。
由于图标,菜单或标题都是具有一个限定范围的屏幕图形,
当鼠标箭头进入其范围,就被认为被指向 。 这时如果点击鼠标左,右键,CPU接到鼠标键开关闭合信息后,立即寻找被箭头指向的 VRAM小区内所对应的图标,菜单,标题的程序,并根据左,右键和单,双击区分执行相应的窗口操作或程序运行 。
图 9 - 8 表示出鼠标操作的流程示意图 。
为了清楚地表明鼠标不同的操作效果,当鼠标指向屏幕不同部分时,鼠标形状会有不同的变化:很大的 T符号,表示在文字区内输入文字的开始处,类似于 DOS环境下的光标;箭头加方框表示按住鼠标将选定的范围拖动;向左倾斜的箭头表示可选取下拉菜单;单独的,沙漏,与向左或向右倾斜的箭头并列,说明系统尚未结束相关程序运行 ( 忙或后台运行 ),不接受当前鼠标操作等等 。
图 9- 8 鼠标操作流程图
W i n d o w s启动、显示图标鼠标初始化定位鼠标相对移动箭头进入图标范围?
C P U 接收串行数据换算鼠标箭头坐标写入 CRT 适配器屏幕鼠标箭头跟随
N
点动鼠标左右键系统忙?
C P U 接收键闭合信息根据箭头坐标确定指向区
V R A M 对应的文件根据点击左右键和双击确定程序操作
Y
Y
N
Windows为方便用户,根据左右手习惯的不同,许鼠标左右键功能交换; 根据操作熟练程度的不同,对双击的速度进行调整 ( 确定可以视为双击操作的两次连击之间的最大时间间隔 ),使软件对硬件功能的补充和支持 。
Windows同时具有图形命令解释程序和键盘命令解释程序,
也支持键盘配合鼠标或键盘单独输入应用的模式 。 在许多情况下,键盘单独操作可实现鼠标的对应操作 。 在键盘上,按下
Windows专用键同样可以在屏幕的左下角显示,开始,菜单;
按下专用快捷键也可以产生该对象的快捷菜单等效果,有时比使用鼠标更有效率 。 使用其他键等效实现鼠标操作时,多为功能键 Fi以及 Alt,Ctrl参与的组合键或顺序使用,常生成低位字节为 00H的第三种类型的键代码,供系统使用 。 在文字输入时以键盘为主要手段 。 鼠标与键盘的配合使用将提高工作效率 。
图 9 - 9 给出了在桌面上使用鼠标对,我的电脑,图标进行选定,操作的示意图 。 假设,我的电脑,图标的显示点阵信息存放在 VRAM中一个小方块区域内,由 CRT扫描行号为
40~80,扫描列号为 20~60共同圈定 。 当移动鼠标时屏幕上的箭头进入上述区域后,即鼠标箭头的行坐标为 40~80间,列坐标为 20~60间;系统认为用户已指向了,我的电脑,图标 。
当程序员双击鼠标左键就打开了,我的电脑,图标,( 激活执行了有关程序 ) 出现一个,我的电脑,窗口 。 程序员还可以在点击左键锁定,我的电脑,图标后,再点击右键 ( 或按下键盘快捷键 ) 同样出现,我的电脑,窗口 。
9.4.2
硬件是主机的基本部件,各种操作系统,不同的软件程序都要由硬件去执行,因此对同一台主机而言,在 DOS、
Windows环境下,单个程序执行时的硬件操作基本流程相同或相似 。 Windows启动后,在屏幕桌面上显示了多种图标等待用户命令输入时,按图形方式从显示存储器 VRAM中不断读取字节内容刷新屏幕 。 从硬盘读取被选中的文件时,必须查找文件定位通知硬盘,以 DMA或终端方式输入至内存,并且实现程序计数器 ( PC机中为 CS,(E)IP组合 ) 的转移,激活图标,文件,建立新的窗口等 。 但关闭窗口时,由操作系统安排返回路径,并将程序计数器交还操作系统;内存 DRAM仍需在 2 ms时间间隔内不断刷新 。
Windows环境下使用虚拟地址,硬盘文件调入内存后才具有实际的物理地址; 虚拟模式下中断向量和中断的处理较实址方式复杂,不作进一步介绍 。 关闭系统时,须按规定步骤逐项关闭,并将必要的文件写回硬盘后再安全关机,使
Windows具有自己的运行特点 。
9.4.3
Windows允许多任务的执行,这一点与单用户 DOS有根本的区别 。 程序在系统中作为任务而执行,所谓多任务是指从宏观上看,使系统同时调度着多个程序在运行 。 Windows启动一个应用程序后,运行这个程序的一个任务,此时若再启动一个应用程序,即使是与上一个相同的一个应用程序,也会产生一个新的任务 。
主机硬件的众多资源中,除 CPU,中断控制器 ( 8259或兼容芯片 ),专用 VRAM等少数部件始终处于繁忙的工作状态外,
其他部件多处于不忙,甚至空闲的状态 。 这类部件有软硬磁盘打印机,串行口,定时音响等 。 由于 CPU运行速度极快,其他部件用中断或 DMA传送方式与 CPU进行数据通信,可实现
CPU与它们的并行工作 。
Windows操作系统可根据各种硬件资源的应用情况,在几个使用若干不同资源的多个任务间统筹进行安排,使各任务在同一时间段内并发工作 。
Windows早期版本是协同多任务的工作方式 。 运行着的任务掌握着系统的控制权,即系统安全放,权,,由该任务掌握着机器程序计数器的运行方向,直至任务完成交还给系统 。
在该任务运行期间系统没有权利 ( 实质上是没有办法 ) 终止该程序的运行,也不能调度另一个更高优先级的任务运行 。
目前 Windows是抢先多任务操作系统,在应用程序的任务运行中控制权一直在 Windows 系统的控制下 。 系统能根据应用程序任务的优先级随时暂停一个任务,而调度另一个任务运行 。
下面是一个多任务运行的实例分析 。
某用户程序员共有两项任务要求:在发送 Email的同时打印磁盘文件 。 当发送 Email时,主机已联通网络,需从内存单元中取出电子邮件的西文 ASCII码或汉字国标码,先送至串行适配器 。 数据经适配器并 —串转换后,生成异步或同步传输的规定 ( 如添加起始位,停止位,校验位或同步字符等 ) 格式,
再经全双工串口变换为负逻辑的 EIA电平,由 RS-232总线送至调制解调器 。 由调制解调器将数字信号调制为模拟信号,最后由通信线路将电子邮件发至对方网站 。 CPU在接到调制解调器已发送的反馈信息或接到串口发送空的终端请求,将继续文件发送,直至完成 。
打印磁盘文件时,程序员使用虚拟地址且文件不在内存时,
由 Windows查找该地址所对应的磁盘物理地址,将文件以中断方式或 DMA方式调入内存,并给定实际地址 。 随后系统调用屏幕显示程序和打印机驱动程序,在将文件内容送入 VRAM的同时,
经并行口适配器送入打印机 。 系统还会按照文件打印格式选定的要求,添加必要的打印控制命令 ( 如标题,走纸,列表,字体选择等 ) 。 打印机在数据缓冲区空时,会发送中断请求或表明不忙的状态 。 CPU可以中断或查询方式继续文件传送 。
这两项任务除共用 CPU外,可以使用主机中不同的内存工作区,串行口,并行口,磁盘适配器和显示适配器等不同的硬件资源,且执行速度都不算快 。
CPU在两项任务同时运行时有冲突,Windows可根据任务的需要安排,实施任务间的切换,穿插安排,统筹兼顾全部完成 。 可实现在后台发送 E mail文件,前台执行文件显示和打印 。 由于两个任务,并行,( 并发 ) 运行,充分利用了主机多项资源,节省了时间,提高了效率 。
由于该用户的两项任务中 CPU仅需处理一些初始化,简单任务切换,终端响应,中断服务等工作,因而耗时很少,多数时间仍是一般等待 。 为充分利用 CPU宝贵的资源,操作系统可再,同时,安排一项 ( 或多项 ) 计算类任务,在前台工作接受运算数据输入等 。 Windows可以在计算任务等待数据输入时,
切换执行其他两项任务,在数据输入结束后再切换执行运算任务等 。
一个用户在执行了控制面板中的,日期 /时间,程序后,
又调用,附件,的,计算器,程序投入运行 。 桌面上,日期 /
时间,在一个对话框中运行 。 后运行的,计算器,窗口是活动窗口,便于人们输入数据 。,日期 /时间,在后台仍处于运行之中 。 由于实时时钟为独立的硬件电路,完全可以与 CPU
并行工作,后台任务运行程序仍是读取其数值,是模拟时钟不断在走动并辅以数字显示 。 图 9 - 10 是两个任务并发运行示意图 。
对于都以使用 CPU为主的运算类多任务的运行,由于
CPU内部的算术 /逻辑运算部件和浮点运算部件可以在一定程度上并行工作,但若都是相同的计算任务则 CPU分身乏术,
每个任务运行的速度必然受到限制 。
Windows的应用程序都在窗口中进行 。 每个应用程序可以打开一个或几个窗口,运行多个程序,多个任务将在屏幕上建立多个窗口 。 当前正在使用的是活动窗口 。 从系统角度来看,由于 VRAM是图形界面的软硬件间的接口,VRAM区的若干个小区可以看作是执行窗口菜单操作的子程序的映像 。
当执行层叠式下拉菜单窗口时,上一级窗口的部分被覆盖,
即对应的 VRAM区被写入了新的内容 。
显然被覆盖部分无法调用原有子程序,无法执行原菜单操作,而未被覆盖的上级窗口的标题栏和菜单操作会被保留使用 。 用鼠标单击后台的目标窗口可切换为活动窗口,或执行关闭后台文件等操作 。 由于活动窗口在最前端无遮掩,占用较大的屏幕,允许执行全部菜单功能操作,如图 9 - 11 所示
Windows环境下 CRT工作与图形方式使用点阵信息,图形易于按比例缩放,支持等多种模式 。 硬盘及内存容量大,配置了多种字符字体的各类点阵字库,用户选择余地大,使用方便 。