- •Системне програмне забезпечення Конспект лекцій з дисципліни „Системне програмне забезпечення”
- •2 Концептуальні основи ос.....................................................................................16
- •2.4 Концепція віртуалізації....................................................................................28
- •2.5 Концепція переривань.....................................................................................30
- •5 Операційна система unix....................................................................................57
- •1 Операційні системи та середовища
- •Основні означення та терміни
- •Сучасні системи програмування
- •Віртуальний адресний простір
- •Операційні системи для персональних комп’ютерів
- •1.5 Принципи побудови ос
- •1.5.1 Модульність
- •1.5.2 Функціональна вибірковість
- •1.5.3 Генерованость ос
- •1.5.4 Функціональна надлишковість
- •1.5.5 Незалежність програм від зовнішніх пристроїв
- •1.5.7 Відкритість та нарощуваність ос
- •1.5.9 Забезпечення безпеки обчислень
- •1.5.10 Принципи проектування ос
- •2 Концептуальні основи ос
- •2.1 Процеси
- •2.1.1 Означення процесу та граф його існування
- •2.1.2 Класифікування процесів
- •2.2 Ресурс
- •2.2.1 Означення ресурсу
- •2.2.2 Властивості та класифікування ресурсів
- •2.3 Система керування процесами
- •2.3.1 Дворівнева система керування процесами
- •2.3.2 Дисципліни розподілу процесів
- •2.4 Концепція віртуалізації
- •2.5 Концепція переривань
- •3 Захищений режим 32-розрядних процесорів
- •3.1 Основні поняття захищеного режиму
- •3.2 Сегментний механізм віртуалізації пам’яті
- •3.3 Сторінковий механізм віртуалізації пам’яті
- •4 Архітектура операційних системWindows
- •4.1 Архітектура ос Windows 98se
- •4.1.1 Драйвери пристроїв
- •4.1.2 Диспетчер віртуальних машин
- •4.1.3 Встановлювані файлові системи
- •4.1.4 Диспетчер конфігурування
- •4.1.5 Диспетчер драйверів wdm
- •4.1.6 Ядро Windows 98se
- •4.1.8 Оболонка ос
- •4.1.9 Стандартні програми Windows 98se та додатки
- •4.2 Мережна підтримка ос Windows 98se
- •4.2.1 Взаємодія відкритих систем
- •4.2.2 Мережна архітектура Windows 98se
- •4.3 Апаратна підтримка захисту ос
- •4.4 Особливості розподілу оперативної пам’яті в ос Windows nt
- •4.5 Архітектура Windows 2000
- •5 Операційна система unix
- •5.1 Загальна характеристика ос сімейства unix
- •5.2 Архітектура операційної системи unix
- •5.3 Функціонування ос unix
- •5.3.1 Ядро системи
- •5.3.2 Файлова підсистема
- •5.3.3 Підсистема керування процесами та пам’яттю
- •5.3.4 Підсистема введення/виведення
- •5.3.5 Користувачі ос unix
- •5.4 Поняття процесу в ос unix
- •5.4.1 Компоненти процесу
- •5.4.2 Ідентифікатор процесу
- •5.4.2.1 Ідентифікатор батьківського процесу
- •5.4.2.2 Ідентифікатор користувача та групи
- •5.4.3 Стани процесу в unix
- •5.4.4 Керування процесами
- •5.5 Права доступу ос unix
- •5.5.1 Поняття прав доступу користувача
- •5.5.2 Основні біти доступу
- •5.5.3 Додаткові біти доступу
- •5.5.4 Сполучення бітів доступу
- •5.6 Мережні можливості ос unix
- •Список рекомендованої літератури:
Сучасні системи програмування
Система програмування – це комплекс програмних засобів, призначених для кодування, тестування, налагоджування програмного забезпечення. Вона вміщує такі основні складові частини, як транслятори, компілятори, редактори, налагоджувачі, компонувачі, бібліотеки.
Транслятор – це програма, яка переводить вхідну програму, що написана початковою мовою у еквівалентну до неї програму вихідною мовою. Транслятор – це частина системного програмного забезпечення обчислювальної системи; він складається з набору машинних команд та даних і виконується комп’ютером, як і всі інші програми, у межах ОС.
Компілятор – це програма, яка перекладає вхідну програму на еквівалентну до неї об‘єктну програму мовою машинних команд чи мовою асемблера. Будь-який компілятор є транслятором, а не навпаки. Результуюча програма компілятора називається об’єктною програмою або об’єктним кодом. Файл, до якого вона записана, називається об’єктним файлом. Така програма не може безпосередньо виконуватись на комп’ютері, тому що вона не прив’язана до конкретної області пам’яті, де мають розташовуватись її код та дані.
Інтерпретатор – це програма, яка сприймає вхідну програму вхідною мовою й виконує її. Інтерпретатор аналізує текст вхідної програми, але не породжує результуючу програму, а одразу виконує вхідну відповідно з її змістом, заданим семантикою мови, якою вона написана. Результатом роботи інтерпретатора є результат, заданий змістом програми, якщо вона є правильна синтаксично, і повідомлення про помилку, якщо програма написана синтаксично помилково. Інтерпретатор перетворює програму на мову машинних кодів, оскільки без цього виконання її на комп‘ютері є неможливе, але ці коди породжуються, виконуються й знищуються інтерпретатором. Користувач бачить результат виконання цих кодів, тобто результат виконання вхідної програми.
Текстові редактори – це програми, які дозволяють створювати, змінювати, опрацьовувати вхідні тексти програм мовами високого рівня. Виникнення інтегрованих середовищ дозволило включити текстові редактори безпосередньо до їхнього складу. З розвиненням інтегрованих середовищ, які об’єднали можливості текстових редакторів та командну мову компілювання, процеси написання текстів і створювання програмного забезпечення стали єдиним цілим.
Налагоджувачі – це засоби покрокового налагодження програм безпосередньо за їхнім вхідним текстом внаслідок об’єднання можливостей налагоджувача та редактора.
Компонувачі – це програми, призначені для сполучування між собою об’єктних файлів та файлів бібліотек. Результатом роботи компонувача є виконуваний файл, який вміщує весь текст результуючої програми мовою машинних кодів. Компонувач обирає з першого об’єктного модуля програмну секцію та привласнює їй початкову адресу; програмні секції решти об’єктних модулів дістають адреси відносно першої в порядку їхнього написання. Одночасно з поєднанням текстів окремих модулів програм до них долучаються секції даних, таблиці ідентифікаторів та зовнішніх імен. Дозволяються міжсекційні посилання та посилання на бібліотекі. Зазвичай компонувач формує простий програмний модуль, створений як єдине ціле. У більш складних випадках компонувач може створювати програмні модулі з оверлейними структурами, об’єктні модулі бібліотек, модулі бібліотек, які долучаються динамічно.
Жодна програма, створена компонувачем, не може бути виконана, тому що вона працює не з реальними адресами комірок пам’яті, а з відносними адресами. Компонувач створює для програми простір відносних адрес чи імен. Тому потрібні засоби, які виконували б перетворювання відносних адрес на реальні адреси фізичної пам’яті безпосередньо в момент запускання програми на виконання. Цей процес називається трансляцією адрес і в сучасних обчислювальних системах виконується апаратно за підтримкою 32-розрядних процесорів методами сегментної, сегментно-сторінкової та сторінкової організації пам‘яті. У момент запускання програми операційна система для виконання трансляції адрес завантажує до оперативної пам’яті спеціальні системні таблиці дескрипторів. Ці функції цілковито належать ОС і не виконуються в системах програмування.