Warum ist die CPU während des Tastaturechos beteiligt?


9

Ich studiere gerade für eine Informatikprüfung und bin auf ein Konzept gestoßen, das mich etwas verblüfft hat.

Wenn man eine Taste auf der Tastatur eingibt, wird ein ASCII-Zeichen an die CPU übertragen. Beim Empfang dieses Zeichens gibt die CPU dasselbe Zeichen auf dem Bildschirm aus. Dieser Vorgang wird als Echo bezeichnet. Warum lassen wir diesen Echo-Prozess nicht einfach innerhalb der Tastatur- / Bildschirmeinheit durchführen, anstatt die CPU einzubeziehen, damit die CPU andere nützliche Arbeiten ausführen kann?

Intuitiv habe ich das Gefühl, dass es keine definierte Tastatur- / Bildschirmeinheit gibt und die CPU das Gerät ist, das für die Kommunikation zwischen Bildschirm und Tastatur über das Verbindungsnetzwerk verantwortlich ist. Ich habe jedoch das Gefühl, dass die Tatsache, dass eine Tastatur- / Bildschirmeinheit erwähnt wird, bedeuten kann, dass mir ein wichtiges Konzept fehlt. Ist das der Fall? Warum beziehen wir die CPU in den Echo-Prozess ein?


Wie funktionieren Tastatureingabe und Textausgabe? kann von Interesse sein. Es bietet einen allgemeinen Überblick über die Verarbeitung, die heute in einem typischen Betriebssystem für Computer im PC-Stil ausgeführt wird.
Gilles 'SO - hör auf böse zu sein'

Wenn ich abstimmen könnte, um zu schließen, würde ich. Das ist keine Informatik. Es eignet sich eher für StackOverflow oder für andere Bereiche, die sich auf Computerhardware und Low-Level-Programmierung konzentrieren.
Miles Rout

Antworten:


6

Wenn der Computer jedes Zeichen während der Eingabe sehen kann, können Programmierer die Benutzeroberfläche dynamischer gestalten.

Damals, als ein seriöser Computer die Größe mehrerer aufrecht stehender Kühlschränke hatte und Computer mit Benutzereingaben zeilenweise betrieben wurden, wurde die Terminaleingabe wie beschrieben behandelt. Sie haben eine Textzeile in ein Terminal eingegeben, die lokal angezeigt wird (häufig auf Papier). Erst wenn Sie die EINGABETASTE oder die EINGABETASTE gedrückt haben, wurde der Text zur Verarbeitung an den Mainframe oder Minicomputer gesendet.

Aber schon damals erkannten die damaligen Ingenieure den Vorteil, dass der Computer die Benutzereingaben frühzeitig sehen konnte. Die Befehlsvervollständigung, bei der Sie die ersten Buchstaben eines Befehls eingeben und der Computer den Rest ausfüllt, wurde Mitte der 1960er Jahre erfunden. Diese Funktion wurde im Laufe der Jahre kopiert und verbessert, bis sie heute verfügbar ist. Sie ist in allen modernen UNIX-Shells und auch unter Windows verfügbar.

Wenn die CPU jedes Zeichen während der Eingabe sehen kann, können Shells auch Befehlszeilenbearbeitungs- und Verlaufsfunktionen anbieten, die weit über das hinausgehen, was ein dummes Terminal bieten könnte. Mit einer Taste können Sie eine Liste der zuvor eingegebenen Befehle durchgehen, einen auswählen und dann leicht bearbeiten, bevor Sie RETURN drücken, um ihn auszuführen. Text kann zwischen Befehlszeilen ausgeschnitten und eingefügt werden, da die CPU Zugriff auf vorherige Befehle hat, das Terminal jedoch nicht. Dateinamen sowie Befehle können basierend auf Teileingaben vervollständigt werden, was wiederum möglich ist, da die CPU Zugriff auf die Namen der Dateien im Dateisystem hat und das Terminal nicht.


Dies war eine ausgezeichnete Antwort, danke!
MMMMMCK

4

Es ist NICHT NOTWENDIG, dass der Computer jedes Zeichen während der Eingabe sieht, um die Benutzeroberfläche dynamischer zu gestalten.

Alte ASCII-Terminals wurden normalerweise als ein Tastatur + Bildschirm-Paket oder Tastatur + Druckkopf (damals oft als Teletyp bezeichnet) geliefert. So war lokales Echo möglich. Die Eingabe wurde als ganze Zeile gesendet, und dafür war die Eingabetaste gedacht (sie wurde auch als Wagenrücklauf bezeichnet). Dies war praktisch, wenn Ihr Terminal über langsame Telefonleitungen mit einem entfernten Computer verbunden war. Ich habe immer noch ein 300-Baud-Modem, das ich damals verwendet habe, was etwas weniger als 300 Bit / Sekunde ist. Und das war nicht das langsamste, das ich benutzt habe. Sie wollten nicht auf das Echo warten.

Kyles Jones gab Ihnen einige gute Gründe, das Echo vom Computer steuern zu lassen. Wie Verlauf und Befehlszeilenbearbeitung. Aber auch diese Gründe könnten durch lokales Echo überwunden werden. Mein altes ASCII-Bildschirmterminal (1980 gekauft und das ich nicht mehr an eine Steckdose anschließen darf, da sich die Kondensatoren in einem traurigen Zustand befinden müssen) hatte (hat) noch ungefähr 12 Bildschirme (ein Bildschirm besteht aus 24 Zeilen mit 80 Zeichen) und lokale Bearbeitungsmöglichkeiten: Das Terminal hatte eine eigene lokale CPU ... Ich bin mir nicht sicher, ob Sie das im Sinn hatten. Dies ist alles aus dem Gedächtnis, also hoffe ich, dass es der Wahrheit nahe kommt, aber die Suche nach dem Handbuch würde einige Zeit in Anspruch nehmen.

