V operačnom systéme sme museli zadať vstup CPU a CPU vykoná inštrukcie a nakoniec vydá výstup. S týmto prístupom však nastal problém. V normálnej situácii sa musíme zaoberať mnohými procesmi a vieme, že čas potrebný na I/O operáciu je veľmi dlhý v porovnaní s časom, ktorý potrebuje CPU na vykonanie inštrukcií. Takže v starom prístupe jeden proces poskytne vstup pomocou vstupného zariadenia a počas tejto doby je CPU v nečinnom stave.
výnimka nullpointer
Potom CPU vykoná inštrukciu a výstup je opäť odovzdaný nejakému výstupnému zariadeniu a v tomto čase je CPU tiež v nečinnom stave. Po zobrazení výstupu sa spustí ďalší proces. Takže väčšinu času je CPU nečinný, čo je najhorší stav, aký môžeme v operačných systémoch mať. Tu vstupuje do hry koncept spoolingu.
Čo je to spooling
Spooling je proces, v ktorom sú údaje dočasne uchovávané na použitie a spustenie zariadením, programom alebo systémom. Údaje sa odosielajú a ukladajú do pamäte alebo iného nestáleho úložiska, kým ich program alebo počítač nepožiada o vykonanie.
SPOOL je skratka pre simultánne periférne operácie online . Vo všeobecnosti je spool udržiavaný vo fyzickej pamäti počítača, medzipamätiach alebo prerušení špecifických pre I/O zariadenie. Cievka sa spracováva vo vzostupnom poradí a pracuje na základe algoritmu FIFO (first-in, first-out).
Spoolovanie sa týka ukladania údajov rôznych I/O úloh do vyrovnávacej pamäte. Táto vyrovnávacia pamäť je špeciálna oblasť v pamäti alebo na pevnom disku, ktorá je prístupná I/O zariadeniam. Operačný systém vykonáva nasledujúce činnosti súvisiace s distribuovaným prostredím:
- Zaoberá sa spoolovaním údajov I/O zariadení, pretože zariadenia majú rôzne rýchlosti prístupu k údajom.
- Udržuje spoolovaciu vyrovnávaciu pamäť, ktorá poskytuje čakajúcu stanicu, kde môžu dáta odpočívať, kým pomalšie zariadenie dobehne.
- Zachováva paralelné výpočty kvôli procesu spoolovania, pretože počítač môže vykonávať I/O v paralelnom poradí. Je možné, aby počítač čítal údaje z pásky, zapisoval údaje na disk a zapisoval na páskovú tlačiareň, zatiaľ čo vykonáva svoju výpočtovú úlohu.
Ako funguje spooling v operačnom systéme
V operačnom systéme funguje spoolovanie v nasledujúcich krokoch, ako napríklad:
- Spooling zahŕňa vytvorenie vyrovnávacej pamäte s názvom SPOOL, ktorá sa používa na pozastavenie úloh a údajov, kým zariadenie, v ktorom je SPOOL vytvorený, nie je pripravené použiť a vykonať túto úlohu alebo pracovať s údajmi.
- Keď rýchlejšie zariadenie odošle údaje do pomalšieho zariadenia, aby vykonalo nejakú operáciu, použije akúkoľvek sekundárnu pamäť pripojenú ako vyrovnávaciu pamäť SPOOL. Tieto údaje sa uchovávajú v SPOOL, kým pomalšie zariadenie nie je pripravené pracovať s týmito údajmi. Keď je pomalšie zariadenie pripravené, potom sa dáta v SPOOL načítajú do hlavnej pamäte pre požadované operácie.
- Spooling považuje celú sekundárnu pamäť za obrovskú vyrovnávaciu pamäť, ktorá môže uložiť veľa úloh a údajov pre mnoho operácií. Výhodou spoolingu je, že dokáže vytvoriť rad úloh, ktoré sa vykonávajú v poradí FIFO, aby sa úlohy vykonávali jedna po druhej.
- Zariadenie sa môže pripojiť k mnohým vstupným zariadeniam, ktoré môžu vyžadovať určitú operáciu s ich údajmi. Takže všetky tieto vstupné zariadenia môžu ukladať svoje dáta do sekundárnej pamäte (SPOOL), ktorú potom môže zariadenie jedno po druhom spúšťať. Tým sa zabezpečí, že CPU nebude v žiadnom momente nečinný. Môžeme teda povedať, že spooling je kombináciou ukladania do vyrovnávacej pamäte a zaraďovania do frontu.
- Keď CPU vygeneruje nejaký výstup, tento výstup sa najskôr uloží do hlavnej pamäte. Tento výstup sa prenáša do sekundárnej pamäte z hlavnej pamäte a odtiaľ je výstup odosielaný do príslušných výstupných zariadení.
Príklad spoolovania
Najväčším príkladom Spoolingu je tlač . Dokumenty, ktoré sa majú vytlačiť, sa uložia do SPOOL a potom sa zaradia do frontu na tlač. Počas tejto doby môže mnoho procesov vykonávať svoje operácie a používať CPU bez čakania, kým tlačiareň vykoná proces tlače dokumentov jeden po druhom.
Do procesu spoolovej tlače je možné pridať aj mnoho funkcií, ako je nastavenie priorít alebo upozornenie po dokončení procesu tlače alebo výber rôznych typov papiera na tlač podľa výberu používateľa.
Výhody spoolovania
Tu sú nasledujúce výhody spoolovania v operačnom systéme, ako napríklad:
string int
- Počet I/O zariadení alebo operácií nezáleží. Mnohé I/O zariadenia môžu spolupracovať súčasne bez akéhokoľvek vzájomného rušenia alebo rušenia.
- Pri spoolingu nedochádza k interakcii medzi I/O zariadeniami a CPU. To znamená, že CPU nemusí čakať na uskutočnenie I/O operácií. Vykonanie takýchto operácií trvá dlho, takže CPU nebude čakať na ich dokončenie.
- CPU v nečinnom stave sa nepovažuje za veľmi efektívny. Väčšina protokolov je vytvorená na efektívne využitie CPU v minimálnom čase. V spoolingu je CPU väčšinu času zaneprázdnený a do stavu nečinnosti prejde až po vyčerpaní frontu. Všetky úlohy sa teda pridajú do frontu a CPU všetky tieto úlohy dokončí a potom prejde do stavu nečinnosti.
- Umožňuje aplikáciám bežať rýchlosťou procesora pri prevádzke I/O zariadení pri ich príslušných plných rýchlostiach.
Nevýhody spoolovania
V operačnom systéme má spooling nasledujúce nevýhody, ako napríklad:
- Spoolovanie vyžaduje veľké množstvo úložného priestoru v závislosti od počtu požiadaviek vykonaných vstupom a počtu pripojených vstupných zariadení.
- Pretože SPOOL je vytvorený v sekundárnom úložnom priestore, mnoho vstupných zariadení pracujúcich súčasne môže zaberať veľa miesta na sekundárnom úložnom priestore a tým zvýšiť diskovú prevádzku. To má za následok, že disk je stále pomalší a pomalší, pretože prevádzka sa stále viac a viac zvyšuje.
- Spooling sa používa na kopírovanie a spúšťanie údajov z pomalšieho zariadenia do rýchlejšieho zariadenia. Pomalšie zariadenie vytvorí SPOOL na uloženie údajov, s ktorými sa má pracovať, vo fronte a CPU na ňom pracuje. Tento proces sám o sebe robí spooling zbytočným na použitie v prostrediach v reálnom čase, kde potrebujeme výsledky z CPU v reálnom čase. Je to preto, že vstupné zariadenie je pomalšie, a preto produkuje svoje údaje pomalším tempom, zatiaľ čo CPU môže pracovať rýchlejšie, takže prechádza na ďalší proces vo fronte. To je dôvod, prečo sa konečný výsledok alebo výstup vytvára neskôr namiesto v reálnom čase.
Rozdiel medzi spoolovaním a ukladaním do vyrovnávacej pamäte
Spoolovanie a ukladanie do vyrovnávacej pamäte sú dva spôsoby, ktorými I/O podsystémy zlepšujú výkon a efektivitu počítača využívaním úložného priestoru v hlavnej pamäti alebo na disku.
Základný rozdiel medzi spoolovaním a ukladaním do vyrovnávacej pamäte je v tom, že spoolovanie prekrýva I/O jednej úlohy s vykonávaním inej úlohy. Na porovnanie, ukladanie do vyrovnávacej pamäte prekrýva I/O jednej úlohy s vykonávaním tej istej úlohy. Nižšie sú uvedené niektoré ďalšie rozdiely medzi spoolovaním a ukladaním do vyrovnávacej pamäte, ako napríklad:
Podmienky | Spoolovanie | Ukladanie do vyrovnávacej pamäte |
---|---|---|
Definícia | Spooling, skratka pre Simultaneous Peripheral Operation Online (SPOOL), umiestňuje údaje do dočasnej pracovnej oblasti, ku ktorej má pristupovať a spracovávať iný program alebo zdroj. | Ukladanie do vyrovnávacej pamäte je akt dočasného ukladania údajov do vyrovnávacej pamäte. Pomáha pri zosúlaďovaní rýchlosti dátového toku medzi odosielateľom a prijímačom. |
Požiadavka na zdroje | Spoolovanie si vyžaduje menej správy zdrojov, pretože rôzne zdroje riadia proces pre špecifické úlohy. | Ukladanie do vyrovnávacej pamäte vyžaduje viac správy zdrojov, keďže rovnaký zdroj riadi proces rovnakej rozdelenej úlohy. |
Interná implementácia | Spooling prekrýva vstup a výstup jednej úlohy s výpočtom inej úlohy. | Ukladanie do vyrovnávacej pamäte prekrýva vstup a výstup jednej úlohy s výpočtom tej istej úlohy. |
Efektívne | Spoolovanie je efektívnejšie ako ukladanie do vyrovnávacej pamäte. | Ukladanie do vyrovnávacej pamäte je menej efektívne ako spoolovanie. |
procesor | Spooling môže spracovávať údaje aj na vzdialených miestach. Spooler musí iba upozorniť, keď sa proces dokončí na vzdialenom mieste, aby mohol zaradiť ďalší proces na vzdialené zariadenie. | Ukladanie do vyrovnávacej pamäte nepodporuje vzdialené spracovanie. |
Veľkosť v pamäti | Disk považuje za obrovskú cievku alebo vyrovnávaciu pamäť. | Buffer je obmedzená oblasť v hlavnej pamäti. |