Perché la CPU è coinvolta durante l'eco della tastiera?


9

Attualmente sto studiando per un esame di informatica e mi sono imbattuto in un concetto che mi ha in qualche modo sconcertato.

Quando si digita un tasto sulla tastiera, un carattere ASCII viene trasmesso alla CPU. Alla ricezione di questo carattere, la CPU emette lo stesso carattere sullo schermo. Questo processo si chiama eco. Invece di coinvolgere la CPU, perché non facciamo semplicemente questo processo di eco all'interno dell'unità tastiera / schermo in modo che la CPU sia libera di fare altro lavoro utile?

Ora, intuitivamente, mi sento così perché non esiste un'unità tastiera / schermo definita e la CPU è il dispositivo responsabile della comunicazione tra lo schermo e la tastiera, attraverso la rete di interconnessione. Tuttavia, mi sembra che il fatto che sia menzionata un'unità tastiera / schermo possa significare che mi manca un concetto importante. È questo il caso? Perché coinvolgiamo la CPU nel processo di eco?


Come funzionano l'input da tastiera e l'output di testo? potrebbe essere di interesse. Fornisce una panoramica di alto livello dell'elaborazione che avviene oggi in un tipico sistema operativo per computer in stile PC.
Gilles 'SO- smetti di essere malvagio' il

Se potessi votare per chiudere lo farei. Questa non è informatica. È più adatto a StackOverflow o altrove focalizzato sull'hardware del computer e sulla programmazione di basso livello.
Miles Rout,

Risposte:


6

Consentire al computer di vedere ogni carattere mentre viene digitato consente ai programmatori di rendere l'interfaccia utente più dinamica.

All'epoca in cui un computer serio aveva le dimensioni di diversi frigoriferi verticali e i computer operavano su input dell'utente una linea alla volta, l'input del terminale veniva gestito come descritto. Hai digitato una riga di testo su un terminale che lo visualizzava localmente (spesso su carta). Solo quando è stato premuto il tasto INVIO o INVIO è stato elaborato il testo inviato al mainframe o al minicomputer.

Ma anche allora, il vantaggio di consentire al computer di vedere in anticipo l'input dell'utente è stato realizzato dagli ingegneri del tempo. Il completamento del comando, in cui si digitano le prime lettere di un comando e il computer riempie il resto, è stato inventato a metà degli anni '60. Questa funzione è stata copiata e migliorata nel corso degli anni fino a dove si trova oggi, disponibile in tutte le moderne shell UNIX e anche in Windows.

Consentire alla CPU di vedere ogni carattere mentre viene digitato consente anche alle shell di offrire funzionalità di modifica della riga di comando e cronologia ben oltre ciò che un terminale stupido potrebbe fornire. Un tasto può consentire di tornare indietro in un elenco di comandi precedentemente digitati, sceglierne uno e modificarlo leggermente prima di premere INVIO per eseguirlo. Il testo può essere tagliato e incollato tra le righe di comando, possibile perché la CPU ha accesso ai comandi precedenti mentre il terminale no. Nomi di file e comandi possono essere completati in base all'input parziale, ancora una volta possibile perché la CPU ha accesso ai nomi dei file nel filesystem e il terminale no.


Questa è stata una risposta eccellente, grazie!
MMMMMCK,

4

Consentire al computer di vedere ogni carattere durante la digitazione NON È NECESSARIO PER RENDERE l'interfaccia utente più dinamica.

I vecchi terminali ASCII venivano di solito come un pacchetto tastiera + schermo o tastiera + testina di stampa (chiamato quindi spesso un teletipo). Quindi l'eco locale era possibile. L'input è stato inviato come linee intere ed è a questo che serviva il tasto Invio (era anche chiamato ritorno a capo). Ciò è stato utile quando il terminale era collegato tramite linee telefoniche lente a un computer distante. Ho ancora un modem da 300 baud che ho usato allora, che è un po 'meno di 300 bit / secondo. E quello non è stato il più lento che ho usato. Non volevi aspettare l'eco.

Kyles Jones ti ha fornito alcuni buoni motivi per far controllare l'eco dal computer. Come la cronologia e la modifica della riga di comando. Ma anche questi motivi potrebbero essere superati con l'eco locale. Il mio vecchio terminale a schermo ascii (acquistato nel 1980 e che non oso più collegare a una presa poiché i condensatori devono essere in uno stato dispiaciuto) aveva (ha ancora) circa 12 schermi (uno schermo ha 24 linee di 80 caratteri) e strutture di editing locali: il terminale aveva una propria CPU locale ... Non sono sicuro che questo fosse ciò che avevi in ​​mente. Tutto questo è a memoria, quindi spero che sia vicino alla verità, ma la ricerca del manuale mi richiederebbe del tempo.

