В операционната система трябваше да дадем вход на процесора, а процесорът изпълнява инструкциите и накрая дава изхода. Но имаше проблем с този подход. В нормална ситуация трябва да се справяме с много процеси и знаем, че времето, необходимо за I/O операцията, е много голямо в сравнение с времето, необходимо на процесора за изпълнение на инструкциите. Така че при стария подход един процес ще даде вход с помощта на входно устройство и през това време процесорът е в неактивно състояние.
кога свършва q1
След това процесорът изпълнява инструкцията и изходът отново се дава на някое изходно устройство и по това време процесорът също е в неактивно състояние. След показване на изхода, следващият процес започва своето изпълнение. Така че през повечето време процесорът е неактивен, което е най-лошото състояние, което можем да имаме в операционните системи. Тук концепцията за Spooling влиза в действие.
Какво е Spooling
Спулингът е процес, при който данните се държат временно, за да бъдат използвани и изпълнени от устройство, програма или система. Данните се изпращат и съхраняват в паметта или друго енергонезависимо хранилище, докато програмата или компютърът не ги поискат за изпълнение.
SPOOL е акроним за едновременни периферни операции онлайн . Обикновено макарата се поддържа във физическата памет на компютъра, буферите или специфичните за I/O устройството прекъсвания. Макарата се обработва във възходящ ред, работейки на базата на FIFO (първи влязъл, първи излязъл) алгоритъм.
Спулингът се отнася до поставяне на данни от различни I/O задачи в буфер. Този буфер е специална област в паметта или твърдия диск, която е достъпна за I/O устройства. Операционната система извършва следните дейности, свързани с разпределената среда:
- Управлява спулирането на данни на I/O устройството, тъй като устройствата имат различни скорости на достъп до данни.
- Поддържа спулинг буфера, който осигурява изчакваща станция, където данните могат да почиват, докато по-бавното устройство наваксва.
- Поддържа паралелно изчисление поради процеса на спулиране, тъй като компютърът може да извършва I/O в паралелен ред. Става възможно компютърът да чете данни от лента, да записва данни на диск и да записва на лентов принтер, докато изпълнява своята изчислителна задача.
Как работи спулингът в операционната система
В операционна система спулингът работи в следните стъпки, като например:
- Спулирането включва създаване на буфер, наречен SPOOL, който се използва за задържане на задания и данни, докато устройството, в което е създаден SPOOL, е готово да използва и изпълни това задание или да работи с данните.
- Когато по-бързо устройство изпраща данни към по-бавно устройство, за да извърши някаква операция, то използва всяка вторична памет, прикрепена като SPOOL буфер. Тези данни се съхраняват в SPOOL, докато по-бавното устройство е готово да работи с тези данни. Когато по-бавното устройство е готово, тогава данните в SPOOL се зареждат в основната памет за необходимите операции.
- Спулингът разглежда цялата вторична памет като огромен буфер, който може да съхранява много задачи и данни за много операции. Предимството на Spooling е, че може да създаде опашка от задания, които се изпълняват във FIFO ред, за да изпълняват заданията едно по едно.
- Едно устройство може да се свърже с много входни устройства, което може да изисква някои операции с техните данни. Така че всички тези входни устройства могат да поставят своите данни във вторичната памет (SPOOL), която след това може да бъде изпълнена едно по едно от устройството. Това ще гарантира, че процесорът не е неактивен в нито един момент. И така, можем да кажем, че спулингът е комбинация от буфериране и опашка.
- След като CPU генерира някакъв изход, този изход първо се записва в основната памет. Този изход се прехвърля към вторичната памет от основната памет и оттам изходът се изпраща към съответните изходни устройства.
Пример за спулинг
Най-големият пример за Spooling е печат . Документите, които трябва да бъдат отпечатани, се съхраняват в SPOOL и след това се добавят към опашката за печат. През това време много процеси могат да изпълняват своите операции и да използват процесора, без да чакат, докато принтерът изпълни процеса на печат върху документите един по един.
Много функции също могат да бъдат добавени към процеса на печат на Spooling, като задаване на приоритети или известие, когато процесът на печат е завършен, или избор на различни типове хартия за печат според избора на потребителя.
Предимства на Spooling
Ето следните предимства на спулинга в операционна система, като например:
- Броят на I/O устройствата или операциите няма значение. Много I/O устройства могат да работят заедно едновременно без никаква намеса или прекъсване едно на друго.
- При спулинг няма взаимодействие между I/O устройствата и процесора. Това означава, че няма нужда процесорът да чака изпълнението на I/O операциите. Такива операции отнемат много време, за да завършат изпълнението си, така че процесорът няма да ги чака да завършат.
- Процесорът в неактивно състояние не се счита за много ефективен. Повечето протоколи са създадени, за да използват ефективно процесора за минимално време. При спулиране процесорът е зает през повечето време и преминава в състояние на неактивност само когато опашката е изчерпана. И така, всички задачи се добавят към опашката и процесорът ще завърши всички тези задачи и след това ще премине в състояние на неактивност.
- Той позволява на приложенията да работят със скоростта на процесора, докато I/O устройствата работят на съответните им пълни скорости.
Недостатъци на спулинга
В една операционна система спулингът има следните недостатъци, като например:
- Спулингът изисква голямо количество памет в зависимост от броя на заявките, направени от входа, и броя на свързаните входни устройства.
- Тъй като SPOOL се създава във вторичното хранилище, наличието на много входни устройства, работещи едновременно, може да заема много място във вторичното хранилище и по този начин да увеличи трафика на диска. Това води до това, че дискът става все по-бавен и по-бавен, тъй като трафикът нараства все повече и повече.
- Спулингът се използва за копиране и изпълнение на данни от по-бавно устройство към по-бързо устройство. По-бавното устройство създава SPOOL за съхраняване на данните, с които ще се работи в опашка, и процесорът работи върху него. Този процес сам по себе си прави спулинга безполезен за използване в среди в реално време, където се нуждаем от резултати в реално време от процесора. Това е така, защото входното устройство е по-бавно и по този начин произвежда данните си с по-бавно темпо, докато процесорът може да работи по-бързо, така че преминава към следващия процес в опашката. Ето защо крайният резултат или резултат се произвежда по-късно, вместо в реално време.
Разлика между спулинг и буфериране
Спулингът и буферирането са двата начина, чрез които I/O подсистемите подобряват производителността и ефективността на компютъра чрез използване на място за съхранение в основната памет или на диска.
java шаблон за проектиране
Основната разлика между спулиране и буфериране е, че спулирането припокрива I/O на една задача с изпълнението на друга задача. За сравнение, буферирането припокрива I/O на едно задание с изпълнението на същото задание. По-долу са дадени още някои разлики между спулинг и буфериране, като например:
Условия | Спулинг | Буфериране |
---|---|---|
Определение | Спулингът, акроним на Simultaneous Peripheral Operation Online (SPOOL), поставя данни във временна работна област, за да бъдат достъпни и обработени от друга програма или ресурс. | Буферирането е акт на временно съхраняване на данни в буфера. Помага за съпоставяне на скоростта на потока от данни между подателя и получателя. |
Изискване за ресурси | Спулингът изисква по-малко управление на ресурсите, тъй като различни ресурси управляват процеса за конкретни задачи. | Буферирането изисква повече управление на ресурсите, тъй като един и същ ресурс управлява процеса на една и съща разделена работа. |
Вътрешно изпълнение | Спулингът припокрива входа и изхода на едно задание с изчисленията на друго задание. | Буферирането припокрива входа и изхода на едно задание с изчислението на същото задание. |
Ефективно | Спулингът е по-ефективен от буферирането. | Буферирането е по-малко ефективно от спулирането. |
Процесор | Спулингът може също да обработва данни на отдалечени сайтове. Спулерът трябва само да уведоми, когато даден процес бъде завършен на отдалечения сайт, за да изпрати следващия процес на отдалеченото устройство. | Буферирането не поддържа отдалечена обработка. |
Размер по памет | Той разглежда диска като огромна макара или буфер. | Буферът е ограничена област в основната памет. |