Dlaczego procesor jest zaangażowany podczas echa klawiatury?

9

Obecnie studiuję do egzaminu z informatyki i natknąłem się na koncepcję, która trochę mnie zaskoczyła.

Po wpisaniu klawisza na klawiaturze do procesora przesyłany jest znak ASCII. Po otrzymaniu tego znaku CPU wysyła ten sam znak na ekran. Ten proces nazywa się echem. Zamiast angażować procesor, dlaczego po prostu nie wykonujemy tego procesu echa w klawiaturze / ekranie, aby procesor mógł wykonywać inne użyteczne prace?

Teraz intuicyjnie wydaje mi się, że dzieje się tak, ponieważ nie ma zdefiniowanej jednostki klawiatury / ekranu, a procesor jest urządzeniem odpowiedzialnym za komunikację między ekranem a klawiaturą za pośrednictwem sieci połączeń. Jednak wydaje mi się, że fakt, że wspomniano o klawiaturze / ekranie, może oznaczać, że brakuje mi ważnej koncepcji. Czy tak jest w przypadku? Dlaczego angażujemy procesor w proces echa?

MMMMMCK
źródło
Jak działają wprowadzanie za pomocą klawiatury i tekst? może być interesujące. Daje ogólny przegląd przetwarzania, które odbywa się obecnie w typowym systemie operacyjnym dla komputerów typu PC.
Gilles „SO- przestań być zły”,
Gdybym mógł zagłosować za zamknięciem, zrobiłbym to. To nie jest informatyka. Jest bardziej odpowiedni dla StackOverflow lub gdzieś indziej skoncentrowanego na sprzęcie komputerowym i programowaniu niskiego poziomu.
Miles Rout

Odpowiedzi:

6

Pozwalając komputerowi widzieć każdy wpisany znak, pozwala programistom na bardziej dynamiczny interfejs użytkownika.

W czasach, gdy poważny komputer był wielkości kilku stojących lodówek i komputerów obsługiwanych przez użytkownika na raz, linia wejściowa była obsługiwana zgodnie z opisem. Wpisałeś wiersz tekstu na terminalu, który wyświetlał go lokalnie (często na papierze). Dopiero po naciśnięciu klawisza ENTER lub RETURN tekst był wysyłany do komputera głównego lub minikomputera w celu przetworzenia.

Ale nawet wtedy przewaga polegająca na tym, że komputer mógł wcześnie zobaczyć dane wejściowe użytkownika, została zauważona przez inżynierów tamtych czasów. Uzupełnianie poleceń, w którym wpisujesz kilka pierwszych liter polecenia, a komputer wypełnia resztę, zostało wynalezione w połowie lat sześćdziesiątych. Ta funkcja była przez lata kopiowana i ulepszana do obecnej wersji, dostępna we wszystkich nowoczesnych powłokach UNIX i Windows.

Umożliwienie procesorowi zobaczenia każdego wpisywanego znaku umożliwia również powłokom oferowanie edycji wiersza poleceń i funkcji historii znacznie wykraczających poza to, co może zapewnić głupi terminal. Klawisz pozwala cofnąć się przez listę wcześniej wpisanych poleceń, wybrać jedno, a następnie poddać je nieznacznej edycji przed naciśnięciem klawisza RETURN w celu wykonania. Tekst można wycinać i wklejać między wierszami poleceń, co jest możliwe, ponieważ CPU ma dostęp do poprzednich poleceń, a terminal nie. Nazwy plików, a także polecenia mogą być wykonywane na podstawie częściowego wprowadzania danych, znów możliwe, ponieważ CPU ma dostęp do nazw plików w systemie plików, a terminal nie.

Kyle Jones
źródło
To była doskonała odpowiedź, dziękuję!
MMMMMCK,
4

Pozwolenie komputerowi widzieć każdy wpisany znak NIE JEST KONIECZNIE POTRZEBNE, aby interfejs użytkownika był bardziej dynamiczny.

Stare terminale ASCII były zwykle dostarczane jako jedna klawiatura + pakiet ekranowy lub klawiatura + głowica drukująca (nazywana wtedy często teletypem). Tak więc lokalne echo było możliwe. Dane wejściowe zostały wysłane w postaci całych linii i do tego właśnie służył klawisz Enter (nazywano go także karetką-powrotem). Było to wygodne, gdy terminal był podłączony powolnymi liniami telefonicznymi do odległego komputera. Nadal mam używany modem 300 bodów, który jest nieco mniejszy niż 300 bitów na sekundę. I to nie był najwolniejszy, jakiego użyłem. Nie chciałeś czekać na echo.

Kyles Jones dał ci kilka dobrych powodów, aby komputer kontrolował echo. Takich jak edycja historii i wiersza poleceń. Ale nawet te powody można pokonać za pomocą lokalnego echa. Mój stary terminal ekranowy ascii (kupiony w 1980 r., Którego nie mam już odwagi podłączyć do gniazdka, ponieważ kondensatory muszą być w opłakanym stanie) miał (nadal ma) około 12 ekranów (ekran ma 24 wiersze po 80 znaków) historii oraz lokalne funkcje edycji: terminal miał własny lokalny procesor ... Nie jestem pewien, czy o to ci chodziło. Wszystko to pochodzi z pamięci, więc mam nadzieję, że jest blisko prawdy, ale szukanie instrukcji zajmie mi trochę czasu.

