Hva blokkerer IO?

I databehandling, begrepet I / O er en forkortelse for "Input / Output", som refererer til overføring av data til eller fra et dataprogram. Et tastatur fungerer som en inndataenhet, overføre det du skriver inn i datamaskinen, mens en skjerm eller skriver ville være et eksempel på en ut-enhet, ettersom de presenterer de overførte dataene til brukeren. Blokkering I / O spiller en sentral rolle i hele prosessen, og hjelper håndtere strømmen av input og output data.

Egenskaper

Blokkering av I / O, noen ganger referert til som synkron I / O, blokkerer dataoverføringsprosessen inntil det nås føreren kan møte det ønskede forespørsel. For eksempel, hvis du skriver inn en samtale for å lese en stasjon når det ikke er data stede, blokkerer I / O setter prosessen for å sove før det er data tilgjengelig for å lese. Når stasjonen kan etterkomme anmodningen, vekker prosessen og fullfører kommandoen. Blokkering I / O spiller samme rolle hvis du forsøker å skrive til en stasjon før den har nok tilgjengelig bufferplass, stanse prosessen til nødvendig plass blir tilgjengelig.

funksjoner

Programmerere skrive blokkerer I / O-kommandoer inn i programmeringskode for å sikre effektiv dataoverføringer og jevn drift. Uten å blokkere I / O, brukerne vil oppleve vedvarende feilmeldinger og treg ytelse. Blokkering I / O kommer ofte inn i bildet når du administrerer servere, hvor det umiddelbart kan utløse andre tråder å kjøre når en tråd blokker.

fordeler

Blokkering I / O er lettere å skrive enn andre mer avanserte former for I / O-behandling, noe som sparer mye tid og arbeid for programmerere. Bortsett fra sin enkelhet, blokkerer I / O gir også større effektivitet når du administrerer server stikkontakter og gir økt kompatibilitet, så det kan brukes på tvers av en rekke forskjellige plattformer, inkludert Unix, Win95 og WinNT 4,0 varianter.

Blokkering I / O versus ikke-blokkerende I / O

Den viktigste alternativ til blokkering I / O er ikke-blokkerende I / O, også kjent som asynkron I / O. I motsetning til blokkering I / O, som stopper en prosess før full forespørsel kan oppfylles, kan ikke-blokkerende I / O oppfylle kravet i segmenter. For eksempel, hvis den forespurte data er ikke tilgjengelig i sin helhet når kalt, en ikke-blokkerende I / O henter alle tilgjengelige data og returnerer den, varsler brukeren hele forespørselen ble ikke oppfylt. Den ikke-blokkerende I / O fortsetter deretter å sløyfe tilbake og samle mer informasjon til å fullføre ønsket forespørsel. Mens vanskeligere å kode enn blokkerer I / O, ikke-blokkerende I / O gir mer kraft og tillater andre prosesser for å fortsette når du skal fylle den opprinnelige dataoverføring.