Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

і Семафори Системні засоби взаємодії процесів

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.5.2024

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

Системні засоби взаємодії процесів. Дужки критичних секцій.

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

Крім того, роль таких дужок можуть грати системні виклики типу suspend і release, перший з яких припиняє виконання нитки, а другий - відміняє припинення.

Віртуальні переривання або сигнали

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

raiseInterrupt (pid, intType );

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

Коли процесу посилається переривання, управління передається на обробник цього переривання у складі процесу. Процес повинен встановити адресу обробника за допомогою системного виклику типу:

setInterruptHandler (intType, action, procedure );

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

Зрозуміло, в системі повинні бути визначені допустимі типи віртуальних переривань. Віртуальні переривання можуть генеруватися в наступних випадках:

  1.  завершення або інша зміна статусу процесу-нащадка;
  2.  програмні помилки (переривання-пастки);
  3.  помилки у виконанні системних викликів або неправильні звернення до системних викликів;
  4.  термінальні дії (наприклад, натиснення клавіші "Увага" або Ctrl+Break);
  5.  при необхідності завершення процесу (системний виклик kill);
  6.  сигнал від таймера;
  7.  сигнали, якими процеси обмінюються один з одним;
  8.  і так далі

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

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

Як повинна реагувати ОС на посилку переривання неіснуючому процесу? Мабуть, аварійне завершення процесу, що видав таке переривання, може бути нормальною реакцією системи. Можливо, втім, і ліберальніше рішення - завершити виклик raiseInterrupt з ознакою помилки. Аналогічний ефект може викликати виконання переривання, для якого в процесі-приймачі встановлений спеціальний режим обробки - неприпустиме переривання.

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

У більшості сучасних ОС (Unix, OS/2 і ін.) віртуальні переривання носять назву сигналів і використовуються перш за все для сигналізації про надзвичайні події. Сигнальні системи конкретних ОС, як правило, не надають у складі API універсального виклику типу raiseInterrupt, який дозволяв би користувачеві видавати сигнали будь-якого типу. Набір зарезервованих типів сигналів обмежений (у Unix, наприклад, їх 19, а в OS/2 - всього 7), не всі з них доступно процесам, і для кожного з доступних є власний системний виклик. Недопустимі також незарезервовані типи сигналів. У набір включається декілька (по 3 - в згаданих ОС) типів сигналів, зарезервованих за процесами, ці типи і використовують взаємодіючі процеси для посилки один одному сигналів, які вони інтерпретують по попередній домовленості.

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

Модель віртуальних комунікаційних портів

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

  1.  можливість одноманітних операцій із засобами взаємодії і з файлами;
  2.  можливість доступу до видалених засобів як до видалених файлів;
  3.  можливість використання єдиних засобів контролю доступу для файлової системи і для комунікацій.

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

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

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

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

Іменований порт має зовнішнє ім'я. Системний виклик відкриття іменованого порту вимагає вказівки цього імені як параметр виклику. Користувачі-розробники взаємодіючих процесів заздалегідь домовляються про використовувані імена портів. Система іменування портів і відкриття іменованих портів аналогічна файловій системі. Імена засобів взаємодії формуються по угодах іменування файлів і можуть виглядати, як імена файлів, розташованих в спеціальних каталогах, наприклад: каталог \shrmem - для загальних областей пам'яті, каталог \sem - для системних семафорів \pipe - для каналів \queues - для черг.

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

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


Мережні засоби ОС. Робота з мережею засобами операційної системи.

Мережева операційна система

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

Мережеві ОС поділяються на дві категорії: однорангові і клієнтісерверні.

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

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

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

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

У мережах клієнт/сервер мережна ОС (Windows 95/98, Windows 2000, Windows NTt Windows XP, Windows Millennium, Novell NetWare, UNIX тощо) установлюється на сервері. Цей комп'ютер керує мережею і надає свої ресурси клієнтським робочим станціям. Мережева ОС, працюючи на сервері (серверна ОС), відповідає за координацію всіх дій, пов'язаних із використанням ресурсів і сервісів цього сервера.

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

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

Мережева операційна система дає змогу користувачам спільно використовувати:

  1.  дорогі апаратні ресурси мережі - принтери, сканери, дискові накопичувані тощо;
  2.  програмне забезпечення, інстальоване тільки на сервері;
  3.  інформаційні ресурси - базу даних сервера;
  4.  організувати сумісну роботу великого колективу користувачів з оперативним обміном інформації між ними.

До складу сучасних операційних систем (Windows XP, Windows 2000, Windows NT Server, Net Ware) входять компоненти:

  1.  керування локальними ресурсами комп'ютера;
  2.  серверна частина для надання власних ресурсів і послуг у загальне користування;
  3.  клієнтська частина операційної системи для розпізнавання і переспрямовування в мережу запитів до віддалених ресурсів;
  4.  комунікаційні засоби для обміну повідомленнями в мережі.

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