Zasadniczo miałem komputer z interfejsem użytkownika podłączony do innego komputera. W rzeczywistości zawsze będzie jakiś sprzęt do obsługi echa, więc twoje pytanie dotyczy bardziej tego, czy stosowne jest posiadanie wyrafinowanego sprzętu do robienia tego z procesorem, czy z prostszym sprzętem (niezdolnym do wykonywania skomplikowanej pracy). Konstruktorzy mojego terminalu uznali, że jest to właściwe, i uczynili go wyrafinowanym terminalem z głupim protokołem komunikacyjnym z komputerem, który był wtedy standardem.

Najpierw pomyślałem o tym, że dobrym powodem do przejścia przez procesor jest to, że aplikacje używają teraz okien z wszelkiego rodzaju funkcjami i różnymi czcionkami, a to wymaga mocy komputera, aby uzyskać odpowiednią elastyczność, czyli prosty ekran - klawiatura nie może zaoferować.

Ale z czasem przypomniałem sobie (trudno zapamiętać pamięć), że to nieprawda. Na początku 1980 r. Ludzie opracowywali grafikę bitmapową (tak nazywał się rodzaj ekranu, którego używasz, choć był to ekran CRT niż LCD). Niektóre prace były zgodne z tradycyjnym widokiem terminali, tworząc bardzo wyrafinowane terminale graficzne z wieloma windami i czcionkami itp. Jednym z nich był BLIT , który był przedmiotem wielu eksperymentów, takich jak niesławne kraby Cardellego .

Nie musi to koniecznie oznaczać, że procesor aplikacji nie widział znaków. Ale nie musiał. Terminal był wystarczająco potężny, aby samodzielnie wykonywać bardzo złożone prace.

Architektura komputerów testuje wiele rozwiązań, zwłaszcza gdy dostępne są szybsze sieci. Martwisz się terminalem, ale w pewnym momencie problemem był dysk (głównie cena, a także zarządzanie). Mieliśmy więc przez pewien czas bezdyskową stację roboczą (tj. Komputery osobiste). Obejmowałyby procesor, ekran, klawiaturę i pamięć RAM, ale bez dysku. Miejsce na dysku było w sieci i właśnie zażądałeś miejsca na pliki z sieci. Nawet zamiana pamięci wirtualnej odbywała się przez sieć.

Podsumowaniem jest więc: wyrafinowany interfejs (na przykład), korzystanie z systemu Windows, różne czcionki, programowalne klawisze, edycja wiersza poleceń, synchronizacja między wejściem a wyjściem, a co nie, wymaga prawdziwej mocy obliczeniowej. Nawet przy bardzo słabych możliwościach potrzebny jest sprzęt. Wtedy ta moc obliczeniowa może być podłączona do komputera i jego procesora lub może być od niego niezależna i podłączona mniej więcej zdalnie. To samo może dotyczyć innych zasobów.

Ale wszystko jest bardzo względne.

Ostatnia uwaga. Pierwszym terminalem alfanumerycznym, którego kiedykolwiek użyłem, był Tektronix w 1974 r., Który został dostarczony z klawiaturą. Ekran i klawiatura były tak ściśle połączone, że musieliśmy zapłacić komuś za modyfikację, zmieniając obwód za pomocą lutownicy, aby zachowywała się w razie potrzeby. Ale powinienem zatrzymać mój niekończący się strumień historii.

Babou
źródło
To, co stare, znów jest nowe. Stacje robocze bez dysków powróciły!
dfeuer
-1

W jaki sposób procesor nie mógł być zaangażowany? Skąd komputer wiedziałby, czy w ogóle wydrukować coś na ekranie bez udziału procesora? Skąd miałby wiedzieć, gdzie wydrukować postać? Skąd miałby wiedzieć, jakiej czcionki użyć? Skąd miałby wiedzieć, jak renderować tę czcionkę?

David Richerby
źródło
To też moja myśl. Niestety, zostałem „obdarzony” profesorem, który jest wielkim fanem niejasnych pytań typu gotcha, więc pomyślałem, że granie w bezpieczny sposób nie było złym pomysłem.
MMMMMCK,
4
Hmmpf, dzieciaki w dzisiejszych czasach. Teletypy były kiedyś rzeczą. Mieli czcionkę w pamięci ROM (w pamięci RAM może dla niektórych zaawansowanych modeli). Zapisali i wydrukowali linię, a następnie wysłali ją do komputera. Potem pojawiły się terminale z ekranem; zachowały one pamięć aktualnej pozycji znaku i mogły zrozumieć polecenia użytkownika lub procesora, aby przesunąć kursor, ustawić atrybuty tekstu itp.
Gilles „SO - przestań być zły”