? I computing , termen I /O är en förkortning för " Input /Output ", som hänvisar till överföringen av data antingen till eller från ett datorprogram . Ett tangentbord fungerar som en inmatningsenhet , överföra vad du skriver in i datorn , medan en bildskärm eller skrivare skulle vara ett exempel på en utenhet , eftersom de utgör de överförda data till användaren . Blockering I /O har en central roll i hela processen , hjälpa hantera flödet av in-och utdata . Funktioner
Blockering I /O , som ibland kallas synkron I /O , blockerar dataöverföringsprocessen tills nås föraren kan uppfylla önskad begäran . Till exempel , om du matar in ett samtal för att läsa en enhet när det inte finns någon data som finns , blockerande I /O sätter processen att sova tills det finns data att läsa . När enheten kan uppfylla begäran , väcker processen och avslutar kommandot . Blockering I /O spelar samma roll om du försöker skriva till en enhet innan den har tillräckligt med ledigt buffert utrymme , stoppa processen tills det nödvändiga utrymmet blir tillgängligt .
Funktioner
programmerare skriver blockerande I /O- kommandon i programmeringskod för att säkerställa effektiva dataöverföringar och problemfri drift . Utan blockerande I /O , skulle användare stöter ihållande felmeddelanden och trög prestanda . Blockering I /O kommer ofta spelar in när du hanterar servrar , där det omedelbart kan utlösa andra trådar att köra när man gängblock .
Fördelar
Blockering jag /O är lättare att skriva än andra mer avancerade former av i /O- bearbetning , vilket sparar mycket tid och arbete för programmerare . Bortsett från dess enkelhet , blockerande I /O erbjuder också större effektivitet vid hanteringen serversocketar och ger ökad kompatibilitet , eftersom den kan användas i ett antal olika plattformar inklusive Unix , Win95 och WinNT 4,0 varianter .
blockering i /O kontra icke - blockerande i /O
huvudalternativet till blockerande I /O är icke - blockerande i /O , även känd som asynkron i /O. Till skillnad blockerande I /O , vilket stoppar en process tills den fullständiga ansökan kan uppfyllas , icke - blockerande I /O kan uppfylla begäran i segment . Till exempel, om de begärda uppgifterna inte är tillgängliga i sin helhet när kallas , hämtar en icke - blockerande I /O alla tillgängliga data och sedan returnerar den , varnar användaren hela ansökan inte var uppfyllt . Den icke-blockerande I /O fortsätter sedan att slinga tillbaka och samla mer information tills slutföra den önskade begäran. Även svårare att koda än blockerande I /O , icke - blockerande I /O ger mer effekt och tillåter andra processer för att fortsätta när du fyller den ursprungliga dataöverföring .