På et meget højt niveau, udføre computere tre opgaver: input, behandling og output. Indlejret i hardwaren i hver computer er et lille sæt af instruktioner kaldes Basic Input /Output System , eller BIOS. BIOS giver lavt niveau funktionalitet for en computer til at acceptere input og give output. Et program , såsom en enhedsdriver , tilvejebringer mellemliggende forarbejdning trin at konvertere input til et format, der vil blive forstået af målenheden . Mange af disse programmer koordinerer de forskellige opgaver , der udføres ved hjælp af en postkasse, eller MBX . MBX Postkasse
Input /output operationer er ofte opdelt i tråde, eller opgaver , der udfører samtidig. For eksempel kan spille en lydfil har tre tråde til læsning , forarbejdning og skrive lyddata. Samtidige opgaver ofte nødt til at kommunikere med hinanden og nogle gange nødt til at passere data fra den ene opgave til den næste . Ud over at give input /output tjenester giver BIOS en MBX , eller postkasse , der kan bruges af tråde i samme proces til at kommunikere med hinanden og kan overføres data . For eksempel kan en forælder tråd gyde flere børn, som hver især vil opdatere et flag i MBX når deres tildelte opgave er færdig. Den forælder vil overvåge postkassen og skride til handling , enten når alle opgaver er færdige , eller hvis en opgave ikke er færdig inden for en bestemt tidsperiode.
Postkasse Bitflag
Postkasse Bitflag er almindeligt anvendt til at repræsentere status for flere samtidige opgaver . For eksempel bør en opgave, der behandler lyddata ikke aktiveres , medmindre der er data i input- buffer og ledig plads i udgangsbufferen . At koordinere disse aktiviteter er MBX oprindeligt indstillet til tre, eller 11 i binær . Input opgave bruger den første bit til at angive en fuld indgangsbuffer og output opgave anvender den anden bit til at angive et tomt output buffer . Når MBX er nul, forarbejdning tråd aktiveres , processer de data og nulstiller MBX bits .
Kopiering af data til en postkasse
Samtidige tråde ikke begrænset til anvendelse postkasse Bitflag at kommunikere med hinanden . Alle data kan placeres i en postkasse , herunder rådata , pegepinde til hukommelsesbuffere der indeholder data og endda kommandoer. Når data sendes til en postkasse , kopieres til postkassen.
Andre kommunikationsmetoder
Postkasser er en af flere datakommunikation metoder, der kan anvendes til tråde at kommunikere i en enhed input /output operation . Andre metoder omfatter data rør eller PIP , datastrømme , eller SIO , og datakøer eller QUE . Data rør og datastrømme ligner postkasser , fordi dataene er kopieret og er ubegrænset. Datakøer giver en kommunikationsmetode uden at kopiere ved hjælp af en dobbelt -linked liste, der fungerer som en First- In -First- Out kø .