? I databehandling , begrepet I /O er en forkortelse for «Input /Output ", som refererer til overføring av data enten til eller fra et dataprogram . Et tastatur fungerer som en enhet, overfører det du skriver inn i datamaskinen , mens en skjerm eller skriver ville være et eksempel på en utenhet , siden de presenterer de overførte dataene til brukeren . Blokkering I /O spiller en nøkkelrolle i hele prosessen , og hjelper håndtere strømmen av input og output data . Funksjoner
Blokkering I /O, noen ganger referert til som synkron I /O , blokkerer dataoverføring prosessen inntil tilgang sjåføren kan møte ønsket 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 den samme rollen hvis du prøver å skrive til en stasjon før den har nok tilgjengelig buffer plass , stanse prosessen til den nødvendige plassen blir tilgjengelig.
Funksjoner
Dataprogrammerere skrive blokkerer i /O- kommandoer i programkoden for å sikre effektiv dataoverføring og jevn drift . Uten å blokkere I /O, vil brukerne møte vedvarende feilmeldinger og svak ytelse . Blokkering I /O kommer ofte inn i bildet når du administrerer servere , slik at du raskt utløse andre tråder å kjøre når en tråd blokker.
Fordeler
Blokkering jeg /O er lettere å skrive enn andre mer avanserte former for i /O-behandling , sparer mye tid og krefter for programmerere . Bortsett fra sin enkelhet , blokkerer I /O gir også større effektivitet når du administrerer serveren 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
hovedalternativet til blokkering i /O er ikke-blokkerende i /O, også kjent som asynkron I /O. I motsetning blokkerer I /O , som stopper en prosess før full forespørsel kan oppfylles , ikke-blokkerende I /O kan oppfylle kravet i segmenter. For eksempel, hvis den forespurte data er ikke tilgjengelig i sin helhet når kalt , henter en ikke-blokkerende I /O alle tilgjengelige data og deretter returnerer den , som varsler brukeren hele anmodningen ikke ble oppfylt . Den ikke- blokkerende I /O fortsetter deretter å sløyfe tilbake og samle mer informasjon til å fullføre den ønskede 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.