假设某计算机带有20个终端同时工作,在运行用户程序的同时,能接受来自任意一个终端输入的字符信息,并将字符回送显示(或打印)。每一个终端的键盘输入部分有一个数码缓冲寄存器RDBRi(i=1~20),当在键盘上按下某一个键时,相应的字符代码即进入RDBRi,并使它的“完成”状态标志Donei(i=1~20)置1,要等处理器把该字符代码取走后,Donei标志才置0。每个终端显示(或打印)输出部分也有一个数码缓冲寄存器TDBRi(i=1~20),并有一个Readyi(i=1~20)状态标志,该状态标志为1时,表示相应的TDBRi是空着的,准备接收新的输出字符代码,当TDBRi接收了一个字符代码后,Readyi标志才置0,并送到终端显示(或打印),为了接收终端的输入信息,处理器为每个终端设计了一个指针PTRi(i=1~20)指向为该终端保留的主存输入缓冲区。处理器采用下列两种方案输入键盘代码,同时回送显示(或打印)。 (1)每隔一固定时间T转入一个状态检查程序DEVCHC,顺序地检查全部终端是否有任何键盘信息要输入,如果有,则顺序完成之。 (2)允许任何有键盘信息输入的终端向处理器发出中断请求。全部终端采用共同的向量地址,利用它使处理器在响应中断后,转入一个中断服务程序DEVINT,由后者询问各终端状态标志,并为最先遇到的请求中断的终端服务,然后转向用户程序。要求画出DEVCHC和DEVINT两个程序的流程图。
免费的网站请分享给朋友吧