? I computing, udtrykket I /O er en forkortelse for "Input /Output ", som refererer til overførsel af data enten til eller fra en computer program. Et tastatur fungerer som en input-enhed , overføre , hvad du skriver i computeren , mens en skærm eller printer ville være et eksempel på en outputenhed , da de præsenterer de overførte data til brugeren. Blokering I /O spiller en central rolle i hele processen , hjælper styre strømmen af input og output data. Features
Blokering I /O, undertiden benævnt synkron I /O , blokerer dataoverførslen processen, indtil adgang føreren kan opfylde den ønskede anmodning . For eksempel , I /O , hvis du indtaster en opfordring til at læse et drev , når der ikke er nogen data til stede , blokering sætter processen til at sove , indtil der er data til rådighed til at læse . Når drevet kan imødekomme anmodningen, at processen vågner og fuldender kommando. Blokering I /O spiller den samme rolle, hvis du forsøger at skrive til et drev, før det har nok tilgængelige buffer plads , standse processen, indtil den nødvendige plads bliver tilgængelig.
Funktioner
Computer programmører skriver blokerer i /O -kommandoer i programmeringen kode for at sikre en effektiv overførsel af data og problemfri drift . Uden at blokere I /O, vil brugerne støde vedvarende fejlmeddelelser og træg ydeevne . Blokering I /O ofte kommer i spil, når administration af servere , hvor det umiddelbart kan udløse andre tråde til at køre , når en tråd blokke.
Fordele
Blokering I /O er lettere at skrive end andre, mere avancerede former for i /O behandling, sparer megen tid og kræfter for programmører. Bortset fra sin enkelhed , blokering I /O tilbyder også større effektivitet , når forvaltningen server sockets og giver øget kompatibilitet, da det kan bruges på tværs af en række forskellige platforme, herunder Unix, Win95 og WinNT 4,0 varianter .
< Br > blokering i /O versus non -blokerende i /O
vigtigste alternativ til at blokere i /O er ikke-blokerende i /O , også kendt som asynkron i /O. I modsætning til at blokere I /O , som stopper en proces, indtil den fulde anmodning kan opfyldes , ikke-blokerende I /O kan opfylde anmodningen i segmenter. For eksempel, hvis den ønskede data ikke er tilgængelig i sin helhed , når der kaldes en ikke-blokerende I /O henter alle tilgængelige data , og derefter returnerer det , der advarer brugeren hele anmodning blev ikke opfyldt. Den ikke -blokerende I /O fortsætter derefter med at sløjfe tilbage og indsamle flere oplysninger, indtil færdiggøre den ønskede anmodning . Mens sværere at kode end at blokere I /O, ikke-blokerende I /O giver mere magt og tillader andre processer til at fortsætte , mens du udfylder de oprindelige data transmission.