КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Асинхронні паралельні процеси
Основні функції ядра Лекція 4: Ядро операційної системи
Усі операції, що пов’язані з процесами, виконуються під керуванням ядра. Ядро – невелика частина ОС, але вона відноситься до найбільш інтенсивно використовуваних компонентів ОС. З цієї причини ядро, зазвичай, резидентно розміщено в оперативній пам’яті, в той час як інші частини ОС переміщаються у зовнішню пам’ять та назад за необхідністю. Одною з найважливіших операцій ядра є обробка переривань. У великих, багато абонентських системах у процесор надходить постійний потік переривань. Коли ядро обробляє біжуче переривання, воно заблоковує інші переривання і дозволяє їх знову тільки після завершення обробки біжучого переривання. При постійному потоці переривань може скластися, ситуація, що ядро блокуватиме переривання протягом тривалого часу, тоді система не буде мати можливості ефективно реагувати на переривання. Тому, ядро розробляється таким чином, щоб воно виконувало тільки мінімально можливу попередню обробку кожного переривання, а потім передавало це переривання на подальшу обробку відповідному системному процесові. Після передачі обробки переривання іншому процесові, ядро може дозволити наступні переривання. Таким чином, середня швидкість реакції системи суттєво зростає. Ядро, як правило, містить програми для реалізації наступних функцій: - обробка переривань; - створення та знищення процесів; - перемикання процесів зі стану в стан; - диспетчеризація; - припинення та активізація процесів; - синхронізація процесів; - організація взаємодії між процесами; - маніпуляція блоками керування процесами (PCB); - підтримка операцій вводу-виводу; - підтримка розподілу та перерозподілу пам’яті; - підтримка механізму виклику-повернення при звертанні до процедур; - підтримка функцій з обліку роботи машини. Функції, що реалізовані в ядрі є примітивними. В останній час намітилася чітка тенденція, коли розробники систем значну частину функцій ядра реалізують на рівні мікропрограм у ПЗУ BIOS. Це ефективний спосіб захисту ядра. Причому ретельна реалізація мікропрограм, дозволяє забезпечити високу ефективність виконання ядром своїх функцій. В ієрархічних системних структурах, ядро розташоване на рівні безпосередньо над базовим рівнем апаратури ЕОМ. На вищих рівнях розташовані процеси системи та процеси користувачів. Практика показує, що ієрархічні структури простіше піддаються відлагодженню, модифікації та тестуванню. Процеси називаються паралельними, якщо вини існують (працюють) одночасно. Зменшення габаритів та вартості апаратури комп’ютерів сприяють подальшому розвитку багато процесорних систем і, як кінцевий результат, реалізацію максимального паралелізму на всіх рівнях. Якщо певні операції можна виконувати паралельно, то комп’ютери наступних генерацій будуть фізично виконувати їх паралельно. Паралельні процеси можуть бути повністю незалежними або взаємодіючими. Останні можуть бути конкуруючими, або такими, що сумісно виконують спільну роботу. Як правило, найчастіше маємо справу з паралельними процесами, яким необхідно час від часу синхронізуватися та взаємодіяти. Усі подібні паралельні процеси називаються асинхронними. Керуючі конструкції організації паралелізму. У багатьох сучасних мовах програмування передбачено спеціальні конструкції для організації паралелізму, зокрема в „Ада”, це пара операторів parbegin / parend. Як правило, це парні оператори: - Перший оператор, показує, що послідовність команд у програмі може бути розділена на декілька послідовностей, що виконуються паралельно; - Другий оператор, вказує, що зазначені послідовності, що виконувалися паралельно, повинні злитися в один потік і повинно відновитися послідовне виконання команд. Приклад розпаралелювання виконання команд. Пари операторів, що забезпечують розпаралелення на рівні алгоритму: parbegin / parend – початок – завершення блоку паралельного виконання; cobegin / coend – початок – завершення блоку суміщеного виконання;
Приклад. Обчислити вираз x:= (-b + (b ** 2 - 4 * a * c) ** 0.5) / (2 * a). Цей вираз обчислюється за допомогою послідовного процесора наступним чином: 1 b ** 2 2 4 * a 3 (4 * a) * c 4 (b ** 2) – (4 * a * c) 5 (b ** 2 – 4 * a * c) ** 0.5 6 -b 7 (-b) + ((b ** 2 – 4 * a * c) ** 0.5) 8 2 * a 9 (-b + (b ** 2 – 4 * a * c) ** 0.5) / (2 * a). Кожен з цих операторів виконується послідовно, що визначається прийнятими у системі правилами кодування операторів. У системі з паралельною обробкою, матимемо: 1 parbegin temp1:= -b temp2:= b ** 2 temp3:= 4 * a temp4:= 2 * a parnd 2 temp5:= temp3 * c 3 temp5:= temp2 – temp5 4 temp5:= temp5 ** 0.5 5 temp5:= temp1 + temp5 6 x:= temp5 / temp4 Операції першого оператора виконуються паралельно, решта операторів виконується послідовно. У загальному час обчислення виразу скорочується.
Дата добавления: 2014-01-11; Просмотров: 1077; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |