Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ikni_KN.doc
Скачиваний:
20
Добавлен:
26.10.2018
Размер:
310.78 Кб
Скачать

4. „ Системне програмування та операційні системи ”

  • Програмно-технiчнi системи (ПТС)

Прикладне та системне програмне забезпечення, їх взаємозв'язок. Iєрархiчна декомпозицiя та абстрактнi машини. Iнтерфейси користувача. Операцiйнi системи. Оболонки. Абстрактні, віртуальні та реальні машини, їх взаємозв’язок. Віртуальні машини та ОС. Формальнi системи. Системи програмування. Типовi класи задач (обчислювальнi, управлiння, iнформацiйнi). Ефективнiсть функцiонування ПТС.

  • Технiчнi засоби ПТС

Структура ЕОМ. Класифiкацiя ЕОМ та систем на їх основi. Особливостi реалiзацiї обчислювального процесу для рiзних типiв ЕОМ та ПТС. Архiтектура ПЕОМ. Мiкропроцесорнi ЕОМ. Подiл процесора на ВIС. Мiкропроцесорнi комплекти. Структура МПК для ПЕОМ, основнi складовi та їх призначення. Збереження iнформацii в ПЕОМ (пристрої та їx характеристики). Управління пристроями. Необхідність виділення цієї задачі в окрему. Логічні та фізичні пристрої. Iєрархiя пам'ятi та принципи її встановлення. Кешування. Периферiйнi пристрої. Пристрої вводу-виводу. Файли. Реалiзацiя обчислювального процесу в ПЕОМ. Принципи роботи ПК (операцiї, команди, данi, адреси). Структура мікропроцесора i його функцiонування. Органiзацiя обчислювального процесу (машиннi цикли, переривання, слово стану, керуюче слово). Буферизація та її використання при введенні/виведенні. Закріплені та спільні пристрої. Спулінґ. Функції прямого та послідовного доступу до фізичних пристроїв. Організація синхронного введення/виведення. Організація асинхронного введення/виведення через переривання.

  • Програмування на Асемблерi для ПЕОМ

Реалiзацiя програми на Асемблерi. Структура програми на Асемблерi. Програмний модуль. Програмнi блоки. Сегменти. Опис модуля та сегментiв. Опис та визначення даних. Коментар. Види адресування оперативної пам’яті. Однофайлова та багатофайлова організація програми. Програми типу COM та EXE.

  • Команди, їх класифiкацiя та структура

Команди передачi даних. Логічні команди та маскування. Команди порозрядного зсування даних. Аналіз результату виконання команд через регістр прапорців.

  • Арифметичнi команди над цілочисельними даними

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

  • Команди порівняння та передачi керування

Органiзацiя циклiв та повторів. Робота з масивами, рядками, структурами.

  • Модульне програмування

Програми i пiдпрограми. Процедури: визначення, виклик, повернення результату. Стеки. Збереження регiстрiв. Локальнi та глобальнi данi, органiзацiя доступу до них. Рекурсивнi процедури.

  • Переривання

Види, реалiзацiя, застосування. Програмнi та апаратнi переривання. Переривання BIOS та DOS. Команди та програми асемблера для опрацювання переривань. Вiдеофункцiї BIOS та DOS. Робота з мишею та таймером. Обробники переривань. Переривання вiд зовнiшнiх пристроїв. Переривання по таймеру.

  • Програмування введення-виведення

Периферiйнi пристрої, контроллери, спiвпроцесори, порти та канали. Загальна органiзацiя введення-виведення. Використання переривань BIOS та DOS для введення-виведення. Драйвери. Буферизацiя. Синхронне та асинхронне введення-виведення. Введення-виведення через паралельнi та послiдовнi порти.

  • Препроцесори та транслятори (компiлятори, інтерпретатори)

Програми зв'язування (компонувальники) та завантажувачi. Схеми завантаження. Моделi пам'ятi. Автоматичний пошук у бiблiотеках, керування процесом завантаження. Реалiзацiя оверлейних програм. Початкове завантаження та виконання програм.

  • Обробники переривань та резидентнi програми

Що таке резидентна програма? Загальна схема написання резидентної програми. Загальна схема написання резидентної програми на мові програмування Assembler, що сама себе вивантажує із оперативної пам’яті. Мультиплексори переривань.

  • Комплексування програм на мовах Сі та Асемблер

  • Програмування в захищеному режимi

Організація та адресування пам’яті. Додаткова, розширена та віртуальна пам’ять.

  • Структура програми для MSDOS, UNIX та Windows

Функції API-інтерфейсу та схема опрацювання подій.

  • Статичне та динамічне компонування програми

Створення та підключення DLL-бібліотек.

  • Основні концепції операційних систем

