Головна

Мультипроцессорная обробка.

  1. Механічна обробка.
  2. мультипроцессорная обробка
  3. Мультипроцессорная обробка.
  4. Остаточна камеральна обробка. Застосування інформаціонниx теxнологии. Складання звіту.
  5. Повна спеціальна обробка.

мультипроцессорная обробка - Це спосіб організації обчислювального процесу в системах з декількома процесорами, при якому кілька завдань (процесів, потоків) можуть одночасно виконуватися на різних процесорах системи.

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

Зауважимо, що слід розрізняти мультипроцесорну і мультипрограмне обробку. У мультипрограмних системах паралельна робота різних пристроїв дозволяє одночасно вести обробку декількох програм, але при цьому в самому процесорі в кожен момент часу виконується тільки одна програма, т. Е. Кілька завдань виконуються поперемінно на одному процесорі, створюючи лише видимість паралельного виконання. У мультипроцесорних же системах кілька завдань виконуються дійсно одночасно, так як є кілька обробних пристроїв - процесорів. Звичайно, мультіпроцессірованіе зовсім не виключає мультипрограмування: на кожному з процесорів може поперемінно виконуватися деякий закріплений за даним процесором набір завдань.

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

У наші дні стає загальноприйнятим введення в ОС функцій підтримки мультипроцесорної обробки даних. Такі функції є у ??всіх популярних ОС, таких, як Sun Solaris 2.x, Santa Crus Operations Open Server 3-х, IBM OS / 2, Microsoft Windows NT і Novell NetWare, починаючи з версії 4.1.

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

Симетрична архітектура мультипроцесорної системи передбачає однорідність всіх процесорів і однаковість їх включення в загальну схему мультипроцесорної системи. Традиційні симетричні багатопроцесорних поділяють однубольшую пам'ять між усіма процесорами. масштабованість, Або можливість нарощування числа процесорів, в симетричних системах обмежена внаслідок того, що всі вони користуються однією і тією ж оперативною пам'яттю і, отже, повинні розташовуватися в одному корпусі. Така конструкція, звана масштабується по вертикалі, на практиці обмежує число процесорів до чотирьох або восьми. У симетричних архітектурах всі процеси користуються однією і тією ж схемою відображення пам'яті. Вони можуть дуже швидко обмінюватися даними, так що забезпечується досить висока продуктивність для тих додатків (наприклад, при роботі з базами даних), в яких кілька завдань повинні активно взаємодіяти між собою.

В асиметричній архітектурі різні процесори можуть відрізнятися як своїми характеристиками (продуктивністю, надійністю, системою команд і т. Д., Аж до моделі мікропроцесора), так і функціональною роллю, яка доручається їм в системі. Наприклад, одні процесори можуть призначатися для роботи в якості основних обчислювачів, інші - для управління підсистемою введення-виведення, треті - ще для якихось особливих цілей. Така функціональна неоднорідність тягне за собою структурні відмінності у фрагментах системи, що містять різні процесори системи. Наприклад, вони можуть відрізнятися схемами підключення процесорів до системної шини, набором периферійних пристроїв і способами взаємодії процесорів з пристроями. Масштабування в асиметричній архітектурі реалізується інакше, ніж в симетричною. Так як вимога єдиного корпуса відсутня, система може складатися з декількох пристроїв, кожне з яких містить один або кілька процесорів. Це масштабування по горизонталі. Кожне таке пристрій називається кластером, А вся мультипроцесорна система - кластерної.

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

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

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

Так як операційна система працює тільки на одному процесорі і функції управління повністю централізовані, то така операційна система виявляється не набагато складніше ОС однопроцессорной системи.

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

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

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

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

У разі відмови одного з процесорів симетричні системи, як правило, порівняно просто реконфигурируется, що є їх великою перевагою перед погано реконфігурованих асиметричними системами.

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

туру неодмінно тягне за собою і асиметричний спосіб організації обчислень.

103 апаратно-залежні компоненти ОС

Практично всі сучасні апаратні платформи мають деякий типовий набір засобів апаратної підтримки ОС, в який входять наступні компоненти:

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

