Планування ресурсу „Центральний процесор”
Поняття ресурсу
Ресурс — будь-який споживаний об'єкт. По запасах ресурси підрозділяються на вичерпні і невичерпні. Споживачі ресурсів - процеси. Ресурс — засіб обчислювальної системи, який може бути виділене процесу на певний інтервал часу.
Процесор — будь-який пристрій у складі ЕОМ, здатне автоматично виконувати допустимі для нього дії (процесори, канали і пристрої, що працюють з каналами). Реалізація системи управління процесами у складі ОС пред'являє визначені вимоги до властивостей процесорів.
Класифікація ресурсу
По ознаці реальності ресурси діляться на фізичні і віртуальні (останні тільки в окремих властивостях схожі з фізичними ресурсами). По можливості розширення властивостей діляться на еластичні і жорсткі (не допускаючі віртуалізації).
По ступеню активності розділяються на пасивні і активні (можуть виконувати дії по відношенню до інших ресурсів). За часом існування: постійні (доступні у весь час процесу: і до, і після його роботи) і тимчасові. По ступеню важливості: основні і другорядні (допускають альтернативний розвиток процесу при їх відсутності).
По функціональній надмірності при розподілі, дорогою, але що надається швидко, і дешевий, але що надається з очікуванням.
По структурі: прості (не містить складових елементів) і складові. Вони розрізняються числом станів: простій може бути тільки в двох станах — доступний або зайнятий. По характеру використовування розподілюваних ресурсів: потребуючі і відтворні ресурси (допускають багатократне використовування і звільнення).
По характеру використовування: послідовно і паралельно використовувані.
За формою реалізації: жорсткі (у принципі не допускають копіювання) і м'які (допускають тиражування і підрозділяються на програмні і інформаційні ресурси).
Дисципліна розподілу ресурсу визначає порядок використовування багатьма процесами того або іншого ресурсу, який в кожен момент часу може обслуговувати тільки один процес.
1.2.Основні види ресурсів обчислювальної системи.
Розглянемо коротко основні види ресурсів обчислювальної системи і способи їхнього поділу . Одним з найважливіших ресурсів є процесорний час. Процесорний час поділяється змінно (паралельно).
Другим видом ресурсів обчислювальної системи можна вважати пам'ять. ОП може бути розділена й одночасним способом і змінно. Пам'ять - дуже цікавий вид ресурсу. Справа в тім, що в кожен конкретний момент часу процесор при виконанні обчислень звертається до обмеженого числа осередків ОП. З цього погляду пам'ять бажано розділяти для більшого числа процесів, що паралельно виконуються. З іншого боку, як правило, чим більше ОП може бути виділено тим кращі будуть умови для його виконання. Тому проблема ефективного поділу ОП між паралельно виконуваними обчислювальними процесами є однією із самих актуальних. Коли говорять про зовнішню пам'ять (наприклад, пам'ять на магнітних дисках) то власне пам'ять і доступ до неї вважаються різними видами ресурсу. Але для повної роботи з зовнішньою пам'яттю необхідно мати цих два ресурса. Власне зовнішня пам'ять може розділятися одночасно, а доступ до неї — змінно. Якщо говорити про зовнішні пристрої, то вони, як правило можуть розділятися паралельно, якщо використовуються механізми прямого доступу. Якщо ж пристрій працює з послідовним доступом, то воно не може вважатися розділеним ресурсом. Простими прикладами зовнішніх пристроїв, що не можуть бути поділюваними, є принтер і нагромаджувач на магнітній стрічці.
Дуже важливим видом ресурсів є програмні модулі. Розглянемо системні програмні модулі, оскільки вони розглядаються, як програмні ресурси і можуть бути розподілені між процесами, що виконуються. Як відомо програмні модулі можуть бути однократно і багаторазово використовуваними. Однократно використовуваними називають такі програмні модулі, що можуть бути правильно виконані тільки один раз це означає, що в процесі свого виконання вони можуть пошкодити частину коду, або вихідні дані від яких залежить хід обчислень. Очевидно, що однократно використовувані програмні модулі є неподільним ресурсом.
Повторно використовувані програмні модулі у свою чергу, можуть бути непривілейованими, привілейованими і реєнтабельними.
Привілейовані програмні модулі працюють у так званому привілейованому режимі, тобто при відключеній системі переривань (часто говорять, що переривання закриті) так, що ніякі зовнішні події не можуть порушити природний порядок обчислень. У результаті програмний модуль виконується до кінця після чого він може бути знову викликаний на виконання з іншої задачі.
Непривілейовані програмні модулі звичайні програмні модулі, що можуть бути перервані під час своєї роботи. Отже, у загальному випадку їх не можна вважати поділюваними, тому що якщо після переривання виконання такого модуля, що виконується в рамках одного обчислювального процесу запустити його ще раз за вимогою іншого обчислювального процесу то проміжні результати для перерваних обчислень можуть бути загублені.
На противагу цьому, реєнтабельні програмні модулі допускають повторне багаторазове переривання свого виконання і повторний їхній запуск по звертанню з інших задач (обчислювальних процесів). Для цього реєнтабельні програмні модулі повинні бути створені таким чином, що було забезпечене збереження проміжних обчислень, для обчислень, що перериваються і повернення до них, коли обчислювальний процес відновляється з перерваної раніше точки. Це може бути реалізовано двома способами: за допомогою статичних і динамічних методів виділення пам'яті під значення, що зберігаються. Основний, найбільше часто використовуваний динамічний спосіб - виділення пам'яті для збереження всіх проміжних результатів обчислення, що відносяться до реєнтабельного програмного модуля.
Що стосується статичного способу виділення пам'яті, то тут мова може йти про те, що заздалегідь для фіксованого числа обчислювальних процесів резервуються області пам'яті, у яких будуть розташовуватися змінні реєнтабельних програмних модулів: для кожного процесу є своя область пам'яті. Найчастіше такі процеси виступають процеси в/в і мова йде про реєнтабельні драйвери.
Крім реєнтабельних програмних модулів існують ще повторно вхідні. Цим терміном називають програмні модулі, що теж допускають своє