рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Алгоритми планування

Алгоритми планування - раздел Образование, Тема 1. Основні концепції операційних систем У Ос Windows Реалізовано Витісняюче Пріоритетне Планування, Коли Кожному Пото...

У ОС Windows реалізовано витісняюче пріоритетне планування, коли кожному потоку привласнюється певне числове значення - пріоритет, відповідно до якого йому виділяється процесор. Потоки з однаковими пріоритетами плануються згідно з алгоритмом Round Robin (карусель). Важливою гідністю системи є можливість витіснення потоків, працюючих в режимі ядра, - код виконавської системи повністю реєнтерабельний. Не витісняються лише потоки, що утримують спін-блокування (див. лекцію "Синхронізація потоків"). Тому спин-блокировки використовуються з великою обережністю і встановлюються на мінімальний час.

У системі передбачено 32 рівні пріоритетів. Шістнадцять значень пріоритетів (16-31) відповідають групі пріоритетів реального часу, п'ятнадцять значень (1-15) призначено для звичайних потоків, і значення 0 зарезервовано для системного потоку обнулення сторінок (див. мал. 6.2).

Мал. 6.2. Пріоритети потоків

Щоб позбавити користувача від необхідності запам'ятовувати числові значення пріоритетів і мати можливість модифікувати планувальник, розробники ввели в систему шар абстрагування пріоритетів. Наприклад, клас пріоритету для усіх потоків конкретного процесу можна задати за допомогою набору констант-параметрів функції SetPriorityClass, які можуть мати наступні значення :

реального часу (REALTIME_PRIORITY_CLASS),

високий (HIGH_PRIORITY_CLASS),

вище за норму (ABOVE_NORMAL_PRIORITY_CLASS),

нормальний (NORMAL_PRIORITY_CLASS),

нижче норми (BELOW_NORMAL_PRIORITY_CLASS)

і непрацюючий (IDLE_PRIORITY_CLASS).

Відносний пріоритет потоку встановлюється аналогічними параметрами функції SetThreadPriority :

Сукупність з шести класів пріоритетів процесів і семи класів пріоритетів потоків утворює 42 можливих комбінації і дозволяє сформувати так званий базовий пріоритет потоку (см таб. 6.1).

Базовий пріоритет процесу і первинного потоку за умовчанням дорівнює значенню з середини діапазонів пріоритетів процесів (24, 13, 10, 8, 6 або 4). Зміна пріоритету процесу спричиняє за собою зміну пріоритетів усіх його потоків, при цьому їх відносні пріоритети залишаються без змін.

Пріоритети з 16 по 31 насправді пріоритетами реального часу не є, оскільки у рамках підтримки м'якого реального часу, яка реалізована в ОС Windows, ніяких гарантій відносно термінів виконання потоків не даються. Це просто вищі пріоритети, які зарезервовані для системних потоків і тих потоків, яким такий пріоритет дає користувач з адміністративними правами. Проте, наявність пріоритетів реального часу, а також вытесняемость кода ядра, локалізація сторінок пам'яті (див. лекцію 10) і ряд додаткових можливостей - усе це дозволяє виконувати в середовищі ОС Windows додатки м'якого реального часу, наприклад, мультимедійні. Системний потік з нульовим пріоритетом займається обнуленням сторінок пам'яті. Звичайні призначені для користувача потоки можуть мати пріоритети від 1 до 15.

Динамічне підвищення пріоритету

Планувальник приймає рішення на основі поточного пріоритету потоку, який може бути вищий за базовий. Є декілька ситуацій, коли має сенс підвищити пріоритет потоку.

Наприклад, після завершення операції введення-виводу збільшують пріоритет потоку, щоб дати йому можливість швидше почати виконання і, можливо, знову ініціювати операцію введення-виводу. У такий спосіб система заохочує інтерактивні потоки і підтримує зайнятість облаштувань введення-виводу. Величина, на яку підвищується пріоритет, не документована і залежить від пристрою (рекомендовані значення для диска і CD - це 1, для мережі - 2, клавіатури і миші - 6 і звукової карти - 8). Надалі впродовж декількох квантів часу пріоритет плавно знижується до базового.

Іншими прикладами подібних ситуацій можуть служити: пробудження потоку після стану очікування семафора або іншої події; отримання потоком доступу до віконного введення.

