WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Утиліти загального використання в ОС Unix. Ефективне використання динамічного керування розв’язуванням прикладних задач за допомогою Асемблера. Архіте - Реферат

Утиліти загального використання в ОС Unix. Ефективне використання динамічного керування розв’язуванням прикладних задач за допомогою Асемблера. Архіте - Реферат

використовується зміщення всередині сегменту називається ближньою - Near. Подвійні слова рівні 4 байт, або 32 біт. Одне слово може мати 4294967296=4Мб. Подвійні слова зберігаються в пам'яті за цим же правилом: молодший байт за молодшою адресою, байти в пам'яті розташинятком ппослідовно один за одним 12554959Н - слово подвійне, якщо воно знаходиться за адресою N, то за адресою N знаходиться байт 59Н, N+1 - 49H, N+2 - 55H, N+3 - 12H. Подвійне слово при програмуванні для процесорів молодших 80386 має достатньо місця для збереження не тільки адреси всередині сегменту, а й адреси початку сегменту і адреси зміщення в середині сегменту називається дальньою - for adress адресою. При програмуванні , коли для завдання адреси використовується 32 біти (для мікропроцесорів 80386 і старше) в подвійному слові кожна зберігати 32-розрядне зміщення. За допомогою цього зміщення можна звертатись до будь-якої комірки пам'яті. Рядки в мікропроцесорах родини І 80х86 можна виконувати операції над рядками. Рядок - це послідовність байтів або слів, а для мікропроцесорів старших 80386 подвійних слів, якізнаходяться в пам'яті комп'ткера. Мінімальна довжина рядку 1 елемент, максимальна довжина рядку може досягати 64 Кб для мікропроцесорів молодших 80386, і 4Гб для мікропроцесорів старших 80386.
3. Архітектурні модулі Windows-NT
Операційна система Windows NT має модульну архітектуру. Це означає, що вона складається з чітко поділюваних компонентів, кожний з який відповідає строго за свої функції. Тут докладно описані архітектурні модулі Windows NT 4.0: від найнижчого рівня, найбільш близького до апаратури, до найвищого рівня, найбільш близького до користувальницьких додатків.
Вся архітектура Windows NT 4.0 чітко підрозділяється на два основних рівні: режим користувача (user mode) і режим ядра (kernel mode).
o Режим ядра являє собою високопривілейований режим. Код, що виконується в режимі ядра, має прямий доступ до всіх апаратних засобів і всієї пам'яті, включаючи адресні простори всіх процесів режиму користувача. Частина Windows NT 4.0, що працює в режимі ядра, називається виконуючою системою (Windows NT Executive). До складу модуля Executive входять такі компоненти, як Рівень апаратних абстракцій (Hardware Abstraction Level, HAL), мікроядро (Microkernel), а також сервісні модулі Windows NT Executive
o Режим користувача являє собою непривілейований режим роботи процесора, що не надає прямого доступу до апаратних засобів. Код, що працює в цьому режимі, діє тільки в межах власного адресного простору. Для звертання до сервісів операційної системи він використовує добре документований API. Підсистеми середовища й інтегральна підсистема працюють у цьому режимі.
Мікроядро
"Серцем" операційної системи Windows NT, яка працює в тісному взаємозв'язку з HAL, є мікроядро (microkernel). Мікроядро здійснює диспетчеризацію ниток, обробку переривань і виняткових ситуацій. Якщо комп'ютер має багатопроцесорну архітектуру, мікроядро підвищує продуктивність системи, синхронізуючи роботу процесорів. У мультипроцесорній конфігурації мікроядро може одночасно виконуватися на всіх процесорах.
Роль мікроядра полягає в тому, щоб забезпечити оптимальне завантаження всіх процесорів і найкращу продуктивність системи. Для цього мікроядро здійснює диспетчеризацію ниток відповідно до їх пріоритетів. Фактично, воно примусовим чином проводить політику диспетчеризації, реалізовану модулем Windows NT Executive. Крім того, мікроядро витісняє (preempt) нитки з низьким пріоритетом на користь більш високопріорітетних ниток. Воно може примусовим чином виконувати переключення контексту (context switches), даючи процесору інструкції припинити виконання однієї задачі і взятися за іншу. Таким чином, код, що виконується в такій системі, повинний бути реентерабельним (reentrant). Під реентерабельностью коду розуміється здатність перервати виконання і бути вивантаженим, а також відновити виконання без втрати інформації. Крім того, реентерабельний код може спільно використовуватися декількома різними нитками, що виконують різні рядки того самого коду на різних процесорах.
Хоча мікроядро здійснює диспетчеризацію і витиснення ниток додатків і операційної системи і власний код мікроядра технічно реалізований не у виді ниток. Мікроядро є єдиною непереміщуваною у пам'яті (nonpageable) і що невивантажується (nonpreemptible) частиною операційної системи. За рідкісним винятком всі інші нитки, що працюють у Windows NT 4.0, у тому числі й у складі модуля Executive, є такими, що що вивантажуються (preemptible) і цілком реентерабельними. За рахунок цього досягається максимальна ефективність системи.
Нарешті, мікроядро синхронізує діяльність таких сервісів Windows NT Executive, як Диспетчер введення/виведення (I/O Manager) і Диспетчер процесів (Process Manager). Крім того, компоненти Executive використовують ще більш високі рівні абстракції, які називаються об'єктами мікроядра (microkernel objects), частина з яких експортується в межах інтерфейсних викликів API з користувальницькими додатками.
Об'єкти мікроядра
Мікроядро керує об'єктами двох типів:
" Об'єкти диспетчеризації (Dispatcher objects) характеризуються сигнальним станом: установлене (signaled) чи скинуто (nonsignaled). Ці об'єкти керують диспетчеризацією і синхронізацією системних процесів. До об'єктів диспетчеризації відносяться події (events), мутанти (mutants), мутекси (mutexes), семафори (semaphores), нитки (threads), таймери (timers) і секції (sections)
" Об'єкти управління (Control objects), що використовуються для керування роботою мікроядра, але не впливають на диспетчеризацію. До об'єктів керування відносяться асинхронні виклики процедур (asynchronous pro-cedure calls), переривання (interrupts), процеси (processes) і профілі (profiles).
Event Об'єкти типу Event (подія) реєструють факти подій генерованих операційною системою і додатками і синхронізують події з іншими діями. Вони дозволяють припинити виконання ниток доти поки не наступить очікувана подія (наприклад асинхронний виклик процедури). Після настання очікуваної події виконання нитки може відновитися.
Mutant Об'єкти типу Mutant (мутанти) керують доступом до коду, гарантуючи, щоб критичні рядки коду не могли виповнюватися декількома нитками одночасно. Доступ до таких рядків може одержати тільки одна нитка. Як правило, мутанти застосовуються в режимі користувача, але можуть працювати також і в режимі ядра
Mutex Об'єкти типу Mutex (мутекси) також керують доступом до коду, гарантуючи, щоб критичні рядки коду не могли виповнюватися декількома нитками
Loading...

 
 

Цікаве