Operacinėje sistemoje turėjome duoti įvestį CPU, o CPU vykdo instrukcijas ir galiausiai pateikia išvestį. Tačiau taikant šį metodą kilo problema. Įprastoje situacijoje tenka susidurti su daugybe procesų ir žinome, kad įvesties/išvesties operacijos laikas yra labai didelis, lyginant su procesoriaus instrukcijų vykdymo laiku. Taigi, pagal senąjį metodą, vienas procesas duos įvestį naudodamas įvesties įrenginį, o tuo metu procesorius yra tuščiosios eigos būsenoje.
atsitiktinis skaičius nuo 1 iki 10
Tada CPU vykdo komandą, o išvestis vėl perduodama kokiam nors išvesties įrenginiui, ir šiuo metu procesorius taip pat yra tuščiosios eigos būsenoje. Parodžius išvestį, kitas procesas pradeda vykdyti. Taigi dažniausiai CPU neveikia, o tai yra pati blogiausia sąlyga, kokią galime turėti operacinėse sistemose. Čia atsiranda „Spooling“ koncepcija.
Kas yra vyniojimas
Spooling yra procesas, kurio metu duomenys laikinai saugomi, kad juos naudotų ir vykdytų įrenginys, programa arba sistema. Duomenys siunčiami į atmintį ar kitą nepastovią saugyklą ir saugomi joje tol, kol programa ar kompiuteris paprašo juos vykdyti.
SPOOL yra akronimas vienu metu atliekamos periferinės operacijos internete . Paprastai ritė palaikoma kompiuterio fizinėje atmintyje, buferiuose arba įvesties / išvesties įrenginiui būdinguose pertraukimuose. Ritė apdorojama didėjančia tvarka, veikiant pagal FIFO (pirmas įėjimas, pirmasis išėjimas) algoritmą.
Spoolavimas reiškia įvairių I/O užduočių duomenų įdėjimą į buferį. Šis buferis yra speciali atminties arba standžiojo disko sritis, prieinama įvesties / išvesties įrenginiams. Operacinė sistema atlieka šias su paskirstyta aplinka susijusias veiklas:
- Tvarko įvesties / išvesties įrenginių duomenų kaupimą, nes įrenginiai turi skirtingus duomenų prieigos greičius.
- Palaiko vyniojimo buferį, kuris yra laukimo stotis, kurioje duomenys gali ilsėtis, kol lėtesnis įrenginys pasivys.
- Išlaiko lygiagretųjį skaičiavimą, nes kompiuteris gali atlikti I/O lygiagrečia tvarka. Atliekant skaičiavimo užduotį, kompiuteris gali nuskaityti duomenis iš juostos, įrašyti duomenis į diską ir išrašyti į juostinį spausdintuvą.
Kaip sukimas veikia operacinėje sistemoje
Operacinėje sistemoje kaupimas vyksta šiais veiksmais, pavyzdžiui:
- Spoolavimas apima buferio, vadinamo SPOOL, sukūrimą, kuris naudojamas užduotims ir duomenims sulaikyti, kol įrenginys, kuriame sukurta SPOOL, bus paruoštas naudoti ir vykdyti tą užduotį arba dirbti su duomenimis.
- Kai greitesnis įrenginys siunčia duomenis į lėtesnį įrenginį, kad galėtų atlikti kokią nors operaciją, jis naudoja bet kokią antrinę atmintį, prijungtą kaip SPOOL buferį. Šie duomenys saugomi SPOOL, kol lėtesnis įrenginys bus pasirengęs naudoti šiuos duomenis. Kai lėtesnis įrenginys yra paruoštas, SPOOL duomenys įkeliami į pagrindinę atmintį, kad būtų galima atlikti reikiamas operacijas.
- Spooling visą antrinę atmintį laiko didžiuliu buferiu, kuriame galima saugoti daug užduočių ir duomenų daugeliui operacijų. Spooling pranašumas yra tas, kad jis gali sukurti užduočių, kurios vykdomos FIFO tvarka, eilę, kad darbai būtų vykdomi po vieną.
- Įrenginys gali prisijungti prie daugelio įvesties įrenginių, todėl gali reikėti atlikti tam tikrų veiksmų su jų duomenimis. Taigi visi šie įvesties įrenginiai gali įdėti savo duomenis į antrinę atmintį (SPOOL), kurią įrenginys gali vykdyti po vieną. Tai užtikrins, kad CPU bet kuriuo metu neveiktų. Taigi, galime sakyti, kad Spooling yra buferio ir eilių derinys.
- CPU sugeneravus tam tikrą išvestį, ši išvestis pirmiausia išsaugoma pagrindinėje atmintyje. Ši išvestis iš pagrindinės atminties perkeliama į antrinę atmintį, o iš ten – į atitinkamus išvesties įrenginius.
Sukimo pavyzdys
Didžiausias vyniojimo pavyzdys yra spausdinimas . Dokumentai, kuriuos reikia spausdinti, yra saugomi SPOOL ir pridedami prie spausdinimo eilės. Per šį laiką daugelis procesų gali atlikti savo operacijas ir naudoti procesorių nelaukdami, kol spausdintuvas po vieną spausdins dokumentus.
Daugybė funkcijų taip pat gali būti įtrauktos į spausdinimo ritinį procesą, pvz., prioritetų nustatymas arba pranešimas, kai spausdinimo procesas baigtas, arba skirtingų tipų spausdinimo popieriaus pasirinkimas pagal vartotojo pasirinkimą.
Ritimo privalumai
Štai šie spoolavimo operacinėje sistemoje pranašumai, pavyzdžiui:
java bandyti gaudyti
- Įvesties/išvesties įrenginių ar operacijų skaičius neturi reikšmės. Daugelis įvesties / išvesties įrenginių gali veikti kartu vienu metu, netrukdydami vienas kitam.
- Sujungimo metu nėra sąveikos tarp įvesties / išvesties įrenginių ir procesoriaus. Tai reiškia, kad CPU nereikia laukti, kol įvyks įvesties / išvesties operacijos. Tokių operacijų vykdymas trunka ilgai, todėl CPU nelauks, kol jos bus baigtos.
- CPU tuščiosios eigos būsenoje nėra laikomas labai efektyviu. Dauguma protokolų yra sukurti siekiant efektyviai išnaudoti procesorių per minimalų laiką. Vykdant ritinį, centrinis procesorius didžiąją laiko dalį yra užimtas ir pereina į tuščiosios eigos būseną tik tada, kai baigiasi eilė. Taigi, visos užduotys įtraukiamos į eilę, o CPU baigs visas tas užduotis ir pereis į laukimo būseną.
- Tai leidžia programoms veikti procesoriaus greičiu, o įvesties / išvesties įrenginiai veikia visu jų greičiu.
Ritimo trūkumai
Operacinėje sistemoje skalbimas turi šiuos trūkumus, pavyzdžiui:
- Spoolavimui reikia daug saugyklos vietos, atsižvelgiant į įvesties pateiktų užklausų skaičių ir prijungtų įvesties įrenginių skaičių.
- Kadangi SPOOL yra sukurta antrinėje saugykloje, vienu metu dirbant daug įvesties įrenginių gali užimti daug vietos antrinėje saugykloje ir taip padidėti disko srautas. Dėl to diskas vis lėtėja, nes srautas didėja vis labiau.
- Spoolavimas naudojamas duomenims kopijuoti ir vykdyti iš lėtesnio įrenginio į greitesnį įrenginį. Lėtesnis įrenginys sukuria SPOOL duomenims, kuriuos reikia valdyti, saugoti eilėje, o centrinis procesorius dirba su juo. Dėl šio proceso savaime Spooling yra beprasmiška naudoti realiojo laiko aplinkoje, kur mums reikia procesoriaus rezultatų realiuoju laiku. Taip yra todėl, kad įvesties įrenginys yra lėtesnis, todėl duomenis gamina lėčiau, o procesorius gali veikti greičiau, todėl pereina prie kito proceso eilėje. Štai kodėl galutinis rezultatas arba produkcija sukuriama vėliau, o ne realiuoju laiku.
Skirtumas tarp ritės ir buferio
Spoolavimas ir buferis yra du būdai, kuriais įvesties / išvesties posistemiai pagerina kompiuterio našumą ir efektyvumą, naudodamos saugyklos vietą pagrindinėje atmintyje arba diske.
Pagrindinis skirtumas tarp kaupimo ir buferio yra tas, kad kaupimas sutampa vienos užduoties I/O su kitos užduoties vykdymu. Palyginimui, buferis sutampa su vienos užduoties I/O ir tos pačios užduoties vykdymu. Žemiau yra keletas skirtumų tarp kaupimo ir buferio, pavyzdžiui:
Sąlygos | Ritimas | Buferis |
---|---|---|
Apibrėžimas | Spooling, vienalaikio periferinio veikimo tinkle (SPOOL) akronimas, perkelia duomenis į laikiną darbo sritį, kurią turi pasiekti ir apdoroti kita programa arba išteklius. | Buferis yra laikinas duomenų saugojimas buferyje. Tai padeda suderinti siuntėjo ir gavėjo duomenų srauto greitį. |
Išteklių poreikis | Sujungimui reikia mažiau išteklių valdymo, nes skirtingi ištekliai valdo konkrečių darbų procesą. | Buferiui atlikti reikia daugiau išteklių valdymo, nes tie patys ištekliai valdo to paties padalinto darbo procesą. |
Vidinis įgyvendinimas | Spooling sutampa vienos užduoties įvestis ir išvestis su kitos užduoties skaičiavimu. | Buferis sutampa vienos užduoties įvestis ir išvestis su tos pačios užduoties skaičiavimu. |
Efektyvus | Spoolavimas yra efektyvesnis nei buferis. | Buferis yra mažiau efektyvus nei vyniojimas. |
Procesorius | Spooling taip pat gali apdoroti duomenis nutolusiose svetainėse. Spooler turi tik pranešti, kai procesas baigiamas nuotolinėje svetainėje, kad kitą procesą būtų galima perkelti į nuotolinį šoninį įrenginį. | Buferis nepalaiko nuotolinio apdorojimo. |
Dydis atmintyje | Jis diską laiko didžiuliu ritiniu arba buferiu. | Buferis yra ribota pagrindinės atminties sritis. |