Динамічне підвищення пріоритету вирішує також проблему голодування потоків, що довго не дістають доступ до процесора. Виявивши такі потоки, що простоюють в течію приблизно 4 сек., система тимчасово підвищує їх пріоритет до 15 і дає їм два кванти часу. Побічним наслідком застосування цієї технології може бути вирішення відомої проблеми інверсії пріоритетів [9]. Ця проблема виникає, коли низькопріоритетний потік утримує ресурс, блокуючи високопріоритетні потоки, що претендують на цей ресурс. Рішення полягає в штучному підвищенні його пріоритету на деякий час.

Динамічне підвищення пріоритетів покликане оптимізувати загальну пропускну спроможність системи, проте від нього виграють далеко не усі застосування. Відключення динамічного підвищення пріоритету можна здійснити за допомогою функцій SetProcessPriorityBoost і SetThreadPriorityBoost.

Планування в умовах многопроцессорности

Реєнтерабельність коду ядра дозволяє ОС Windows підтримувати симетричні мультипроцесорні системи (процесори ідентичні). Необхідність завантаження декількох процесорів ускладнює завдання планування. Кількість процесорів система визначає при завантаженні, і ця інформація стає доступною додаткам через функцію GetSystemInfo. Число процесорів, використовуваних системою, може бути обмежене за допомогою параметра NumPcs з файлу Boot.ini.

Ведення окремих черг готових до виконання потоків для кожного з процесорів може мати слідством нерівномірне завантаження процесорів, тому використовується загальна черга потоків в стані готовності. Будь-який потік стає в чергу і планується на будь-який доступний процесор. Оскільки в системі немає головного процесора, кожен процесор займається самопланированием і вибирає потік з черги готовності. Щоб гарантувати, що два процесори не виберуть один і той же потік, для кожного процесора організовується ексклюзивний доступ до цієї черги за рахунок використання спин-блокировки диспетчера ядра.

Прив'язка до процесорів

У кожного потоку є маска прив'язки до процесорів (affinity mask), що вказує, на яких процесорах можна виконувати цей потік. За умовчанням Windows використовує нежорстку прив'язку (soft affmity) потоків до процесорів. Це означає, що деяка перевага має останній процесор, на якому виконувався потік, щоб повторно використовувати дані з кеша цього процесора (споріднене планування). Потоки наслідують маску прив'язки процесу. Зміна прив'язки процесу і потоку може бути здійснена за допомогою Win32 -функций SetProcessAffinityMask і SetThreadAfftnityMask або за допомогою інструментальних засобів Windows (наприклад, це може зробити диспетчер завдань). Є також можливість сформувати апріорну маску прив'язки у файлі образі процесу, що запускається.

Окрім номера останнього процесора у блоці ядра потоку KTHREAD зберігається номер ідеального процесора (ideal processor) - переважного для виконання цього потоку. Ідеальний процесор вибирається випадковим чином при створенні потоку. Це значення збільшується на 1 всякий раз, коли створюється новий потік, тому створювані потоки рівномірно розподіляються по набору доступних процесорів. Потік може поміняти це значення за допомогою функції SetThreadIdealProcessor.

Готовий до виконання потік система намагається підключити до процесора, що простоює. Якщо таких декілька, то перевага віддається ідеальному процесору цього потоку, а потім останньому з процесорів, на якому потік виконувався. Якщо усі процесори зайняті, то робиться перевірка на можливість витіснити який-небудь потік (в першу чергу на ідеальному процесорі, потім - на останньому для цього потоку), що виконується або чекає. Якщо витіснення неможливе, новий потік поміщається в чергу готових потоків з відповідним рівнем пріоритету і чекає виділення процесорного часу.

Таким чином, в ОС Windows реалізовано дворівневе планування. На верхньому рівні алгоритму потоки приписуються конкретним (ідеальним, останнім, найменш завантаженим) центральним процесорам, внаслідок чого у кожного процесора створюється своя черга потоків. На нижньому рівні кожним процесором здійснюється реальне планування за допомогою пріоритетів і інших засобів.

Наприклад, якщо який-небудь процесор починає простоювати, у завантаженого роботою процесора відбирається потік і віддається йому. Дворівневе планування рівномірно розподіляє навантаження серед процесорів і використовує перевагу спорідненості кеша.

Жорстка прив'язка (hard affinity), що виконується за допомогою функцій SetProcessAffinityMask і SetThreadAfftnityMask, доцільна в архітектурі з доступом, що не уніфікується (NUMA), де швидкість доступу до пам'яті залежить від взаємного розташування процесорів і банків пам'яті на системних платах.