Поняття операційної системи, її призначення та функції. Історія розвитку операційних систем. Класифікація сучасних операційних систем. Функціональні компоненти операційних систем.

  • Архітектура операційних систем

Базові поняття архітектури операційних систем. Реалізація архітектури операційних систем. Операційна система та її оточення. Особливості архітектури: UNIX і Linux. Особливості архітектури: Windows XP.

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

Загальні принципи завантаження ОС. Апаратна ініціалізація комп'ютера. IBM-сумісний (compartible) комп’ютер. Завантажувач ОС. Двоетапне завантаження. Завантаження та ініціалізація ядра. Завантаження компонентів системи. Завантаження Linux. Особливості завантажувача Linux. Ініціалізація ядра. Виконання процесу init. Завантаження Windows XP.

  • Керування процесами і потоками

Базові поняття процесів і потоків. Багатопотоковість та її реалізація. Стани процесів і потоків. Опис процесів і потоків. Перемикання контексту й обробка переривань. Створення і завершення процесів і потоків. Керування процесами в UNIX і Linux. Керування потоками в Linux. Керування процесами у Windows XP. Керування потоками у Windows XP.

  • Планування процесів і потоків

Загальні принципи планування. Особливості Виконання потоків. Механізми і політика планування. Застосовність принципів планування. Види планування. Довготермінове планування. Середньотермінове планування. Короткотермінове планування. Стратегії планування. Витісняльна і невитісняльна багатозадачність. Алгоритми планування. Планування за принципом FIFO. Кругове планування. Планування із пріоритетами. Планування на підставі характеристик подальшого виконання. Багаторівневі черги зі зворотним зв'язком. Лотерейне планування. Реалізація планування в Linux. Планування процесів реального часу в ядрі. Традиційний алгоритм планування. Сучасні підходи до реалізації планування. Програмний інтерфейс планування. Реалізація планування у Windows XP. Планування потоків у ядрі. Програмний інтерфейс планування.

  • Взаємодія потоків

Основні принципи взаємодії потоків. Основні проблеми взаємодії потоків. Проблема змагання. Критичні секції та блокування.. Базові механізми синхронізації потоків. Семафори. М'ютекси. Умовні змінні та концепція монітора. Блокування читання-записування. Синхронізація за принципом бар'єра. Взаємодія потоків у Linux. Механізми синхронізації ядра Linux. Синхронізація процесів користувача у Linux. Ф'ютекси. Взаємодія потоків у Windows XP. Механізми синхронізації потоків ОС. Програмний інтерфейс взаємодії Win32 АРІ.

  • Міжпроцесова взаємодія

Види міжпроцесової взаємодії. Методи розподілюваної пам'яті. Методи передавання повідомлень. Технологія відображуваної пам'яті. Особливості міжпроцесової взаємодії. Базові механізми міжпроцесової взаємодії. Міжпроцесова взаємодія на базі спільної пам'яті. Основи передавання повідомлень. Технології передавання повідомлень.

  • Практичне використання багатопотоковості

Взаємні блокування. Умови виникнення взаємних блокувань. Запобігання взаємним блокуванням на рівні ОС. Запобігання взаємним блокуванням у багатопотокових застосуваннях. Взаємні блокування і модульність програм. Дії у разі виявлення взаємних блокувань. Інші проблеми багатопотокових застосувань. Інверсія пріоритету. Ступінь деталізації блокувань. Відмови в обслуговуванні. Використання потоків для організації паралельних обчислень. Підхід ведучого-веденого. Підхід портфеля задач. Підхід конвеєра. Реалізація моделювання динамічних систем. Приклад моделювання. Генерування випадкових чисел і відлік системного часу. Особливості задач імітаційного моделювання.

  • Керування оперативною пам'яттю

Організація фізичної пам’яті. Лінійна та сегментна пам’ять. Статичний та динамічний розподіл пам’яті. Зв’язний та незв’язний розподіл пам’яті. Основи технології віртуальної пам'яті. Поняття віртуальної пам'яті. Проблеми реалізації віртуальної пам'яті. Фрагментація пам'яті. Логічна і фізична адресація пам'яті. Підхід базового і межового регістрів. Сегментація пам'яті. Особливості сегментації пам'яті. Реалізація сегментації в архітектурі ІА-32. Сторінкова організація пам'яті..Базові принципи сторінкової організації пам'яті..Порівняльний аналіз сторінкової організації пам'яті та сегментації. Багаторівневі таблиці сторінок. Реалізація таблиць сторінок в архітектурі ІА-32. Асоціативна пам'ять. Сторінково-сегментна організація пам'яті. Реалізація керування основною пам'яттю: Linux. Використання сегментації в Linux. Формування логічних адрес. Сторінкова адресація в Linux..Розташування ядра у фізичній пам'яті..Особливості адресації процесів і ядра. Використання асоціативної пам'яті. Реалізація керування основною пам'яттю: Windows XP. Сегментація у Windows XP. Сторінкова адресація у Windows XP. Особливості адресації процесів і ядра. Структура адресного простору процесів і ядра

  • Взаємодія з диском під час керування пам'яттю