У мережі вузли (комп'ютери) взаємодіють між собою за певними правилами - комунікаційними протоколами, які реалізуються як програмно, так і апаратно.

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

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

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

Наприкінці 80-х років минулого століття Міжнародна організація зі стандартизації розробила правила пересилання даних мережею, які отримали назву "Модель взаємодії відкритих систем" (Open System Interconnection, OSI). Модель OSI отримала статус міжнародного стандарту і її рекомендації є керівництвом для побудови мережі. Відповідно до моделі OSI засоби взаємодії поділяються на сім рівнів: рівень протоколу, представлення даних, сеансовий, транспортний, мережевий, канальний і фізичний. Кожен із семи рівнів визначає сукупність логічно згрупованих функцій, необхідних для контролю процесу передачі даних мережею.

Рівень протоколу - це найвищий рівень в ієрархії еталонної моделі ISO, він установлює інтерфейс між додатками користувача і мережею.

Рівень представлення даних - відповідає за спосіб кодування даних, Далеко не всі комп'ютерні системи використовують ту саму схему кодування даних, тому на рівень представлення даних покладено обов'язки з перетворення між несумісними схемами кодування даних.

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

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

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

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

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

Сокети

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

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

У системах, орієнтованих на з'єднання, пари комбінацій ІP-адрес і номерів портів однозначно визначає канал зв'язку між двома процесами в ЕОМ. Така комбінація називається сокетом (socket). Номера портів можуть і збігатися, але ІP-адреси повинні бути обов'язково різними. Уперше ідея сокета була використана в системі BSD4.3 Unіx для організації мережевого введення/виведення. В Unіx зовнішній пристрій і файл із погляду системного програміста еквівалентні. Мережні процедури трохи складніше й не вкладаються в таку просту схему. Із цієї схеми випадають, насамперед, операції, при яких сервер пасивно очікує, особливо операції обміну, не орієнтовані на з'єднання. Сокет є прикордонним поняттям між протоколами телекомунікацій і операційною системою ЕОМ. Сокети відіграють важливу роль при написанні прикладних програм (APІ).

Сокет відправника = ІP-адрес відправника + номер порту відправника

Сокет адресата = ІP-адрес адресата + номер порту адресата

При обмінах, орієнтованих на з'єднання, формується ансамбль ( ІPSPS + ІPDPD ), де ІPSPS - адреса й порт відправника, а ІPDPD - адреса й порт місця призначення.

Міжкомп‘ютерні комунікації не зводяться до знайомства із сусідським депозитарієм, до виконання операцій Telnet/ssh, FTP/scp і т.д. Однією з найважливіших завдань є віддалений контроль за процесами в більших розподілених системах, коли обмін інформацією активізується не людиною, а ЕОМ. Прикладами таких завдань можуть служити керування сучасними високотехнічними виробництвами, збір метео- або іншої геофізичної інформації в реальному масштабі часу, експерименти в області фізики високих енергій, де для контролю установки й збору експериментальних даних використовуються десятки (а іноді й сотні) обчислювальних машин, які обмінюються діагностичною інформацією й даними. Саме для рішення таких завдань і застосовуються ідеї сокетів, "труб" і т.д. Поняття сокета в прикладних програмах - це не просто комбінація ІP-адрес і номерів портів, це вказівник на структуру даних, де зберігаються параметри віртуального каналу.


Керування пристроями введення-виведення. Базова система введення-виведення для роботи з периферійними пристроями

BIOS (скорочення від Basic Input/Output System — базова система введення/виведення) — це вмонтоване в комп'ютер програмне забезпечення, яке йому доступне без звертання до диска. Це набір програм перевірки й обслуговування апаратури комп'ютера, зокрема необхідних для управління клавіатурою, відео-картою, дисками, портами й іншими пристроями.

BIOS одержує управління при вмиканні (так званому «холодному» завантаженні) й скиданні («гарячому» завантаженні) системної плати, тестує саму плату й основні блоки комп'ютера — відеоадаптер, клавіатуру, контролери дисків і портів введення/виведення, налаштовує чіпсет і передає управління завантажникові операційної системи.

При роботі під DOS і Windows 9x BIOS також керує основними пристроями, тобто виступає посередником між операційною системою й апаратурою комп'ютера. При роботі під Windows NT/2000/XP, різновидами UNIX, OS/2 й іншими альтернативними ОС BIOS практично не використовується, виконуючи лише одну початкову перевірку й настроювання.

BIOS складається з таких частин:

  1.  POST (Power On Self Test) — програма, відповідальна за тестування апаратних засобів комп'ютера при вмиканні живлення;
  2.  System Setup — програма настроювання системи;
  3.  Набір програм для управління роботою апаратури.

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

Чи потрібно змінювати BIOS

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

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

Як BIOS завантажує комп'ютер

Після вмикання комп'ютера на процесор подається напруга, і він «прокидається». Першими прочитаними процесором командами є інструкції з чіпа BIOS (про це піклуються мікросхеми системної плати). Першим запускається POST — програма самотестування. POST виконує такі кроки:

  1.  ініціалізує системні ресурси й регістри чіпсетів, систему управління електроживленням;
  2.  визначає обсяг і тестує оперативну пам'ять (RAM);
  3.  ініціалізує відеоадаптер;
  4.  вмикає клавіатуру;
  5.  тестує послідовні й паралельні порти;
  6.  ініціалізує дисководи й контролери жорстких дисків;
  7.  відображає підсумкову системну інформацію.

У процесі виконання цих дій BIOS порівнює дані поточної системної конфігурації з інформацією, що зберігається в CMOS, і при необхідності відновлює її. Якщо при виконанні якого-небудь кроку виникли збої, BIOS інформує про це повідомленнями на екрані монітора, а якщо це неможливо (наприклад, ще не був ініціалізований відеоадаптер), видає гудки через системний динамік. Кількість гудків відповідає кодам помилки, про що можна довідатися з документації. Деякі системні плати забезпечуються рідкокристалічним індикатором, де відображаються стадії проходження POST-тестів і коди виявлених помилок.

Після того як усі POST-завдання завершені, BIOS починає шукати програму-завантажник. Сучасні версії BIOS дозволяють завантажувати операційну систему не тільки із флопі-дисководів і жорсткого диска, але і з CD-ROM, ZIP. Програма-завантажник, як правило, розташовується в першому секторі диска, на якому розміщена операційна система. Порядок перебору дисків при пошуку завантажника задається в конфігурації BIOS. Якщо завантажник знайдений, він переноситься в пам'ять і йому передається управління. Він у свою чергу знаходить і копіює в пам'ять власне програму завантаження операційної системи (opration system loader), що завантажує, ініціалізує і конфігурує операційну системі й драйвери пристроїв. І вже на сам кінець, коли операційна система завантажена (якщо комп'ютер працює в режимі Windows), запускаються програми папки «Автозавантаження».

Керування пристроями введення-виведення

Як бачимо, у системах під управлінням DOS або Windows 9x BIOS бере на себе роль управління апаратною частиною ПК і служить посередником між операційною системою й обладнанням.

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

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

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

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

Базова система введення-виведення для роботи з периферійними пристроями

Базова система введення-виведення розміщується в постійній пам'яті комп'ютера. Цей модуль є одночасно і частиною апаратури частиною операційної системи.    

Основні функції BIOS:

  1.  Автоматичне тестування основних компонентів персонального комп'ютера при його ввімкненні.
  2.  Виклик блоку початкового завантаження ОС з системного диску до оперативної пам'яті комп'ютера.
  3.  Обслуговування переривань нижнього рівня – тих, які потребують безпосереднього управління апаратними компонентами.

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

Розрізняють три види переривань:

  1.  Апаратні (натиснення клавіші, переміщення миші і ін.).
  2.  Логічні чи процесорні (ділення на нуль, переповнення регістрів пам'яті і ін.).
  3.  Програмні (при зверненні до апаратних засобів).

Кожне переривання має унікальний номер (від 0 до 255) і з ним зв'язана певна підпрограма для обслуговування ситуацій, що виникають.

Блок початкового завантаження ( Boot Record)

Блок початкового завантаження (завантажувач) – програма, яка завантажує два модулі операційної системи:

  1.  модуль розширення базової системи введення-виведення (IO.SYS);
  2.  модуль опрацювання переривань (MSDOS.SYS). Boot Record завжди розміщується на нульовій доріжці першого сектора кожного системного чи жорсткого диску.

Модуль розширення базової системи введення-виведення (Io.sys)

Файл IO.SYS є доповненням до базової системи введення-виведення. Він завантажується до оперативного запам'ятовуючого пристрою (ОЗП) комп'ютера завантажувачем операційної системи (Boot Record) і залишається в пам'яті постійно. Модуль розширення базової системи введення-виведення дозволяє під’єднувати до BIOS драйвери, які обслуговують допоміжні зовнішні пристрої. Про необхідність під’єднання до ОС драйверів зовнішніх пристроїв повідомляється у файлі конфігурації операційної системи CONFIG.SYS, який опрацьовується файлом IO.SYS.

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

Модуль опрацювання переривань (Msdos.sys)

Модуль опрацювання переривань є основним модулем операційної системи. Він забезпечує взаємодію з програмами користувача. Файл MSDOS.SYS завантажується до ОЗП комп'ютера завантажувачем і залишається там постійно.

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

Командний процесор (Command.com)

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

  1.  Прийняття та синтаксичний розбір вказівок, що вводяться з клавіатури або з командного файлу.
  2.  Виконання внутрішніх вказівок ОС.
  3.  Завантаження і виконання зовнішніх вказівок ОС і прикладних програм користувача (які знаходяться у файлах, що мають розширення .СОМ; .ЕХЕ; .ВАТ).

Зовнішні вказівки

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

Драйвери зовнішніх пристроїв

Драйвери пристроїв – це спеціальні програми, які доповнюють систему введення-виведення і забезпечують обслуговування допоміжних зовнішніх пристроїв або нестандартне використання пристроїв. Драйвери зберігаються у вигляді файлів, імена яких мають розширення .SYS. Вони завантажуються до пам'яті комп'ютера при завантаженні операційної системи, їх імена вказуються в спеціальному файлі CONFIG.SYS.

Завантаження операційної системи

Для виконання початкового завантаження ОС необхідно, щоб на дисководі А для гнучких магнітних дисків було встановлено системний диск (диск з записаною операційною системою), або щоб комп'ютер мав жорсткий диск з записаною на ньому операційною системою. Завантаження ОС виконується автоматично при вмиканні персонального комп'ютера. Це так зване “холодне завантаження”. “Гаряче перезавантаження” відбувається за допомогою одночасного натиснення трьох клавіш <Ctrl>+<Alt>+<Del>.

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

Наприклад:

С:\>

A:\DOS>

Запрошення є сигналом для користувача про правильність функціонування операційної системи та її готовності виконувати вказівки. Вигляд запрошення можна змінити за допомогою вказівки PROMPT.

Процес завантаження ОС полягає в наступному:

  1.  Активізується програма BIOS, яка перевіряє обладнання. Якщо знаходиться помилка, то виводиться відповідне повідомлення. Якщо помилка критична, то процес завантаження припиняється. Якщо ж помилка не критична, то користувачеві надається можливість продовжити процес завантаження.
  2.  Після закінчення тестування програма BIOS завантажує до ОЗП програму-завантажувач (Boot Record) і передає їй управління.
  3.  Завантажувач переглядає каталог системного диску і знаходить файли IO.SYS та MSDOS.SYS і завантажує до ОЗП ці модулі.
  4.  Управління передається модулю IO.SYS, який шукає файл конфігурації системи CONFIG.SYS, читається до пам'яті та аналізується. У відповідності з вказівками, які містяться в цьому файлі, завантажуються драйвери пристроїв і встановлюються параметри операційної системи. Якщо файл CONFIG.SYS відсутній, то всі параметри встановлюються за замовчуванням, тобто встановлюється стандартна конфігурація операційної системи.
  5.  Модуль IO.SYS передає управління модулю MSDOS.SYS, який встановлює таблиці переривань і проводить підготовку до завантаження командного процесора.
  6.  Модуль IO.SYS завантажує файл командного процесора COMMAND.COM і передає йому управління. Файл COMMAND.COM виконує командний файл AUTOEXEC.BAT, в якому записуються вказівки і програми, які виконуються при кожному запускові комп'ютера.
  7.  Після виконання файлу AUTOEXEC.BAT процес завантаження ОС закінчується, і на екрані висвітлюється запрошення, яке вказує, що операційна система готова до прийому вказівок.




1. тема вентиляции картера 3 ~ трубопровод отвода картерных газов из лотка; 4 ~ трубопровод жидкостно
2. ТЕМА ЗАНЯТИЕ 41
3. Анализ ежегодных посланий Президента Российской Федерации органам государственной власти
4. Контрольная 1 по английскому языку для студентов факультета экономики и права гр
5. Работа с финансовыми функциями Excel
6. Реферат- Разграничение косвенного умысла и преступного легкомыслия
7. Реферат- Розвиваючі ігри
8. к которой отнесена анализируемая проблема высказывание мыслителя; содержать относительно узкий круг
9. Київський політехнічний інститут ПРОФСПІЛКОВЕ БЮРО СТУДЕНТІВ ФАКУЛЬТЕТУ ІНФОРМАТИКИ ТА ОБЧИСЛЮВАЛЬ
10. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата економічних наук ХАРКІВ ~
11. Содержание и технология метода мозгового штурма
12. 13 Руслан Хутиев 03
13. 50 живопись Физра Воинская строение 1 Скульптура Д
14. на тему- Формирование межевание и постановка на кадастровый учёт земельных участков на территории МО Ишеев
15. вариант инвестиционного проекта который характеризуется следующими потоками платежей млн р
16. тематике 3 класс май 2009г
17. Болезни копыт1
18. воздухвоздух в горизонтальной плоскости на заданной высоте при действии нормальной и боковой перегрузок.html
19. статья След статья Внешние займы позволяют стране инвестировать и потреблять сверх того что производит е
20. Пояснительная записка6