В операційній системі ми повинні були передати вхідні дані ЦП, а ЦП виконує інструкції та, нарешті, видає вихід. Але з таким підходом була проблема. У звичайній ситуації нам доводиться мати справу з багатьма процесами, і ми знаємо, що час, витрачений на операцію вводу-виводу, дуже великий порівняно з часом, витраченим ЦП на виконання інструкцій. Так, у старому підході один процес подає вхідні дані за допомогою пристрою введення, а в цей час ЦП знаходиться в стані очікування.
коментар xml
Потім ЦП виконує інструкцію, і вихід знову передається на деякий пристрій виведення, і в цей час ЦП також знаходиться в стані очікування. Після показу результату, наступний процес починає своє виконання. Отже, більшу частину часу ЦП простоює, що є найгіршим станом, який може бути в операційних системах. Тут у гру вступає концепція спулінгу.
Що таке спулінг
Спулінг – це процес, у якому дані тимчасово зберігаються для використання та виконання пристроєм, програмою чи системою. Дані надсилаються та зберігаються в пам’яті чи іншому енергонезалежному сховищі, доки програма або комп’ютер не запросить їх для виконання.
SPOOL - це абревіатура від одночасні периферійні операції онлайн . Як правило, спул зберігається у фізичній пам’яті комп’ютера, буферах або специфічних перериваннях пристрою вводу/виводу. Катушка обробляється в порядку зростання, працюючи на основі алгоритму FIFO (першим увійшов, першим вийшов).
Спулінг означає розміщення даних різних завдань введення-виведення в буфер. Цей буфер є спеціальною областю в пам'яті або на жорсткому диску, доступною для пристроїв вводу/виводу. Операційна система виконує такі дії, пов’язані з розподіленим середовищем:
- Обробляє буферизацію даних пристроїв вводу-виводу, оскільки пристрої мають різні швидкості доступу до даних.
- Підтримує буфер буфера, який забезпечує станцію очікування, де дані можуть відпочити, поки повільніший пристрій наздожене.
- Підтримує паралельні обчислення через процес буферизації, оскільки комп’ютер може виконувати введення-виведення в паралельному порядку. Стає можливим, щоб комп’ютер зчитував дані зі стрічки, записував дані на диск і записував на стрічковий принтер, поки він виконує своє обчислювальне завдання.
Як працює спулінг в операційній системі
В операційній системі буферизація виконується в такі кроки, як-от:
- Спулінг передбачає створення буфера під назвою SPOOL, який використовується для утримання завдань і даних, доки пристрій, на якому створено SPOOL, не буде готовий використовувати та виконувати це завдання або працювати з даними.
- Коли швидший пристрій надсилає дані на повільніший пристрій для виконання певної операції, він використовує будь-яку вторинну пам’ять, приєднану як буфер SPOOL. Ці дані зберігаються в SPOOL, доки повільніший пристрій не буде готовий працювати з цими даними. Коли повільніший пристрій готовий, дані в SPOOL завантажуються в основну пам'ять для виконання необхідних операцій.
- Спулінг розглядає всю вторинну пам'ять як величезний буфер, який може зберігати багато завдань і даних для багатьох операцій. Перевага буферизації полягає в тому, що вона може створити чергу завдань, які виконуються в порядку FIFO для виконання завдань одне за іншим.
- Пристрій може підключатися до багатьох пристроїв введення, що може вимагати певної операції з їхніми даними. Таким чином, усі ці пристрої введення можуть поміщати свої дані у вторинну пам’ять (SPOOL), яка потім може бути виконана одним за іншим пристроєм. Це гарантує, що ЦП ніколи не буде простоювати. Отже, ми можемо сказати, що спулінг - це комбінація буферизації та черги.
- Після того, як центральний процесор генерує певний вихід, цей вихід спочатку зберігається в основній пам'яті. Цей вихід передається до вторинної пам’яті з основної пам’яті, а звідти вихід надсилається на відповідні пристрої виведення.
Приклад спулінгу
Найбільшим прикладом спулінгу є друк . Документи, які потрібно надрукувати, зберігаються в SPOOL, а потім додаються до черги друку. Протягом цього часу багато процесів можуть виконувати свої операції та використовувати ЦП, не чекаючи, поки принтер виконає процес друку документів один за одним.
Багато функцій також можна додати до процесу спулінгового друку, як-от встановлення пріоритетів або сповіщення про завершення процесу друку або вибір різних типів паперу для друку відповідно до вибору користувача.
Переваги спулинга
Ось такі переваги буферизації в операційній системі, як-от:
arp команда
- Кількість пристроїв введення/виведення чи операцій не має значення. Багато пристроїв вводу/виводу можуть працювати разом одночасно без будь-яких перешкод або перешкод один одному.
- Під час буферизації немає взаємодії між пристроями вводу/виводу та ЦП. Це означає, що ЦП не потрібно чекати виконання операцій введення/виведення. Виконання таких операцій займає багато часу, тому ЦП не буде чекати їх завершення.
- ЦП у стані очікування вважається не дуже ефективним. Більшість протоколів створено для ефективного використання ЦП за мінімальний проміжок часу. Під час буферизації ЦП залишається зайнятим більшу частину часу та переходить у стан очікування лише тоді, коли черга вичерпується. Отже, усі завдання додаються до черги, і центральний процесор завершить усі ці завдання, а потім перейде в стан очікування.
- Це дозволяє додаткам працювати зі швидкістю центрального процесора, одночасно керуючи пристроями вводу/виводу на відповідних повних швидкостях.
Недоліки спулинга
В операційній системі буферизація має такі недоліки, як-от:
- Для спулінгу потрібен великий обсяг пам’яті залежно від кількості запитів, зроблених входом, і кількості підключених пристроїв введення.
- Оскільки SPOOL створюється у вторинному сховищі, наявність багатьох пристроїв введення, що працюють одночасно, може зайняти багато місця у вторинному сховищі та таким чином збільшити трафік диска. Це призводить до того, що диск стає все повільнішим і повільнішим, оскільки трафік зростає все більше і більше.
- Спулінг використовується для копіювання та виконання даних із повільнішого пристрою на швидший. Повільніший пристрій створює SPOOL для зберігання даних, з якими потрібно працювати в черзі, і ЦП працює з цим. Цей процес сам по собі робить спулінг марним для використання в середовищах реального часу, де нам потрібні результати реального часу від ЦП. Це пояснюється тим, що пристрій введення працює повільніше, а отже, видає свої дані повільніше, тоді як ЦП може працювати швидше, тому він переходить до наступного процесу в черзі. Ось чому кінцевий результат або результат виробляється пізніше, а не в режимі реального часу.
Різниця між спулінгом і буферизацією
Спулінг і буферизація — це два способи, за допомогою яких підсистеми вводу/виводу покращують продуктивність і ефективність комп’ютера, використовуючи простір для зберігання в основній пам’яті або на диску.
Основна відмінність між спулінгом і буферизацією полягає в тому, що спулінг накладає введення/виведення одного завдання на виконання іншого завдання. Для порівняння, буферизація перекриває введення-виведення одного завдання з виконанням того самого завдання. Нижче наведено ще деякі відмінності між буферизацією та буферизацією, наприклад:
Умови | Намотування | Буферизація |
---|---|---|
Визначення | Спулінг, абревіатура від Simultaneous Peripheral Operation Online (SPOOL), поміщає дані в тимчасову робочу область для доступу та обробки іншою програмою або ресурсом. | Буферизація — це акт тимчасового зберігання даних у буфері. Це допомагає узгодити швидкість потоку даних між відправником і одержувачем. |
Потреба в ресурсах | Спулінг вимагає менше керування ресурсами, оскільки різні ресурси керують процесом для конкретних завдань. | Буферизація вимагає більшого керування ресурсами, оскільки той самий ресурс керує процесом того самого розділеного завдання. |
Внутрішнє впровадження | Спулінг перекриває вхід і вихід одного завдання з обчисленням іншого завдання. | Буферизація перекриває вхідні та вихідні дані одного завдання з обчисленням того самого завдання. |
Ефективний | Спулінг ефективніший, ніж буферизація. | Буферизація менш ефективна, ніж буферизація. |
Процесор | Спулінг також може обробляти дані на віддалених сайтах. Спулер має сповістити лише про завершення процесу на віддаленому сайті, щоб передати наступний процес на віддалений пристрій. | Буферизація не підтримує віддалену обробку. |
Розмір на пам'ять | Він розглядає диск як величезну котушку або буфер. | Буфер - це обмежена область в основній пам'яті. |