为什么键盘回声会涉及CPU?


9

我目前正在学习计算机科学考试,并且遇到了一个让我有些困惑的概念。

当您在键盘上键入一个键时,一个ASCII字符将被发送到CPU。接收到此字符后,CPU将相同的字符输出到屏幕。此过程称为回声。为什么不让CPU参与其中,为什么我们不简单地在键盘/屏幕单元内完成此回显过程,以便CPU可以自由地做其他有用的工作?

现在,凭直觉,我觉得这是因为没有定义的键盘/屏幕单元,而CPU是负责通过互连网络在屏幕和键盘之间进行通信的设备。但是,我感觉提到键盘/屏幕单元这一事实可能意味着我错过了一个重要的概念。是这样吗 为什么我们将CPU包含在回声过程中?


键盘输入和文本输出如何工作?可能很有趣。它概述了当今用于PC风格计算机的典型操作系统中进行的处理。
吉尔斯(Gillles)“所以-别再作恶了”

如果我可以投票关闭,我会的。这不是计算机科学。它更适合StackOverflow或其他专注于计算机硬件和低级编程的地方。
Miles Rout 2015年

Answers:


6

让计算机看到键入的每个字符,使程序员可以使用户界面更加动态。

以前,当一台严肃的计算机只有几个立式冰箱的大小,并且由用户操作的计算机一次只能输入一条生产线时,便按照您所描述的那样处理了终端输入。您在本地显示(通常在纸上)的终端上键入了一行文本。仅当您按ENTER或RETURN键时,文本才会发送到大型机或小型计算机进行处理。

但是即使在那时,当时的工程师也意识到了让计算机尽早看到用户输入的优势。命令完成是在1960年代中期发明的,您可以在其中键入命令的前几个字母,然后由计算机填充其余部分。多年来,此功能一直被复制和改进到今天的状态,可在所有现代UNIX Shell中以及Windows下使用。

允许CPU在键入每个字符时看到它们,这也使Shell可以提供命令行编辑和历史记录功能,这远远超出了哑终端所能提供的功能。按键可以让您退回先前输入的命令列表,选择一个,然后稍作编辑,然后按RETURN使其执行。可以在命令行之间剪切和粘贴文本,这是可能的,因为CPU可以访问以前的命令,而终端则不能。文件名和命令可以基于部分输入来完成,这也是可能的,因为CPU可以访问文件系统中的文件名,而终端则不能。


这是一个很好的答案,谢谢!
MMMMMCK 2014年

4

不必让计算机看到键入的每个字符,以使用户界面更加动态。

旧的ASCII终端通常作为一个键盘+屏幕包装或键盘+打印头(通常称为电传打字机)出现。因此,本地回声是可能的。输入以整行形式发送,这就是回车键的作用(也称为回车)。当您的终端通过慢速电话线连接到远程计算机时,这非常方便。那时我还有一个300波特的调制解调器,比300位/秒还少。那不是我使用的最慢的。您不想等待回声。

凯尔斯·琼斯(Kyles Jones)为您提供了一些很好的理由,让计算机控制回波。如历史记录和命令行编辑。但是,即使这些原因也可以通过局部回波来克服。我的旧ascii屏幕终端(1980年购买,由于电容器必须处于令人遗憾的状态,我不再敢将其连接到插座)具有(仍然有)约12个屏幕(一个屏幕是24行,每行80个字符)的历史记录以及本地编辑工具:终端具有自己的本地CPU ...我不确定这是您的初衷。这些全都来自记忆,所以我希望它接近真实,但是搜索手册将花费我一些时间。

因此,基本上,我已经将用户界面计算机连接到另一台计算机。实际上,总会有一些硬件来处理回声,因此,您的问题更多是使用复杂的硬件来使用CPU还是使用更简单的硬件(不能执行复杂的工作)是否合适。我的终端机的制造商认为这是合适的,并使其成为复杂的终端机,与当时标准的计算机之间采用了愚蠢的通讯协议。

我首先想到的是,通过CPU的一个很好的理由是应用程序现在使用具有各种功能和不同字体的窗口,并且这需要计算机的力量才能获得适当的灵活性,即简单的屏幕-键盘无法提供。

但是我及时回忆(记忆难以回忆)这是错误的。在1980年代初期,人们开始开发位图图形(虽然现在的CRT比LCD更为成熟,但它却是您现在使用的那种屏幕的名称)。其中一些工作遵循传统的终端视图,制作具有多种窗口和字体等非常复杂的图形终端。其中之一是BLIT,这是许多实验的主题,例如Cardelli臭名昭著的螃蟹

这并不一定意味着运行该应用程序的CPU没有看到这些字符。但这不是必须的。该终端强大到足以独自完成非常复杂的工作。

计算机体系结构已经在测试许多解决方案,尤其是随着更快的网络可用。您关心的是终端,但是在某些时候,磁盘是个问题(我认为主要是价格,也包括管理问题)。因此,我们有一段时间无盘工作站(即个人计算机)。它们将包括CPU,屏幕,键盘和RAM,但没有磁盘。磁盘空间在网络上,您刚刚从网络请求了文件空间。甚至虚拟内存交换都是通过网络完成的。

因此,结论是:使用窗口,各种字体,可编程键,命令行编辑,输入和输出之间的同步等复杂的界面(例如),确实需要一定的处理能力。即使功能很弱,也需要一些硬件。然后,该计算能力可以连接到计算机及其CPU,或者可以独立于计算机,并或多或少地远程连接。其他资源也可能如此。

但是一切都是相对的。

最后一句话。我曾经使用的第一个字母数字屏幕终端是1974年的Tektronix,它带有键盘。屏幕和键盘之间的连接是如此紧密,以至于我们不得不花钱去修改它,方法是用烙铁改变电路,使其能够按需工作。但是我应该停止无休止的故事流。


旧的又是新的。无盘工作站又回来了!
dfeuer 2014年

-1

如何参与CPU ?在不涉及CPU的情况下,计算机如何知道是否在屏幕上完全打印任何内容?它怎么知道在哪里打印字符?它怎么知道使用什么字体?它怎么会知道如何渲染该字体?


这也是我的想法。不幸的是,我一直被一个非常迷惑的棘手问题的教授“送上礼物”,所以我认为安全地玩并不是一个坏主意。
MMMMMCK 2014年

4
嗯,这些天孩子们。电传打字曾经是一回事。他们在ROM中有一种字体(对于某些高级型号,可能在RAM中)。他们存储并打印了一行,然后将其发送到计算机。然后是带有屏幕的终端;这些保持当前字符位置的存储器中并且可以理解从用户或CPU的命令来移动光标,组文本属性,等等
吉尔“SO-停止尚且”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.