Контрольні запитання

 

  1. У чому полягає планування?
  2. Як відбувається прив'язка до процесів?
  3. Як відбувається планування в умовах многопроцесорності?

Література

Їв. ресурс: http://its.lnpu.edu.ua/edocs 1/INTUIT.ru/html/department/os/osmswin/6/

osmswin_6.html_


– Конец работы –

Эта тема принадлежит разделу:

Тема 1. Основні концепції операційних систем

Мета Ознайомитися і вивчити історію розвитку ОС Ознайомитися з існуючими класифікаціями сучасних операційних систем Дізнатися про функції та... План Історія розвитку операційних систем Класифікація сучасних... Сторія розвитку операційних систем Перші ЕОМ були побудовані і знайшли...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Алгоритми планування

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Сторія розвитку операційних систем
Операційна система - це програма, яка запускається відразу після включення комп'ютера і дозволяє користувачеві управляти комп'ютером.

Операційна система Unix
Вважається, що в появі Юнікса зокрема винна... комп'ютерна гра. Річ у тому, що Кен Томпсон (дивитеся фото лі

Операційна система DOS
ДОСы були завжди. Перші - від IВМ, року в 1960-х, вони були дуже обмежені функціонально. Нормальні, такі, що

Операційна система OS/2
Усе почалося з OC VM (Virtual Machine), що вийшла в 1972 році. Випущений тоді продукт називався VM/370 і був призначений для підтримки сервера для певної кількості користувачів. Ця ОС, що давно від

Операційна система Windows
Windows була, напевно, першою операційною системою, яку Білу Гейтсу (дивитеся фото ліворуч) ніхто не замовля

Класифікація сучасних операційних систем
Операційна система складає основу програмного забезпечення ПК. Операційна система представляє комплекс системних і службових програмних засобів, який забезпечує взаємодію користувача з комп'ютером