Im Grunde hatte ich einen Computer mit Benutzeroberfläche, der an einen anderen Computer angeschlossen war. Tatsächlich wird es immer Hardware geben, um das Echo zu verarbeiten. Ihre Frage ist also eher, ob es angemessen ist, hochentwickelte Hardware zu haben, um dies mit einer CPU oder mit einfacherer Hardware zu tun (die nicht in der Lage ist, hochentwickelte Arbeit zu leisten). Die Erbauer meines Terminals hielten es für angemessen und machten es zu einem hoch entwickelten Terminal mit dem dummen Kommunikationsprotokoll mit dem Computer, das damals Standard war.

Ich dachte zuerst daran zu sagen, dass ein guter Grund, die CPU zu durchlaufen, darin besteht, dass Anwendungen jetzt Fenster mit allen Arten von Funktionen und unterschiedlichen Schriftarten verwenden und dass dies die Leistung des Computers erfordert, um die entsprechende Flexibilität zu erhalten, nämlich einen einfachen Bildschirm. Tastatur kann nicht bieten.

Aber ich erinnerte mich rechtzeitig (Erinnerung ist schwer zu erinnern), dass dies falsch ist. In den frühen 1980ern entwickelten die Leute Bitmap-Grafiken (das war der Name für die Art von Bildschirm, die Sie jetzt verwenden, obwohl es CRT-Rathed als LCD war). Einige der Arbeiten folgten der traditionellen Terminalansicht und erstellten sehr ausgefeilte grafische Terminals mit mehreren Windos und Schriftarten usw. Eines davon war das BLIT , das Gegenstand vieler Experimente war, wie beispielsweise Cardellis berüchtigte Krabben .

Dies bedeutet nicht unbedingt, dass die CPU, auf der die Anwendung ausgeführt wird, die Zeichen nicht gesehen hat. Aber es musste nicht. Das Terminal war leistungsstark genug, um selbst sehr komplexe Arbeiten auszuführen.

Die Computerarchitektur hat viele Lösungen getestet, insbesondere als schnellere Netzwerke verfügbar wurden. Sie beschäftigen sich mit dem Terminal, aber an einigen Stellen war es die Festplatte, die ein Problem darstellte (hauptsächlich Preis, glaube ich, und auch Verwaltung). Wir hatten also eine Zeitlang einen plattenlosen Arbeitsplatz (dh PCs). Sie würden CPU, Bildschirm, Tastatur und RAM enthalten, aber keine Festplatte. Der Speicherplatz befand sich im Netzwerk, und Sie haben gerade Dateispeicherplatz vom Netzwerk angefordert. Sogar das Austauschen des virtuellen Speichers wurde über das Netzwerk durchgeführt.

Das Fazit lautet also: Eine ausgefeilte Benutzeroberfläche (zum Beispiel), die Fenster, verschiedene Schriftarten, programmierbare Tasten, Befehlszeilenbearbeitung, Synchronisation zwischen Eingabe und Ausgabe verwendet und was nicht, erfordert echte Verarbeitungsleistung. Selbst bei sehr schwachen Fähigkeiten wird Hardware benötigt. Dann kann diese Rechenleistung an den Computer und seine CPU angeschlossen oder von diesem unabhängig und mehr oder weniger entfernt verbunden sein. Gleiches gilt möglicherweise auch für andere Ressourcen.

Aber alles ist sehr relativ.

Letzte Bemerkung. Das erste alphanumerische Bildschirmterminal, das ich jemals verwendet habe, war 1974 ein Tektronix, der mit seiner Tastatur geliefert wurde. Der Bildschirm und die Tastatur waren so eng miteinander verbunden, dass wir jemanden bezahlen mussten, um sie zu modifizieren, indem wir die Schaltung mit einem Lötkolben so änderten, dass sie sich nach Bedarf verhält. Aber ich sollte meinen endlosen Strom von Geschichten stoppen.


Was alt war, ist wieder neu. Festplattenlose Workstations sind zurück!
Feuer

-1

Wie konnte die CPU nicht beteiligt sein? Wie würde der Computer wissen, ob überhaupt etwas auf den Bildschirm gedruckt werden soll, ohne dass die CPU beteiligt ist? Wie würde es wissen, wo das Zeichen gedruckt werden soll? Wie würde es wissen, welche Schriftart zu verwenden ist? Wie würde es wissen, wie man diese Schriftart rendert?


Das ist auch mein Gedanke. Leider war ich mit einem Professor "begabt", der ein großer Fan von obskuren Gotcha-Fragen ist, also dachte ich, es sei keine schlechte Idee, auf Nummer sicher zu gehen.
MMMMMCK

4
Hmmpf, Kinder heutzutage. Teletypen waren einmal eine Sache. Sie hatten eine Schriftart im ROM (im RAM vielleicht für einige fortgeschrittene Modelle). Sie speicherten und druckten eine Zeile und schickten sie dann an den Computer. Dann kamen Terminals mit einem Bildschirm; Diese behielten einen Speicher der aktuellen Zeichenposition bei und konnten Befehle des Benutzers oder der CPU verstehen, um den Cursor zu bewegen, Textattribute
festzulegen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.