Причини використання диска під час керування пам'яттю. Поняття підкачування. Завантаження сторінок на вимогу. Особливості підкачування сторінок. Апаратна підтримка підкачування сторінок. Поняття сторінкового переривання. Продуктивність завантаження на вимогу. Проблеми реалізації підкачування сторінок. Заміщення сторінок. Оцінка алгоритмів заміщення сторінок. Рядок посилань. Алгоритм FIFO. Оптимальний алгоритм. Алгоритм LRU. Годинниковий алгоритм. Буферизація сторінок. Глобальне і локальне заміщення сторінок. Блокування сторінок у пам'яті. Фонове заміщення сторінок. Зберігання сторінок на диску. Пробуксовування і керування резидентною множиною. Поняття пробуксовування. Локальність посилань. Поняття робочого набору. Модель робочого набору. Практичні аспекти боротьби з пробуксовуванням. Реалізація віртуальної пам'яті в Linux. Керування адресним простором процесу. Організація заміщення сторінок. Реалізація віртуальної пам'яті в Windows XP. Віртуальний адресний простір процесу. Організація заміщення сторінок.

  • Динамічний розподіл пам'яті

Динамічна ділянка пам'яті процесу. Особливості розробки розподілювачів пам'яті. Фрагментація у разі динамічного розподілу пам'яті. Структури даних розподілювачів пам'яті. Послідовний пошук підходящого блоку..Алгоритм найкращого підходящого. Алгоритм першого підходящого. Порівняння алгоритмів послідовного пошуку підходящого блоку. Ізольовані списки вільних блоків. Проста ізольована пам'ять. Ізольований пошук підходящого блока. Системи двійників. Підрахунок посилань і збирання сміття. Підрахунок посилань. Збирання сміття. Реалізація динамічного керування пам'яттю в Linux. Розподіл фізичної пам'яті ядром. Керування динамічною ділянкою пам'яті процесу. Реалізація динамічного керування пам'яттю в Windows XP. Системні пули пам'яті ядра. Списки передісторії. Динамічні ділянки пам'яті.

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

Поняття файла і файлової системи. Поняття файла. Поняття файлової системи. Типи файлів. Імена файлів. Організація інформації у файловій системі. Розділи. Каталоги. Зв'язок розділів і структури каталогів. Зв'язки. Жорсткі зв'язки. Символічні зв'язки. Атрибути файлів. Операції над файлами і каталогами. Підходи до використання файлів процесами. Загальні відомості про файлові операції. Файлові операції POSIX. Файлові операції Win32 АРІ. Операції над каталогами. Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файлові блокування. Файли, що відображаються у пам'ять. Поіменовані канали.

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

Базові відомості про дискові пристрої. Принцип дії жорсткого диска. Ефективність операцій доступу до диска. Розміщення інформації у файлових системах. Фізична організація розділів на диску. Основні вимоги до фізичної організації файлових систем. Неперервне розміщення файлів. Розміщення файлів зв'язними списками. Індексоване розміщення файлів. Організація каталогів. Облік вільних кластерів. Продуктивність файлових систем. Оптимізація продуктивності під час розробки файлових систем. Кешування доступу до диска. Дискове планування. Надійність файлових систем. Резервне копіювання. Запобігання суперечливостям і відновлення після збою. Журнальні файлові системи.

  • Реалізація файлових систем

Інтерфейс віртуальної файлової системи VFS. Основні функції VFS. Загальна організація VFS. Об'єкти файлової системи. Доступ до файлів із процесів. Файлові системи ext2fs і extSfs. Файлова система ext2fs. Особливості файлової системи extSfs. Файлова система /рrос. Файлові системи лінії FAT. Файлова система NTFS. Розміщення інформації на диску. Стискання даних. Забезпечення надійності. Особливості кешування у Windows XP. Системний реєстр Windows XP. Логічна структура реєстру. Фізична організація реєстру. Програмний інтерфейс доступу до реєстру.

  • Виконувані файли