Функції типових операційних систем
Основна функція усіх ОС - посередницька. Вона полягає в забезпеченні інтерфейсів : · користувача (між користувачем і програмно-апаратними засобами По реалізації інтерфейсу

Властивості операційних систем
Властивості ОС - розраховані на багато користувачів, багатозадачні, мережеві ОС. Многозада́чность (англ. multitasking) — властивість операційної системи або середовищ

Архітектура операційних систем
  Будь-яка складна система повинна мати зрозумілу і раціональну структуру, тобто розділятися на частини — модулі, що мають цілком закінчене функціональне призначення з чітко обумовлен

Ядро і допоміжні модулі ОС
Найбільш загальним підходом до структуризації операційної системи є розподіл усіх її модулів на дві групи: · ядро — модулі, що виконують основні функції ОС; · модулі, що виконують

Багатошарова структура ОС
Обчислювальну систему, працюючу під управлінням ОС на основі ядра, можна розглядати як систему, що складається з трьох ієрархічно розташованих шарів : нижній шар утворює апаратура, проміжний — ядро

Мікроядерна архітектура
Мікроядерна архітектура є альтернативою класичному способу побудови операційної системи. Під класичною архітектурою в даному випадку розуміється розглянута вище структурна організація ОС, відповідн

Концепція віртуальних машин
Віртуальна машина (ВМ, від англ. virtual machine) - · програмна і/або апаратна система, що емулює апаратне забезпечення деякої платформи і виконуюча програми для цієї платформи (target — ц

Програмна сумісність
Апаратна залежність і переносимість ОС Багато операційних систем успішно працюють на різних апаратних платформах без істотних змін у своєму складі. Багато в чому це пояснюєть

Компоненти режиму користувача
  Розглянемо відмінність режиму користувача від режиму ядра на прикладі Windows. Для запобігання доступу додатків до критично важливих даних операційної системи і усунення ри

Тема 3. Паралелізм в середовищі операційних систем
Мета: вивчити поняття паралельного виконання процесу, ознайомитися з апаратною підтримкою багатозадачного режиму ОС, вивчити структури, використовувані для задання процесів. Ознайо

Поняття паралельного виконання процесу
  Паралельними називаються процеси, у яких "інтервали часу виконання перекриваються за рахунок використання різних ресурсів однієї і тієї ж обчислювальної системи або за рахунок

Апаратна підтримка багатозадачного режиму
  Розрахований на багато користувачів режим - це можливість роботи декількох користувачів з базою однієї організації під різними обліковими записами. Під обл

Реєстрація нового користувача
Щоб зареєструвати нового користувача, адміністратор входить в систему, використовуючи сертифікат ключа, вносить дані про нового користувача і вибирає сервіси, з якими працюватиме користувач.

Структури, використовувані для задання процесів
  Дві що належать ядру структури даних описують процес: запис в таблиці процесів і простір процесу. Таблиця процесів. Таблиця процесів містить поля, які мають

Переключення контекстів, оброблення переривань та проблеми керування процесами в умовах паралельного виконання
  Перемикання контексту (англ. Context Switch) — у багатозадачних ОС і середовищах, процес припинення виконання процесором одного завдання (процесу, потоку, нитки) зі збереженням усіє

Моделі та механізми синхронізації
  Процесам часто треба взаємодіяти один з одним, наприклад, один процес може передавати дані іншому процесу, або декілька процесів можуть обробляти дані із загального файлу. У усіх ци

Операції планування та диспетчеризації
Упродовж існування процесу виконання його потоків може бути багаторазово перерване і продовжене. Перехід від виконання одного потоку до іншого здійснюється в результаті планування і диспетчеризації

Процеси
Процес (комп.) — послідовність операцій при виконанні програми, що є наборами байтів, які інтерпретуються центральним процесором як машинні інструкції, дані та стекові структури. Потоки і

Завдання
Процеси можна об'єднувати в об'єкти завдань (job objects), що дозволяє управляти процесами як групою, встановлювати ліміти ресурсів для усіх процесів, що входять в об'єкт завдання, і вести облікову

Сторія створення MS - DOS
DOS (англ. Disk Operating System — дискова операційна система) — батьківщина тісно пов'язаних операційних систем, які домінували на ринку сумісних із IBM PC комп' ютерів до 1995 року. DOS — однозад

Як відбувається завантаження операційної системи
При включенні живлення комп'ютера управління передається процедурі початкового завантаження, розташованого в постійному пристрої, що запам'ятовує, розташованому на материнській платі комп'ютера. Пр

Які існують типи дистрибутивів MS - DOS
Операційна система MS - DOS поставляється в двох варіантах. Перший варіант призначений для установки на непідготовлений (неформатований) диск комп'ютера і зазвичай поставляється разом з комп'ютером

Чому в MS - DOS відсутні російські символи та як русифікувати MS - DOS?
Набір символів, які можуть відображатися на екрані ваших комп'ютерів в текстових і графічних режимах MS, - DOS, розташований в мікросхемі постійного відеоадаптера, що запам'ятовує пристрої (ПЗП).

Тема 6. Операційна система WINDOWS
Мета: Вивчення операційної системи WINDOWS. Навчитися роботі в ній. Вивчити структуру ОС WINDOWS План 6.1. Робота з вікнами, переглядання вмісту комп'ютера

Тема 6. Операційна система WINDOWS
Мета: Вивчення операційної системи WINDOWS. Навчитися роботі в ній. Вивчити структуру ОС WINDOWS План 6.1. Робота з вікнами, переглядання вмісту комп'ютера

Нтерфейс користувача Windows
  . Діалогові вікна використовуються для налаштування режимів роботи операційної системи, обладнання, програми худе. Як правило, у діалоговому вікні представлено декілька вкл

Файли, теки, ярлики
Всі документи і програми на дисках зберігаються у вигляді файлів. Файл є основною структурною одиницею файлової системи. Його зміст можна переглянути, змінити, видалити, надрукувати. Файли документ

Складові елементи та структури даних процесу у Windows
На зміну ini -файлам, що має ряд концептуальних обмежень, ще в Windows 3.1 було введено поняття реєстру — реєстраційної бази даних, що зберігає різні налаштування ОС і додатків. Спочатку реєстр був

Створення та завершення процесів у Windows
  Створення процесів Створення Win32 процесу здійснюється викликом однієї з таких функцій, як CreateProcess, CreateProcessAsUser (для Win NT/2000) і CreateProcessWith

Завершення процесів
Процес завершується якщо: - Вхідна функція первинного потоку повернула управління. - Один з потоків процесу викликав функцію ExitProcess. - Потік іншого процесу викликав

Програмний інтерфейс керування процесами Win32 API
У ОС Windows між додатком і сукупністю системних викликів (системних сервісів в термінології Microsoft) розташований додатковий абстрактний шар - програмний інтерфейс Win32 API. За рахунок цього Wi

Складові елементи та структури даних потоку у Windows
У об'єкті ядра "потік" є змінна — лічильник числа простоїв даного по струму При виклику CreateProcess або CreateThread він ініціалізувався значенням, рав ным 1, яке забороняє системі виді

Створення потоків у Windows
  Первинний потік створюється автоматично при створенні процесу. Інші потоки створюються функціями CreateThread і CreateRemoteThread (тільки у Win NT/2000/XP).  

Архівація інформації
  У системі Windows немає вбудованих функцій для роботи з упакованими архівами, тому більшості користувачів доводиться обзаводитися спеціальними утилітами і при цьому вирішувати пробл

Тема 7. Операційні системи UNIX та LINUX
Мета: вивчення історії створення та найпоширеніших версій ОС Unix та Linux. Іх структуру. План 7.1. Історія виникнення операційної системи UNIX та LINUX

Сторія виникнення операційної системи UNIX та LINUX
UNIX був розроблений американською лабораторією Bell Labs, що входила до складу контори Bell Systems. Історія цієї компанії в області інформаційних технологій почалася в 1957 році, коли її співробі

Системні характеристики операційної системи UNIX
UNIX - одна з найпопулярніших у світі операційних систем завдяки тому, що її супроводжує і поширює велике число компаній. Спочатку вона була створена як багатозадачна система для мінікомп'ютерів і

Системні характеристики операційної системи LINUX
Linux - багатозадачна і розрахована на багато користувачів операційна система для бізнесу, освіти і індивідуального програмування. Linux належить сімейству UNIX -подобных операційних систем, яка мо

Качан інсталяції операційної системи UNIX
Щоб завантажити систему виконаєте наступні кроки: Переконаєтеся, що усі пристрої із зовнішніми джерелами живлення, підключені до вашої системи (такі як монітор) включені. Перекона

Качан інсталяції операційної системи LINUX
Для того, щоб почати власне установку Red Hat Linux, вставте настановну дискету (при виготовленні Ви повинні були помітити її як "Boot Diskette'') в дисковод і перезавантажите комп'ютер. Після

Запуск нових програм в ОС UNIX
  Управління пакетами за допомогою RPM Red Hat Package Manager(RPM) - це відкрита система управління пакетами, доступна усім, і використовувана усіма користувачами Red Hat Li

Планування на підставі характеристик подальшого виконання
  Основною проблемою організації розрахованого (правильніше сказати, мультипрограмного) на багато користувачів режиму у будь-якій операційній системі є організація планування «паралел

Планування на підставі характеристик подальшого виконання
  Основною проблемою організації розрахованого (правильніше сказати, мультипрограмного) на багато користувачів режиму у будь-якій операційній системі є організація планування «паралел

Основні завдання забезпечення захисту інформації в операційних системах
Ефективність захисту інформації в автоматизованих системах досягається застосуванням засобів захисту інформації (СЗИ). Під засобом захисту інформації розуміється технічний, програмний засіб або мат

Робота із системним журналом UNIX
  Системні журнали починають функціонувати автоматично при запуску операційної системи. Розміри журнальних файлів обмежені, і система записує події, видаляючи старі записи відповідно

Локальна та мережна безпека даних
Украй важливо зрозуміти, що безпека - це не продукт, який можна купити в магазині і бути упевненим у власній захищеності. "Безпека"; - особлива комбінація як технічних, так і адміністрати

Локальна та мережна безпека даних
Украй важливо зрозуміти, що безпека - це не продукт, який можна купити в магазині і бути упевненим у власній захищеності. "Безпека"; - особлива комбінація як технічних, так і адміністрати

Виконуванні файли в LINUX
  Файл з точки зору операційної системи є найбільшою сукупністю даних, з якою можна виконувати різні стандартні операції: копіювання, перейменування, вилучення і т.д. З позицій корист

Підтримка багатопроцесорності в LINUX
Ранні SMP системи Linux були слабозв'язаними багатопроцесорними системами, тобто побудованими з декількох окремих систем, пов'язаних високошвидкісним з'єднанням (таким як 10G Ethernet, Fibre Channe

Сильносвязанная багатопроцесорна обробка
Сильносвязанная багатопроцесорна обробка відноситься до обробки на рівні кристала (CMP -- chip - level multiprocessing). Представте слабозв'язану архітектуру, зменшену до рівня кристала. Це і є іде

SMP і ядро Linux
Коли тільки з'явився Linux 2.0, підтримка SMP складалася з основної системи блокування, яке упорядковувало доступ в системі. Пізніше невеликий прогрес в підтримці SMP був, але тільки з ядром 2.6 на

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги