A un livello molto alto , i computer eseguire tre compiti : input, elaborazione e output . Incorporato nell'hardware di ogni computer è un piccolo insieme di istruzioni chiamato Input /Output System di base , o BIOS. BIOS fornisce funzionalità di basso livello per un computer per accettare l'input e fornire output. Un programma , quale un driver di periferica , prevede la fase di elaborazione intermedia per convertire l'ingresso in un formato che sarà compreso dal dispositivo di destinazione . Molti di questi programmi di coordinare i diversi compiti da eseguire utilizzando una casella di posta , o MBX . MBX Mailbox
operazioni di input /output
sono spesso divisi in discussioni o attività , che vengono eseguiti simultaneamente. Per esempio , la riproduzione di un file audio può avere tre fili per la lettura , la scrittura e l'elaborazione dei dati audio . Attività simultanee spesso hanno bisogno di comunicare tra loro e, a volte hanno bisogno di passare i dati da un compito all'altro . Oltre a fornire servizi di input /output , il BIOS fornisce una mailbox oppure cassetta postale , che può essere utilizzato dal thread nello stesso processo di comunicare tra loro e per passare i dati . Ad esempio , un thread genitore potrebbe generare più figli , ognuno dei quali verrà aggiornato una bandiera in MBX quando il loro compito assegnato è completo. Il genitore controllerà la casella di posta e intervenire sia quando tutte le attività sono state completate o se un compito non ha completato entro un periodo di tempo specifico .
Posta elettronica Bit Bandiere
Mailbox flag di bit sono comunemente usati per rappresentare lo stato di più attività simultanee . Ad esempio, un'attività che elabora i dati audio non dovrebbe attivare se non ci sono dati nel buffer di ingresso e lo spazio libero nel buffer di uscita . Per coordinare queste attività , MBX è inizialmente impostato su tre, o 11 in binario . Il compito ingresso utilizza il primo bit per indicare un buffer di ingresso pieno e il compito di output utilizza il secondo bit per indicare un buffer di uscita vuota . Quando MBX è zero, il thread di elaborazione attiva , elabora i dati e azzera i bit di MBX .
Copia di dati da una cassetta postale
thread simultanei non sono limitata alle mailbox utilizzando flag di bit a comunicare tra loro . Tutti i dati possono essere collocati in una cassetta postale , con i dati grezzi , i puntatori ai buffer di memoria che contengono dati e perfino comandi . Quando i dati vengono inviati a una cassetta postale , viene copiato nella casella di posta .
Altra comunicazione Metodi
cassette postali sono uno dei diversi metodi di comunicazione di dati che possono essere utilizzati per le discussioni comunicare durante un'operazione di ingresso /uscita del dispositivo . Altri metodi includono pipe di dati , o PIP ; flussi di dati , o SIO , e le code di dati, o Que. Pipe di dati e flussi di dati sono simili alle caselle di posta , perché i dati vengono copiati ed è illimitato . Code di dati forniscono un metodo di comunicazione senza copiare utilizzando una lista di doppio -linked che funziona come una coda di First-In -First - Out .