Засоби трансляції адрес виконують операції перетворення віртуальних адрес, які містяться в кодах процесу, в адреси фізичної пам'яті.

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

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

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

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

Обсяг машинно-залежних компонентів ОС залежить від того, наскільки великі відмінності в апаратних платформах, для яких розробляється ОС. Наприклад, ОС, побудована на 32-бітових адресах, для перенесення на машину з 16-бітовими адресами повинна бути практично переписана заново. Одне з найбільш очевидних відмінностей - розбіжність системи команд процесорів - долається досить просто. Як правило, сучасна ОС програмується на мові високого рівня, а потім відповідним компілятором виробляється код для конкретного типу процесора. Однак у багатьох випадках відмінності в організації апаратурикомп'ютера лежать набагато глибше і подолати їх таким чином не вдається. Наприклад, однопроцесорний і двопроцесорний комп'ютери вимагають застосування в ОС абсолютно різних алгоритмів розподілу процесорного часу. Аналогічно, відсутність апаратної підтримки віртуальної пам'яті призводить до принципового відмінності в реалізації підсистеми управління пам'яттю. У таких випадках розробникам не вдається обійтися без внесення в код ОС специфіки апаратної платформи, для якої ця ОС призначається.

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

Операційна система називається яку переносять ОС (Portable), або мобільного, Якщо її код може бути порівняно легко перенесений з процесора одного типу на процесор іншого типу і з апаратної платформи одного типу на апаратну платформу іншого типу.

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

1) Переважна частина коду повинна бути написана на мові, транслятори якого є на всіх машинах, куди передбачається переносити систему. Такими мовами, наприклад, є стандартизовані мови високого рівня. Більшість їх переносите ОС написано на мові C, який має багато особливостей, корисних для розробки кодів ОС, і компілятори якого широко доступні. Мови низького рівня не підходять для вирішення подібних завдань. Так, програма, написана на асемблері, є яку переносять тільки в тому випадку, коли перенесення ОС передбачається на комп'ютер, що володіє тією ж системою команд. В інших випадках асемблер використовується тільки для тих нестерпних частин ОС, які повинні безпосередньо взаємодіяти з апаратурою (наприклад, для обробника переривань), або частин, що вимагають максимальної продуктивності (наприклад, для цілочисельний арифметики підвищеної точності).

2) Обсяг машинно-залежних частин коду, безпосередньо взаємодіють з апаратними засобами, повинен бути по можливості мінімізований. Завжди слід уникати прямого маніпулювання регістрами й іншими апаратними засобами процесора. Для зменшення апаратної залежності розробники ОС повинні також виключити можливість використання за замовчуванням стандартних конфігурацій апаратури або їх характеристик. Апаратно-залежні параметри можна "сховати" в

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

3) Апаратно-залежний код повинен бути надійно ізольований в декількох модулях, а не бути розподілений по системі. Ізоляції підлягають всі частини ОС, які відображають специфіку як процесора окремо, так і використовуваної апаратної платформи в цілому. Низькорівневі компоненти ОС, мають доступ до процесорної-залежним структурам даних і регістрів, повинні бути в обов'язковому порядку оформлені у вигляді компактних логічно відокремлених модулів, які можуть бути замінені аналогічними по виконуваних функцій модулями для інших процесорів. Для зняття платформної залежності, що виникає через відмінності між комп'ютерами різних виробників, побудованими на одному і тому ж процесорі, повинен бути введений добре локалізований програмний шар машинно-залежних функцій з чітко обумовленим міжшаровим інтерфейсом.

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

109Логіческая і фізична організація файлових систем.

Структурний підхід до розробки алгоритмів. | Логічна і фізична організація файлової системи.


Функціональна і структурна організація ЕОМ. | методи адресації | Структура з одним загальним інтерфейсом | Процедури. функція Визначення | Загальні процедури для роботи з файлами | довідкові змінні | опис об'єкта | Візуальні компоненти стандартних діалогів Windows-інтерфейсу | Управління компонентами форми | типи файлів |

© 2016-2022  um.co.ua - учбові матеріали та реферати