МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
КОНСПЕКТ ЛЕКЦІЙ 8 страницаVxD у Windows 98 відслідковують ресурси, що виділяються їм окремо для кожного потоку коду (thread), тому система може коректно звільнити ресурси, що виділені драйвером потокові, який аномально завершився, та відмінити операції, які вимагалися цим потоком і очікували черги на виконання.
Вдосконалення розділу системних ресурсів У Windows 3.1 часто з’являються повідомлення при роботі з декількома продуктами: „Out of Memory” (недостатньо пам’яті) не дивлячись на те, що сотні Кбайтів RAM вільні. Насправді ОС просто не може виділити функції Windows API, що викликається пам’ять в спеціальній області стеку. Windows 3.1 підтримує стеки (heaps) GDI та USER (по 64 Кб), які використовуються для зберігання інформації про об’єкти, що виділяються при викликах функцій Windows API. Саме кількість вільного місця у цих стеках фігурує під іменем “вільних системних ресурсів” у вікнах (Program Manager/Help/About). Якщо довільний з цих блоків заповнюється, повідомлення „Out of Memory” буде виникати навіть при значній кількості вільної основної пам’яті. Для того, щоб обійти це штучне обмеження системних ресурсів, ряд структур, що розміщуються Windows 3.1 в 16–розрядних стеках GDI та USER, в Windows 98 переміщені у 32–розрядні стеки. Таким чином, вивільнити додаткове місце для створення нових структур. Всі дані не були виключені з 16–розрядні стеки тільки тому, що в такому випадку була би втрачена сумісність з деякими Windows–продуктами, які для підвищення продуктивності маніпулюють вмістом стеків напряму, обходячи механізм Windows API. Так дескриптори меню і вікон були переміщені у 32–розрядний стек USER, що дозволило збільшити максимально можливу кількість таких структур з 200 у Windows 3.1 до 32767 дескрипторів меню та 32767 дескрипторів вікон на кожний процес у Windows 98.
VCACHE – 32–розрядний дисковий кеш У Windows 98 32–розрядний дисковий кеш VCACHE заміняє 16–розрядний Smart Drive, що поставляється разом з Windows 3.1 та MS–DOS. Windows 98 пропонує більш розумний алгоритм для обміну інформацією з диском, що дає кращі показники кешування при читанні. Також забезпечується кешування інформації для дисків CD–ROM та мережених дисків. Значна перевага VCACHE в порівнянні з Smart Drive в тому, що розмір RAM, що захоплюється кешем, міняється динамічно, в залежності від кількості вільної пам’яті в системі. Користувачам більше не треба відводити певну ділянку RAM під кеш, Windows 98 автоматично виділяє або віднімає пам’ять у кешу на підставі системних міркувань.
Покращена організація віртуальної пам’яті У Windows 3.1 користувачам треба було використовувати велику кількість опцій при організації віртуальної пам’яті і файлу підкачки (swap file). Їм треба було вибирати між тимчасовим і постійним файлом, задавати розмір цього файла і вирішувати чи варто використовувати 32–розрядний доступ до диску. Позитивним у тимчасовому файлі було те, що Windows створювала його в момент свого завантаження і знищувала його після виходу із системи. Таким чином, користувачі могли економити місце на диску. Навпаки, постійний файл підкачки весь час займав місце на диску і окрім того повинен був складатись із неперервного ланцюжка кластерів, але він забезпечував більш високу продуктивність. Реалізація механізму віртуальної пам’яті в Windows 98 не тільки значно спрощує для користувача задачу конфігурування, але і суміщає в собі позитивні сторони тимчасового та постійного файлів підкачки. Тепер цей файл динамічний, тобто він може міняти свій розмір в залежності від потреб ОС. Крім того 32–розрядна файлова система Windows 98 дозволяє використовувати фрагментований дисковий простір для файлу підкачки практично без втрат у продуктивності.
База реєстрації даних Центр де Windows 98 зберігає потрібну інформацію називається – база реєстрації даних (системним реєстром). Це мозок пам’яті Windows 98. За його допомогою ОС керує інформацією про апаратні та програмні засоби, про користувачів та про процеси інсталяції. До складу системного програмного забезпечення Windows 98 входить програма Regedit.exe за допомогою якої редагується база реєстрації даних. Windows 98 вона завантажує файли SYSTEM.DAT та USER.DAT із Windows–каталогу та представляє їх вміст у загальному вікні. Ці файли вміщують інформацію про інстальовані апаратні та програмні засоби, а також драйвери зовнішніх пристроїв і системні установки. Тому ці файли є центральними блоками конфігурацій керування Windows 98. В вікні програми Regedit.exe відображаються основні ключі системного реєстру. До найважливіших відносяться: HKEY_LOKAL_MASHINE та HKEY_USERS – головні реєстраційні ключі. Інші чотири, які знаходяться на одному каталоговому рівні, тільки посилаються на деякі важливі області в середині обох головних ключів. Реєстраційні ключі можуть розгалужуватись на підключі, які також можуть розгалужуватись. Тому файлова структура Бази реєстраційних даних задається досить складно. Але вона структурована і логічно завершена.
Ключі що бачимо в головному вікні програми Regedit, розділяються на два головних ключа і на файли SYSTEM.DAT та USER.DAT.
Для безпеки Windows 98 створює при кожному успішному запуску системи резервні копії DAT–файлів SYSTEM.DA0 і USER.DA0. Вони з атрибутом “hidden” і знаходяться в каталозі Windows. Без інформації, що міститься в БРД Windows 98 навіть не запуститься. Якщо випадково будуть знищені або зіпсовані файли SYSTEM.DAT та USER.DAT, то систему можна відновити використати резервні копії файлів. Для відновлення системного реєстру Windows 98 запускається в режимі DOS або із стартової дискети та перейменовуються файли: SYSTEM.DA0 → SYSTEM.DAT та USER.DA0 → USER.DAT. Для відновлення в Windows 98 є спеціальна програма ERU.EXE (Emergency Recovery Unit) – модуль аварійного відновлення. Ця програма заново створює БРД з останніх збережених файлів. Перед використанням програми ERU.EXE необхідно зберегти на дискеті файли з розширенням: DAT, SYS, INI та autoexec.bat.
Основні реєстраційні ключі HKEY_LOCAL_MASHINE – містить всі дані про інстальовані апаратні засоби, їх налаштування, системні установки і інше. Ця інформація дійсна для всіх користувачів комп’ютеру. HKEY_CLASS_ROOT – містить OLE–записи, зв’язки, програми, що відповідають типам файлів і іншу інформацію. HKEY_CURRENT_CONFIG – посилається на ключ HKEY_LOCAL_MASHINE_CONFIG. Тут знаходиться інформація про конфігурацію апаратних засобів комп’ютера. HKEY_USERS – головний ключ для всієї інформації, що специфічна для користувачів, такої як установка робочої поверхні (Desktop), інформація про користувача і та ін. Для кожного користувача існує власний підключ і різноманітна інформація про нього. Hkey_Dyn_Data – вміщує інформацію про інстальовані пристрої, включаючи повідомлення про проблеми і стани інсталяції.
Windows XP Це перша кардинально змінена ОС після Windows 95. Побудована на основі ядра Windows 2000 з метою підвищення стійкості, оскільки вона краще протидіє збоям при одночасному виконанні декількох складних задач. Мінімальні системні вимоги: Процесор Intel Pentium II (або сумісні) ≥ 300МГц; 128Мбайт ≤ RAM ≤ 4Гбайт; SVGA PnP монітор; миша; накопичувач CD–ROM або DVD‑ROM ≥ 12Х; мережений адаптер (для реалізації мережених функцій); доступ в Internet. Оптимальні результати на машинах ≥ 500 МГц. Зміни в Windows XP такі ж глибокі, як і при переході від Windows 3.1 до Windows 95.
Варіанти модифікацій ОС Windows XP Windows XP Professional – орієнтований на малі компанії і корпорації. Сюди входять: ‑ додаткові мережеві можливості; – захист корпоративних даних шляхом авторизації доменів; – засоби групової роботи; – вдосконалені функції для мобільних ПК та керування файлами; – одночасна робота на двох моніторах; – підтримка двохпроцесорних комп’ютерів. Корпоративний користувач – орієнтований на підвищення ефективності праці в невеликих корпораціях. Забезпечує: ‑ автоматичне відновлення системи; ‑ кращі правила групової роботи; ‑ брандмауер Internet Connection Firewall; ‑ Remote Desktop; ‑ мобільні профілі користувачів; ‑ Windows NetMeeting3. Співпрацівник малого офісу – орієнтований на налагодження зв’язку з мережею. Забезпечується: ‑ динамічною модернізацією; ‑ “Майстром” організації допоміжних мереж; ‑ “Майстром” з’єднань з Internet; ‑ “Майстром” переходу до нової версії; ‑ “Майстром” фотодруку; ‑ “Майстром” публікацій та збереження даних в Web. Домашній користувач – орієнтований для розваг та домашнього використання. Має реалізовані: ‑ покращені ТВ–технології; ‑ вдосконалену платформу для ігор; ‑ сумісне використання з’єднань з Internet (Internet Connection Sharing–ICS); ‑ вбудований Microsoft Internet Explorer; ‑ вбудовані функції запису CD; ‑ Windows Media Player 8.
Нові характеристики реалізовані в Windows XP 1. Інструкція / інтерфейс: - “майстер” інсталяції/міграції; - “майстер” для роботи з апаратними засобами; - декілька записів обміну користувачів; - швидке переключення користувача; - новий вигляд піктограми та меню. 2. Сумісність/модернізація: - автоматична модернізація; - режим програмної сумісності; - покращена сумісність з апаратними пристроями; - стійка архітектура ядра; - помічник пошуку. 3. Зв’язок: - “майстер” організації домашньої мережі; - Internet Connection Sharing (ICS); - мережевий міст; - безпека IP; - правила групової роботи. 4 Для корпоративних користувачів: - дистанційний доступ; - робота з декількома моніторами; - мережевий монітор; - динамічний диск; - сумісність з декількома мовами. 5. Адміністративні функції: - робота з віддаленими комп’ютерами; - відновлення системи; - повернення до попередньої версії драйвера; - звіти про помилки; - довідково–консультаційна служба. 6. Інтернет: - попередження про сторонні файли; - брандмауер Internet Connection Firewall; - “майстер” публікації в Web; - нові способи роботи і зовнішній вигляд. 7. Розваги: - Media Player 8; - Movie Maker; - вдосконалена платформа для ігор; ‑ вбудована функція запису CD; - вдосконалені ТВ-служби. Режим Fast User Switching забезпечує одночасно декілька сеансів зв’язку (але для кожного запису обліку – 64 Мбайт) Кожний користувач має права доступу до власних даних. Записи обліку можуть бути захищені паролем. Network Bridge може побудувати мережу на базі різних технологій. Compatibility Mode забезпечує виконання старих програм в новій ОС. Windows XP імітує Windows 95/98, 2000, NT 4.0 в залежності від цільового набору драйверів прикладної програми. Параметри Compatibility Mode можна зберегти, щоби кожний раз запускати програми в потрібному режимі. Device Driver Rollback – функція повернення до початкової конфігурації, вона виконує повторну інсталяцію заздалегідь працеспроможного драйвера пристрою, якщо новий драйвер не працює. Функція Automatic Update – перевіряє комп’ютер, а потім вміщує у Web нові драйвери і навіть забезпечує успішну інсталяцію Windows XP. Користувач, зберігаючи повний контроль за процесом, може прийняти або відкинути модернізацію, або відкласти її. Якщо користувач згоден із змінами, то завантаження із мережі відбувається у фоновому режимі, в низькопріорітетному потоці і процес обновлення не впливає на виконання прикладних програм. Розробники Windows XP повністю відмовились від старого програмного коду DOS, 16–розрядних Windows та Windows 95, який був частиною кожної орієнтованої та масового споживача версії Windows (аж до Windows ME). Windows XP створено на базі ядра Windows 2000. Це перша єдина ОС, як для масового споживача, так і для корпоративного застосування. Найважливіша зміна – перероблений інтерфейс користувача.
Продуктивність Не так часто відбуваються збої, швидше виконуються процедури початкового завантаження, відновлення роботи і запуску прикладних програм, інтелектуальні засоби і само настройки переміщають програмні файли для досягнення оптимальної швидкодії. Windows XP – ОС із функціями само настройки. Вона адаптується, як до кожного користувача та і до його програм і файлів. У періоди очікування ОС динамічно переміщає файли програм для їх оптимального розміщення на жорсткому диску і тим самим скорочує затримки при доступі до них. Такий підхід міг би зменшити час завантаження прикладних програм і відкриття файлів (теоретично).
ОС UNIX Початок розробки 1965 рік Multics. 1971 році UNIX на PDP-11 в 1973 році переписана на Ci. На початку 1984 року інстальована приблизно на 100 000 комп’ютерах. (BSD – Berkeley Software Distribution; SCO – Santa-Cruz Operation; Linux). Переваги та популярність пояснюються такими фактами: 1. Система написана на мові високого рівня Ci, завдяки цьому її легко читати, розуміти, модифікувати, переносити. 2. Наявність досить простого інтерфейсу користувача, який має можливість надавати користувачу всі необхідні послуги (зараз є інтерфейс аналогічний Windows 98, X-Windows та інше). 3. Є досить прості засоби, які дозволяють створювати складні програми з простіших. 4. Наявність ієрархічної файлової системи, яка легка у використанні та ефективна в роботі. 5. Забезпечується узгодження форматів у файлах, робота з послідовним потоком байтів, завдяки чому отримуємо більш легке читання прикладних програм. 6. Наявність простого інтерфейсу з периферійними пристроями. 7. Система є багатокористувацькою, багатозадачною, кожний користувач може одночасно виконувати декілька процесів. (Працює в одно-процесорному, багатопроцесорному та багатомашинному режимах). 8. Архітектура комп’ютера закрита від користувача який працює під UNIX, що полегшує процес написання програми, що працюють на різних конфігураціях апаратних засобів. 9. UNIX підтримує довільну мову програмування, для якої є транслятор та забезпечується системний інтерфейс, що встановлює відповідність між користувацькими запитами та набором запитів, що прийняті в UNIX.
Ядро ОС UNIX Ядро UNIX виконує функцію головного організатора її роботи. Воно виконує: - керує послідовністю виконання процесів; - резервує основну пам’ять та простір на дискетах; - керує обміном даними між основною пам’яттю та периферійними пристроями; - приймає від процесів запити на обслуговування. Ядро – резидентна, в основній пам’яті, частина ОС. Ядро UNIX реалізує відносно обмежений набір функцій. Воно не реалізує жодної функції, яка безпосередньо служить користувачу. Для цього існують утиліти, які є посередниками між користувачем та ядром. Розробляти, експлуатувати та адаптувати програми – утиліти набагато простіше, ніж ядро системи. Ядро UNIX реалізовано приблизно на 10 000 операторах мови Ci та 1 000 операторах на мові Асемблеру (Основна ідея – мобільність). Ядро складається з двох секцій: 1) керування процесами; 2) керування ресурсами (пристроями). Перші, резервують ресурси, визначають послідовність виконання процесів та приймаються і обслуговуються запити від них. Другі, контролюють передачу даних між основною пам’яттю та периферією. Мобільність полягає в тому, що на різних типах комп’ютерів можуть використовуватись практично ідентичні секції керування процесами. Секція керування пристроями, що призначена для роботи на конкретному комп’ютері, вміщує по одному модулю на кожний периферійний пристрій, підключений до комп’ютера (модуль – драйвер). При підключенні пристрою нового типу треба додавати новий драйвер.
Генерування ОС Генерування ОС – це процес формування конфігурації ОС UNIX, що відповідає деякому заданому набору периферійних пристроїв та деякому комплексу можливостей, що вибираються по замовленню. Основна робота, що виконується при генерації – це створення списку, що вміщує точний опис апаратних та програмних засобів. Ядро UNIX – це не проста послідовна програма. Воно вміщує декілька важливих таблиць, які використовуються для координації взаємопов’язаних потоків, що повинні виконуватися. Це є приклад програми структура якої визначена даними, тому її вивчення слід починати з інформаційних таблиць. Більша частина роботи ядра – це пошук в таблицях і їх модифікація. У довільний момент часу комп’ютер виконує або програму користувача (процес), або процес ОС. Деякі механізми ОС можуть виконувати запит на переключення з режиму користувача в режим ядра. 1. Системний годинник. Періодично формується переривання, тобто сигнал, що переключає комп’ютер на виконання спеціальної службової програми. Ця програма, обслуговування системного годинника, виконує переоцінку пріоритетів процесів і таким чином може відбутися зміна процесу, що виконується. 2. Системний виклик. Якщо у програми користувача виникає необхідність в послугах ОС, вона генерує системний виклик. Як наслідок – перехід з режиму користувача в режим ядра. Системні виклики, що виконують операції вводу/виводу, досить часто приводять до зупинки процесу, який ініціював виклик, на час передачі даних. Під час паузи може виконуватись інший процес користувача. Часто ініціюють роботу механізму розподілення часу. 3. Обслуговування периферійних пристроїв вводу/виводу. Для нормального продовження роботи процесу, що запустив операцію вводу/виводу, після закінчення передачі інформації виробляється переривання. Воно звичайно приводить до змін стану різних елементів, в таблицях і може ініціювати наступний обмін. ОС UNIX підтримує у користувача дві ілюзії: 1. Файлова система розміщена в конкретному місці носія. 2. Процес “живе” своїм життям.
Процеси Ядро UNIX існує для виконання потреб процесів. З точки зору процесів, ядро це витрати, з якими треба миритись. З точки зору ядра, процеси – це каталогізовані структури даних, над якими за певними правилами виконуються маніпуляції. Процес – це програма під час виконання в деякий момент часу довільної програми може відповідати один або декілька процесів, або не відповідати жодний. Процес – це об’єкт, що враховується в спеціальній таблиці ядра системи. Найбільш важлива інформація про процес зберігається в двох місцях: - в таблиці процесів; - в таблиці користувача (контекст процесу). Перша – завжди знаходиться в пам’яті і містить на кожний процес по одному елементу, в якому відображається точний стан процесу: – розташування процесу (адреса в пам’яті або адреса свопінгу); – розмір; – ідентифікатори процесу; – ідентифікатори користувача що запустив процес. Менш актуальна інформація про процес зберігається в таблиці користувача. Така таблиця існує для кожного активного процесу і тільки до неї можуть безпосередньо звертатись програми ядра. При всіх ситуаціях, що виникають при виконанні процесу, відбувається звертання до його таблиці. Створення процесу включає ініціалізацію відповідного контексту та сегмента таблиці процесів а також формування даних та тексту цього процесу. Зміна стану (виконання, очікування, повернення в пам’ять та інше) та отримання стану від паралельного процесу – все це фіксується в таблиці процесів.
Якщо процес складається з чистих машинних кодів (дані існують окремо), то структура даних буде наступна.
Після завершення деякого процесу відповідний елемент таблиці звільняється для того, щоби потім його використовували для інших процесів. Таблиця процесів резидентна в основній пам’яті, що забезпечує ядру можливість реагувати на зміни стану процесу, що тимчасово зберігається на диску. Справа в тому, що деякі події, що стосуються процесу, можуть відбуватися в той час, коли він пасивний. Наприклад, процес може “спати” в очікуванні вводу/виводу. Завершення процедури обміну приводить до того, що процес “прокидається” і виконується відмітка про його готовність до виконання. Вся інформація, необхідна для керування “прокиданням” процесу, знаходиться в таблиці процесів. Ядро резервує по одному контексту на кожний активний процес. В цій таблиці інформація, що необхідна під час виконання процесу. Якщо процес призупинено, контекст стає недоступним та не модифікованим. Окрім того, оскільки ця структура даних є складовою частиною області даних кожного процесу, то при виконанні свопінгу переписується на диск разом з усім образом процесу. Біжуча інформація про процес в основному вміщується в його контексті. Сюди записуються: – ідентифікаційні номера користувача і групи, що призначені для визначення привілеїв доступу до файлів; – посилання на системну таблицю файлів для всіх відкритих процесом файлів; – покажчик на індексний дескриптор біжучого каталогу в таблиці індексних дескрипторів; – список реакцій на різні сигнали. Для створення нових, існуючі процеси використовують два основних механізми: Fork – системний виклик (команда) для створення процесом своєї власної копії; це єдиний спосіб для збільшення числа процесів; після його виконання є два процеси, породжуючий (батьківський, джерело) та породжений (дочірній, приймач). Основна відмінність між ними в тому, що вони мають різні власні ідентифікатори та ідентифікатори батьківських процесів. Обидва процеси розділяють між собою відкриті файли і кожен з них може визначити чи він є батьківським чи дочірнім. Exec – для перетворення процесу, що ініціював цей системний виклик. У цьому випадку міняється не кількість процесів, а їх якість. Тобто після виклику exec процес, що ініціював цей виклик, замінюється деяким іншим. Ідентифікатор процесу та відкриті файли при цьому залишаються незмінними. Звичайно для створення дочірнього процесу з новим ідентифікатором послідовно викликають fork, а потім exec. Саме в такий спосіб запускаються інтерпретатори shell та довільна викликана програма. Пара fork–exec, як правило, працює разом із системним викликом wait. Wait дозволяє процесу–батьку дочекатись завершення породженого ним процесу.
Початкове завантаження. Процеси 0 та 1 Завантаження ядра системи в основну пам’ять та її запуск називають початковим завантаженням. Ця процедура виконується при: 1. Увімкненні комп’ютера. 2. Якщо відбувся крах системи. 3. Система була свідомо зупинена. Початкове завантаження відбувається в декілька етапів. 1–й етап. Спочатку з диску апаратно читається в пам’ять вміст першого блоку. Перший блок файлової системи резервується для запису спеціальної короткої програми, що виконує початкове завантаження. Після зчитування ця програма виконується. При виконанні ця коротка програма–завантажувач шукає та читає в пам’яті файл з іменем “unix”, що знаходиться в кореневому каталозі (”/unix”). Цей файл містить ядро ОС в машинних командах. Він створений шляхом компіляції та зв’язку файлів, що включають вхідні коди ОС. 2–й етап. Другий етап початкового завершення починається з читання та наступного виконання файлу “/unix”. Перша функція ядра – ініціалізація декількох апаратних інтерфейсів. Це стосується системного годинника та диспетчера пам’яті. Ядро формує також початкові значення декількох структур даних в тому числі набори буферів блоків, списки символів, буфери індексних дескрипторів та змінну, що показує розмір основної пам’яті. Після завершення цих операцій ядро починає ініціалізувати процес 0. Процес 0, на відміну від інших процесів, що ініціалізуються функцією fork, створюється ядром шляхом резервування пам’яті для його контексту та занесення відповідних посилань в перший елемент таблиці процесів. Процес 0 є унікальним з таких причин: 1. Він не має кодового сегменту і складається тільки з контексту. Всі інші процеси містять код, який виконує певні функції. Вони є певними образами, отриманими в результаті компіляції та наступного виконання деякої програми. Процес 0 не є образом, це просто структура даних, що використовується ядром. 2. Процес 0 існує на протязі всього періоду роботи системи. 3. Процес 0 – це дійсно системний процес, він є активним виключно в той час, коли процесор знаходиться в режимі ядра. 4. Процес 0 називається процесом виключно тому, що він є каталогізованим в таблиці процесів, але це тільки структура даних ядра. Після створення процесу 0 система копіює його і створює процес 1. При цьому виконуються ті ж процедури, що і при виконанні користувачем системного виклику fork. Алгоритм створення процесу 1 в значній степені нагадує стандартну процедуру створення процесів, але дещо спрощену. Спочатку процес 1 є точною копією процесу 0, у нього немає області коду. Після створення процесу 1 відразу збільшується його розмір. Це створюється тими самими підпрограмами, що і при обробці системного виклику break (збільшення розміру виділеної пам’яті). До цього моменту обидва процеси: 0 та 1 тільки повинні бути в майбутньому виконані. Далі процесу 1 надається життєздатність, тобто у тільки що створену область копіюється дуже проста програма. Ця програма складається з машинних кодів, що реалізують системний виклик exec, необхідний для виконання програми “/etc/init”. Таким чином, ініціалізація процесів 0 та 1 завершена. Процес 0 – це структура даних користувача, за допомогою якої ядро організує мультипрограмування та керує процесами. Процес 1 дуже подібний на реальний образ процесу, отриманого в результаті компіляції деякої програми, хоча насправді вона спеціальним чином створена ядром. Після ініціалізації 0 та 1 UNIX переходить до виконання програми диспетчера. На цьому ініціалізація ядра завершається. Але ініціалізація системи в цілому тільки починається. Програма – диспетчер відповідає за прийняття рішень про те, який процес повинен бути виконаний, для якого потрібен стопінг на диск, а для якого – свопінг з диску. При першому виклику диспетчера прийняти рішення неважко, тому що свопінга немає і тільки один процес повинен виконуватись – процес 1. Робота процесу 1 приводить до негайної видачі системного виклику exec, який замінить команди процесу 1 кодом, що знаходиться у файлі ”/etc/init”. Тепер, коли цей процес отримав свою остаточну форму він має ім’я init. Процес init настроює структури процесів системи UNIX. Звичайно він може створювати як мінімум два типи обчислювального середовища: однокористувацький та багатокористувацький. Цей процес починає свою роботу з підключення інтерпретатора команд ОС shell до системної консолі та присвоєння shell статусу привілейованого користувача. Такий режим часто називають однокористувацьким. Консоль (дисплей, клавіатура, периферія) автоматично реєструється як користувач, що зайшов з кореневими привілеями і ні по жодні лінії зв’язку вхід більше не можливий. Такий однокористувацький режим застосовується для перевірки та відновлення файлових систем, для виконання основних функцій тестування і інших дій, що вимагають монопольного використання комп’ютера.
При виході з однокористувацького режиму процес init створює багатокористувацьке середовище. З цією метою він створює процес getty для кожного активного каналу зв’язку. Init також продовжує процес shell для виконання команд, що зберігаються у файлі “/etc/rc”. Цей файл вміщує послідовність команд shell, що дозволяють монтувати файлові системи, запускати процеси, що слідкують за подіями, вилучати застарілі тимчасові файли та ініціювати виконання програм обміну для користувачів. Вміст файлу “/etc/rc” індивідуальний для кожної системи UNIX. Під час роботи ОС, init пасивний, в очікуванні завершення довільного з породженого ним процесів. Як тільки це відбувається, init активізується і створює нову програму getty для відповідної лінії зв’язку (Саме getty може завершитись, оскільки shell існує на протязі всього часу функціонування системи). Таким чином init не тільки створює багатокористувацьку структуру, але і підтримує її під час існування системи. Останній учасник ініціалізації системи програма getty. Кожна з цих програм очікує, коли хтось зайде в систему через визначений канал зв’язку. При виконанні такої процедури getty виконує декілька налаштувань відповідно до протоколу каналу, а потім за системним викликом exec передає керування програмі login, яка реалізує перевірку паролю. Якщо пароль коректний, то знову за допомогою виклику exec контроль передається shell, що приймає команди користувача. Після завершення роботи активізується єдина “жива” рідна програма init і послідовністю fork–exec створюється новий процес getty, що керує каналом, який очікує нового входу по даному каналу.
Файлова система UNIX Основна функція в довільній ОС – розділення простору зовнішньої пам’яті на іменовані ділянки – файли. Читайте також:
|
||||||||
|