Em um nível muito alto , os computadores executar três tarefas : ? Entrada, processamento e saída. Embutido no hardware de cada computador é um pequeno conjunto de instruções chamado de sistema Basic Input /Output , ou BIOS. BIOS fornece a funcionalidade de baixo nível para um computador para aceitar a entrada e fornecer saída. Um programa , tais como um controlador de dispositivo , fornece o passo intermediário de processamento para converter a entrada para um formato que será compreendido pelo dispositivo de destino . Muitos destes programas coordenar as diferentes tarefas que estão sendo executadas usando uma caixa de correio , ou MBX . MBX Mailbox
operações de entrada /saída são muitas vezes divididos em tópicos , ou tarefas , que são executadas simultaneamente. Por exemplo, a reprodução de um arquivo de áudio pode ter três segmentos de leitura , processamento e gravação dos dados de áudio. Tarefas simultâneas muitas vezes precisam se comunicar uns com os outros e às vezes precisa passar dados de uma tarefa para outra. Além de fornecer serviços de entrada /saída , o BIOS proporciona uma MBX , ou caixa de entrada , que pode ser utilizada por meio de fios no mesmo processo para comunicar um com o outro e para transmitir dados . Por exemplo , um thread pai pode gerar vários filhos , cada um dos quais irá atualizar uma bandeira em MBX quando sua tarefa atribuída é completa. O pai vai monitorar a caixa de correio e agir ou quando todas as tarefas estiverem concluídas ou se uma tarefa não foi concluída dentro de um período de tempo específico.
Mailbox Bit Flags
Mailbox sinalizadores de bit são comumente usados para representar o estado de várias tarefas simultâneas . Por exemplo, uma tarefa que processa dados de áudio não deve ativar a menos que haja dados no buffer de entrada e espaço livre no buffer de saída. Para coordenar essas atividades , MBX é inicialmente definido para três, ou 11 em binário. A tarefa de entrada usa o primeiro bit para indicar um buffer de entrada e a tarefa de saída utiliza o segundo bit para indicar um tampão de saída de vazio . Quando MBX é zero, o segmento de processamento ativa , processa os dados e redefine os bits MBX .
Copiar dados para uma caixa de correio
tópicos simultâneos não são limitados ao uso de sinalizadores de bit caixa de correio para se comunicar uns com os outros . Quaisquer dados podem ser colocados em uma caixa de correio , incluindo dados brutos , os ponteiros para buffers de memória que contêm os dados e comandos mesmo . Quando os dados são enviados para a caixa de correio, ele é copiado para a caixa de correio .
Outros métodos de comunicação
caixas de correio são um dos vários métodos de comunicação de dados que podem ser usados para roscas para se comunicar durante uma operação de entrada /dispositivo de saída. Outros métodos incluem tubos de dados, ou PIP ; fluxos de dados , ou SIO , e filas de dados , ou QUE . Tubulações de dados e fluxos de dados são semelhantes às caixas de correio , porque os dados são copiados e é irrestrito . Filas de dados fornecem um método de comunicação sem copiar usando uma lista ligada dupla , que funciona como uma fila First-In -First -Out .