Operētājsistēmā mums bija jādod ievade centrālajam procesoram, un CPU izpilda instrukcijas un visbeidzot dod izvadi. Taču ar šo pieeju radās problēma. Parastā situācijā mums ir jātiek galā ar daudziem procesiem, un mēs zinām, ka I/O darbības laiks ir ļoti liels, salīdzinot ar laiku, ko centrālais procesors aizņem instrukciju izpildei. Tātad, vecajā pieejā, viens process dos ievadi ar ievades ierīces palīdzību, un šajā laikā centrālais procesors atrodas dīkstāves stāvoklī.
papildinātājs pilns
Tad centrālais procesors izpilda instrukciju, un izvade atkal tiek nodota kādai izvades ierīcei, un šajā laikā arī centrālais procesors ir dīkstāves stāvoklī. Pēc izvades parādīšanas nākamais process sāk tā izpildi. Tātad lielāko daļu laika centrālais procesors ir dīkstāvē, kas ir sliktākais stāvoklis, kāds mums var būt operētājsistēmās. Šeit tiek izmantots spolēšanas jēdziens.
Kas ir spolēšana
Spolēšana ir process, kurā dati tiek īslaicīgi aizturēti, lai tos izmantotu un izpildītu ierīce, programma vai sistēma. Dati tiek nosūtīti un saglabāti atmiņā vai citā nepastāvīgā krātuvē, līdz programma vai dators to pieprasa izpildei.
SPOOL ir akronīms vārdam vienlaicīgas perifērijas operācijas tiešsaistē . Parasti spole tiek uzturēta datora fiziskajā atmiņā, buferos vai I/O ierīcei raksturīgos pārtraukumos. Spole tiek apstrādāta augošā secībā, strādājot, pamatojoties uz FIFO (pirmais iekšā, pirmais ārā) algoritmu.
Spolēšana attiecas uz dažādu I/O darbu datu ievietošanu buferī. Šis buferis ir īpaša vieta atmiņā vai cietajā diskā, kas ir pieejama I/O ierīcēm. Operētājsistēma veic šādas darbības, kas saistītas ar izplatīto vidi:
- Apstrādā I/O ierīču datu spolēšanu, jo ierīcēm ir dažādi datu piekļuves ātrumi.
- Uztur spolēšanas buferi, kas nodrošina gaidīšanas staciju, kurā dati var atpūsties, kamēr lēnākā ierīce panāk.
- Uztur paralēlu aprēķinu spolēšanas procesa dēļ, jo dators var veikt I/O paralēlā secībā. Datoram kļūst iespējams nolasīt datus no lentes, ierakstīt datus diskā un izrakstīt lentes printerī, kamēr tas veic skaitļošanas uzdevumu.
Kā spolēšana darbojas operētājsistēmā
Operētājsistēmā spolēšana darbojas, veicot šādas darbības, piemēram:
- Spolēšana ietver bufera, ko sauc par SPOOL, izveidi, ko izmanto, lai aizturētu darbus un datus, līdz ierīce, kurā tiek izveidota SPOOL, ir gatava izmantot un izpildīt šo darbu vai darboties ar datiem.
- Kad ātrāka ierīce sūta datus uz lēnāku ierīci, lai veiktu kādu darbību, tā izmanto jebkuru sekundāro atmiņu, kas pievienota kā SPOOL buferi. Šie dati tiek glabāti SPOOL, līdz lēnākā ierīce ir gatava darbam ar šiem datiem. Kad lēnākā ierīce ir gatava, SPOOL dati tiek ielādēti galvenajā atmiņā nepieciešamo darbību veikšanai.
- Spolēšana visu sekundāro atmiņu uzskata par milzīgu buferi, kurā var saglabāt daudzus darbus un datus daudzām darbībām. Spolēšanas priekšrocība ir tāda, ka tā var izveidot rindu ar darbiem, kas tiek izpildīti FIFO secībā, lai izpildītu darbus pa vienam.
- Ierīce var izveidot savienojumu ar daudzām ievades ierīcēm, kas var prasīt dažas darbības ar to datiem. Tātad visas šīs ievades ierīces var ievietot savus datus sekundārajā atmiņā (SPOOL), ko pēc tam ierīce var izpildīt pa vienam. Tas nodrošinās, ka CPU nevienā brīdī nav dīkstāvē. Tātad, mēs varam teikt, ka spolēšana ir buferizācijas un rindas kombinācija.
- Pēc tam, kad CPU ģenerē kādu izvadi, šī izvade vispirms tiek saglabāta galvenajā atmiņā. Šī izvade no galvenās atmiņas tiek pārsūtīta uz sekundāro atmiņu, un no turienes izvade tiek nosūtīta uz attiecīgajām izvades ierīcēm.
Spolēšanas piemērs
Lielākais spolēšanas piemērs ir drukāšana . Drukājamie dokumenti tiek saglabāti SPOOL un pēc tam pievienoti drukāšanas rindai. Šajā laikā daudzi procesi var veikt savas darbības un izmantot centrālo procesoru, negaidot, kamēr printeris pa vienam veic dokumentu drukāšanas procesu.
Spolēšanas drukāšanas procesam var pievienot arī daudzas funkcijas, piemēram, prioritāšu iestatīšanu vai paziņojumu, kad drukāšanas process ir pabeigts, vai dažādu veidu papīra atlasi, uz kura drukāt atbilstoši lietotāja izvēlei.
Spolēšanas priekšrocības
Tālāk ir norādītas šādas operētājsistēmas spolēšanas priekšrocības, piemēram:
- I/O ierīču vai darbību skaitam nav nozīmes. Daudzas I/O ierīces var strādāt kopā vienlaikus, netraucējot viena otrai.
- Spolēšanā nav mijiedarbības starp I/O ierīcēm un centrālo procesoru. Tas nozīmē, ka centrālajam procesoram nav jāgaida, līdz tiks veiktas I/O darbības. Lai pabeigtu šādu darbību izpildi, nepieciešams ilgs laiks, tāpēc centrālais procesors negaidīs, līdz tās tiks pabeigtas.
- CPU dīkstāves stāvoklī netiek uzskatīts par ļoti efektīvu. Lielākā daļa protokolu ir izveidoti, lai efektīvi izmantotu centrālo procesoru minimālā laika periodā. Spolēšanas laikā centrālais procesors lielāko daļu laika ir aizņemts un pāriet uz dīkstāves stāvokli tikai tad, kad rinda ir izsmelta. Tātad visi uzdevumi tiek pievienoti rindai, un centrālais procesors pabeigs visus šos uzdevumus un pēc tam pāries dīkstāves stāvoklī.
- Tas ļauj lietojumprogrammām darboties ar CPU ātrumu, vienlaikus darbinot I/O ierīces ar to attiecīgo pilno ātrumu.
Spolēšanas trūkumi
Operētājsistēmā spolēšanai ir šādi trūkumi, piemēram:
- Spolēšanai ir nepieciešams liels atmiņas apjoms atkarībā no ievades veikto pieprasījumu skaita un pievienoto ievades ierīču skaita.
- Tā kā SPOOL ir izveidota sekundārajā atmiņā, daudzu ievades ierīču vienlaicīga darbība var aizņemt daudz vietas sekundārajā atmiņā un tādējādi palielināt diska trafiku. Tā rezultātā disks kļūst lēnāks un lēnāks, jo trafika palielinās arvien vairāk.
- Spolēšana tiek izmantota datu kopēšanai un izpildei no lēnākas ierīces uz ātrāku ierīci. Lēnāka ierīce izveido SPOOL, lai rindā saglabātu operējamos datus, un centrālais procesors strādā ar to. Šis process pats par sevi padara spolēšanu bezjēdzīgu izmantošanu reāllaika vidē, kur mums ir nepieciešami reāllaika rezultāti no CPU. Tas ir tāpēc, ka ievades ierīce ir lēnāka un tādējādi ražo savus datus lēnāk, kamēr centrālais procesors var darboties ātrāk, tāpēc tas pāriet uz nākamo procesu rindā. Tāpēc gala rezultāts vai izvade tiek ražota vēlāk, nevis reāllaikā.
Atšķirība starp spolēšanu un buferizāciju
Spolēšana un buferizācija ir divi veidi, kā I/O apakšsistēmas uzlabo datora veiktspēju un efektivitāti, izmantojot atmiņas vietu galvenajā atmiņā vai diskā.
Galvenā atšķirība starp spolēšanu un buferizāciju ir tāda, ka spolēšana pārklāj viena darba I/O ar cita darba izpildi. Salīdzinājumam, buferizācija pārklāj viena darba I/O ar tā paša darba izpildi. Tālāk ir norādītas vēl dažas atšķirības starp spolēšanu un buferizāciju, piemēram:
"abc" ir skaitļos
Noteikumi | Spolēšana | Buferizācija |
---|---|---|
Definīcija | Spolēšana, vienlaicīgas perifērijas operācijas tiešsaistē (SPOOL) akronīms, ievieto datus pagaidu darba zonā, lai tiem piekļūtu un apstrādātu cita programma vai resurss. | Buferizācija ir datu īslaicīga glabāšana buferī. Tas palīdz saskaņot datu straumes ātrumu starp sūtītāju un saņēmēju. |
Resursu prasība | Spolēšanai ir nepieciešama mazāka resursu pārvaldība, jo dažādi resursi pārvalda konkrētu darbu procesu. | Buferizācijai ir nepieciešama lielāka resursu pārvaldība, jo viens un tas pats resurss pārvalda viena un tā paša sadalītā darba procesu. |
Iekšējā ieviešana | Spolēšana pārklāj viena darba ievadi un izvadi ar cita darba aprēķinu. | Buferizācija pārklāj viena darba ievadi un izvadi ar tā paša darba aprēķinu. |
Efektīvs | Spolēšana ir efektīvāka nekā buferizācija. | Buferizācija ir mazāk efektīva nekā spolēšana. |
Procesors | Spolēšana var apstrādāt datus arī attālās vietās. Spolētājam ir tikai jāpaziņo, kad attālajā vietā tiek pabeigts process, lai spolētu nākamo procesu uz attālās puses ierīci. | Buferizācija neatbalsta attālo apstrādi. |
Izmērs atmiņā | Tā uzskata disku par milzīgu spoli vai buferi. | Buferis ir ierobežots apgabals galvenajā atmiņā. |