Загальні принципи компонування Статичне компонування виконуваних файлів. Об'єктні файли . Компонувальники і принципи їх роботи. Завантаження виконуваних файлів за статичного компонування Динамічне компонування. Поняття динамічної бібліотеки. Переваги і недоліки використання динамічних бібліотек. Неявне і явне зв'язування. Динамічні бібліотеки та адресний простір процесу. Особливості об'єктного коду динамічних бібліотек. Точка входу динамічної бібліотеки. Структура виконуваних файлів. Виконувані файли в Linux. Формат ELF. Динамічне компонування в Linux.Автоматичний виклик інтерпретаторів. Виконувані файли у Windows XP. Формат РЕ. Динамічне компонування у Windows XP. Зворотна сумісність DLL у Windows 2000 і Windows XP.

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

Завдання підсистеми введення-виведення. Забезпечення ефективності доступу до пристроїв. Забезпечення спільного використання зовнішніх пристроїв. Універсальність інтерфейсу прикладного програмування. Універсальність інтерфейсу драйверів пристроїв. Організація підсистеми введення-виведення. Символьні, блокові та мережні драйвери пристроїв. Відокремлення механізму від політики за допомогою драйверів пристроїв. Способи виконання операцій введення-виведення. Опитування пристроїв. Введення-виведення, кероване перериваннями. Прямий доступ до пам'яті. Підсистема введення-виведення ядра. Планування операцій введення-виведення. Буферизація. Введення-виведення із розподілом та об'єднанням. Спулінг. Обробка помилок. Введення-виведення у режимі користувача. Синхронне введення-виведення. Багатопотокова організація введення-виведення. Введення-виведення із повідомленням. Асинхронне введення-виведення. Порти завершення введення-виведення. Таймери і системний час. Керування системним часом. Керування таймерами відкладеного виконання. Керування введенням-виведенням: UNIX і Linux. Інтерфейс файлової системи. Передавання параметрів драйверу. Структура драйвера. Виконання операції введення-виведення для пристрою. Керування введенням-виведенням: Windows XP. Основні компоненти підсистеми введення-виведення. Виконання операції введення-виведення для пристрою. Передавання параметрів драйверу пристрою.

  • Взаємодія з користувачем в операційних системах

Термінальне введення-виведення. Організація термінального введення-виведення. Термінальне введення-виведення в UNIX та Linux. Термінальне введення-виведення у Win32 АРІ. Командний інтерфейс користувача. Принципи роботи командного інтерпретатора. Переспрямування потоків введення-виведення. Використання каналів. Графічний інтерфейс користувача. Інтерфейс віконної та графічної підсистеми Windows XP. Система X Window. Процеси без взаємодії із користувачем. Фонові процеси на основі POSIX. Служби Windows XP.

  • Мережні засоби операційних систем

Загальні принципи мережної підтримки. Рівні мережної архітектури і мережні сервіси. Мережні протоколи. Реалізація стека протоколів Інтернету. Рівні мережної архітектури TCP/IP. Канальний рівенью Мережний рівень. Транспортний рівень. Передавання даних стеком протоколів Інтернету. Система імен DNS. Загальна характеристика DNS. Простір імен DNS. Розподіл відповідальності. Отримання IP-адрес. Кешування IP-адрес. Типи DNS-ресурсів. Програмний інтерфейс сокетів Берклі. Особливості роботи з адресами. Створення сокетів. Робота з потоковими сокетами. Введення-виведення з повідомленням. Використання доменних імен. Організація протоколів прикладного рівня. Архітектура мережної підтримки Linux. Рівні мережної підтримки. Підтримка інтерфейсу сокетів. Пересилання і отримання даних. Архітектура мережної підтримки Windows XP. Програмний інтерфейс Windows Sockets. Архітектура підтримки Windows Sockets. Основні моделі використання Windows Sockets. Сокети з блокуванням. Асинхронні сокети.

  • Захист інформації в операційних системах

Основні завдання забезпечення безпеки. Базові поняття криптографії. Поняття криптографічного алгоритму і протоколу. Криптосистеми з секретним ключем. Криптосистеми з відкритим ключем. Гібридні Криптосистеми. Цифрові підписи. Сертифікати. Принципи аутентифікації і керування доступом. Основи аутентифікації. Основи керування доступом. Аутентифікація та керування доступом в UNIX. Облікові записи користувачів. Аутентифікація. Керування доступом. Аутентифікація і керування доступом у Windows XP. Загальна архітектура безпеки. Аутентифікація. Керування доступом. Аудит. Загальні принципи організації аудиту. Робота із системним журналом UNIX. Журнал подій Windows XP. Локальна безпека даних. Принципи шифрування даних на файлових системах. Підтримка шифрувальних файлових систем у Linux. Шифрувальна файлова система Windows XP. Мережна безпека даних. Шифрування каналів зв'язку. Захист інформації на мережному рівні. Захист інформації на транспортному рівні. Атаки і боротьба з ними. Переповнення буфера. Відмова від обслуговування. Квоти дискового простору. Зміна кореневого каталогу застосування.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]