Quindi, fondamentalmente, avevo un computer con interfaccia utente collegato a un altro computer. In realtà, ci sarà sempre dell'hardware per gestire l'eco, quindi la tua domanda è più se è appropriato avere hardware sofisticato per farlo con una CPU o con hardware più semplice (non in grado di fare un lavoro sofisticato). I costruttori del mio terminale pensarono che fosse appropriato e lo trasformarono in un terminale sofisticato, con il protocollo di comunicazione stupido con il computer che era allora standard.

Ho pensato inizialmente di dire che un buon motivo per passare attraverso la CPU sarebbe che le applicazioni ora usano Windows con tutti i tipi di funzionalità e caratteri diversi e che ciò richiede la potenza del computer per ottenere la flessibilità adeguata, che un semplice schermo- la tastiera non può offrire.

Ma ho ricordato nel tempo (la memoria è difficile da ricordare) che questo è falso. All'inizio del 1980, le persone stavano sviluppando la grafica bitmap (questo era il nome per il tipo di schermo che stai usando ora, sebbene fosse CRT rathed di LCD). Alcuni lavori seguirono la tradizionale vista terminale, realizzando terminali grafici molto sofisticati con più windoe e font, ecc. Uno di questi era il BLIT , che fu oggetto di numerosi esperimenti, come i famigerati granchi di Cardelli .

Ciò non significa necessariamente che la CPU che esegue l'applicazione non abbia visto i caratteri. Ma non è stato necessario. Il terminale era abbastanza potente da svolgere da solo un lavoro molto complesso.

L'architettura del computer ha testato molte soluzioni, soprattutto quando sono diventate disponibili reti più veloci. Ti preoccupi del terminale, ma in alcuni punti era il disco a costituire un problema (principalmente il prezzo, credo, e anche la gestione). Quindi per un certo periodo abbiamo avuto una postazione di lavoro senza disco (cioè personal computer). Includerebbero CPU, schermo, tastiera e RAM, ma nessun disco. Lo spazio su disco era nella rete e hai appena richiesto spazio per i file dalla rete. Anche lo scambio di memoria virtuale è stato effettuato attraverso la rete.

Quindi la cospirazione è: un'interfaccia sofisticata (ad esempio), che utilizza finestre, vari tipi di carattere, tasti programmabili, modifica della riga di comando, sincronizzazione tra input e output e, in caso contrario, richiede una vera potenza di elaborazione. Anche con capacità molto deboli, è necessario dell'hardware. Quindi questa potenza di calcolo può essere collegata al computer e alla sua CPU, oppure può essere indipendente da essa e connessa più o meno in remoto. Lo stesso può valere per altre risorse.

Ma tutto è molto relativo.

Ultima osservazione Il primo terminale a schermo alfanumerico che io abbia mai usato fu un Tektronix nel 1974, fornito con la sua tastiera. Lo schermo e la tastiera erano così strettamente collegati, che abbiamo dovuto pagare qualcuno per modificarlo cambiando i circuiti con un saldatore in modo che si comportasse come necessario. Ma dovrei interrompere il mio flusso infinito di storie.


Ciò che era vecchio è nuovo di nuovo. Le stazioni di lavoro senza disco sono tornate!
Dfeuer,

-1

Come potrebbe non essere coinvolta la CPU ? Come farebbe il computer a sapere se stampare qualcosa sullo schermo senza che la CPU sia coinvolta? Come potrebbe sapere dove stampare il personaggio? Come farebbe a sapere quale font usare? Come potrebbe sapere come rendere quel carattere?


Anche questo è il mio pensiero. Sfortunatamente, sono stato "dotato" di un prof che è un grande fan di oscure domande su Gotcha, quindi ho pensato che suonarlo al sicuro non fosse una cattiva idea.
MMMMMCK,

4
Hmmpf, ragazzi in questi giorni. I teletipi una volta erano una cosa. Avevano un carattere in ROM (in RAM forse per alcuni modelli avanzati). Hanno archiviato e stampato una riga, quindi l'hanno inviata al computer. Poi sono arrivati ​​i terminali con uno schermo; questi mantenuto una memoria della posizione del carattere corrente e potrebbero comprendere comandi da parte dell'utente o CPU per spostare il cursore, impostare attributi di testo, ecc
Gilles 'SO- fermata essere male'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.