Програма державного екзамену з напряму підготовки

Вид материалаДокументы

Содержание


Програма державного екзамену
Загальні положення
Ii. організаційно-методичні рекомендації
Iii. зміст
Теорія графів.
Дерева та їхнє застосування.
Поняття циклу. Арифметичні та ітераційні цикли. Поняття ітерації. Цикли з перед- і післяумовою. Циклічні оператори мови Pascal.
Робота з графікою на мові Pascal.
3. „Проблемно-орієнтовані мови програмування”
Препроцесорне опрацювання програми
Основні типи даних мови Турбо Сі та елементарне введення-виведення
Операції та вирази мови Турбо Сі
Оператори мови Турбо Сі
Робота з масивами даних
Передавання параметрів у функцію main().
Керування даними та класи пам'яті
Рядки символів
Структури, бітові поля та об’єднання
Робота з дисковими файлами
Функції консольного введення-виведення
...
Полное содержание
Подобный материал:
  1   2   3   4


НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"

Кафедра інформаційних систем та мереж

ЗАТВЕРДЖУЮ

Голова методичної комісії

базового напряму

проф. М. О. Медиковський

"____" 2009р.

ПРОГРАМА ДЕРЖАВНОГО ЕКЗАМЕНУ

з напряму підготовки 0804 „Комп’ютерні науки” .

(шифр і назва напряму підготовки)

Програма державного екзамену розглянуто і ухвалено
на засіданні методичної комісії базового напряму
Протокол від " 14 " квітня 2009 року № 05 _


м.Львів


ПРОГРАМА ДЕРЖАВНОГО ЕКЗАМЕНУ


з напряму підготовки 0804 „Комп’ютерні науки” .

(шифр і назва напряму підготовки)

для спеціальності «Інтелектуальні системи прийняття рішень»


І. ЗАГАЛЬНІ ПОЛОЖЕННЯ

Державна атестація випускників вищих навчальних закладів здійснюється у відповідності до Закону України "Про освіту", "Положення про організацію навчального процесу у вищих навчальних закладах", затвердженого Наказом Міністерства освіти України від 2 червня 1993 р. №161. Державна атестація бакалавра проводиться у формі державного екзамену із спеціальності, що підводить підсумок набутих ним знань, вмінь та навичок з основних дисциплін, передбачених навчальним планом.

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

На державну атестацію виносяться система умінь, що визначена в ГСВОУ______-02 "Галузевий стандарт вищої освіти України. Освітньо-кваліфікаційна характеристика" та система відповідних змістових модулів.

Вимоги до засобів об’єктивного контролю ступеня досягнення кінцевих цілей освітньо-професійної підготовки встановлюється в ГСВОУ______-02 "Галузевий стандарт вищої освіти України. Засоби діагностики якості вищої освіти".

На державну атестацію студента напряму підготовки «Комп’ютерні науки» спеціальності «Інтелектуальні системи прийняття рішень» виносяться блоки таких змістових модулів:
  • „Дискретна математика”;
  • „Основи програмування та алгоритмічні мови”;
  • „Проблемно-орієнтовані мови програмування”;
  • „Системне програмування та операційні системи”;
  • „Об’єктно-орієнтоване програмування”;
  • „Системний аналіз та проектування комп’ютерних інформаційних систем”;
  • „Організація баз даних та знань”;
  • „Комп’ютерні мережі ”;
  • „Детерміновані моделі дослідження операцій та оптимізації інформаційних систем ”;
  • „Системи штучного інтелекту”.

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


II. ОРГАНІЗАЦІЙНО-МЕТОДИЧНІ РЕКОМЕНДАЦІЇ

(форма проведення, вимоги до оцінювання знань, навичок і вмінь студентів)


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

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

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

Державний іспит проводиться як комплексна перевірка знань та умінь з дисциплін професійного напрямку та спецкурсів.

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

Складання державних екзаменів проводиться на відкритому засіданні ДЕК за участю не менше половини членів комісії при обов’язковій присутності голови комісії.

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

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

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

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

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

Результати державного екзамену оголошуються в день їх проведення після оформлення протоколу засідання державної комісії.

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

Студентам, які не складали державний екзамен з поважної, документально підтвердженої причини, ректором може бути продовжений строк навчання до наступного терміну роботи державної комісії, але не більше, ніж на один рік.

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


III. ЗМІСТ

(основні питання з навчальних (навчальної) дисципліни)

1. „Дискретна математика”
  • Математична логіка.

Логіка висловлювань. Закони логіки висловлювань. Нормальні форми логіки висловлювань. Логіка першого ступеня.
  • Основи теорії множин.

Поняття множини. Поняття кортежа. Декартів добуток множин. Операції над множинами. Доведення рівностей з множинами. Комп’ютерне зображення множин.
  • Теорія графів.

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

Основні означення та властивості. Обхід дерев. Префіксна та постфіксна форми запису. Бінарне дерево пошуку. Дерева прийняття рішень. Алгоритм бектрекінг.
  • Відношення.

Відношення та їхні властивості. Відношення еквівалентності. Відношення часткового порядку. Операції над відношеннями.
  • Основи теорії автоматів.

Основні вимоги до алгоритмів. Машини Тьюрінга. Обчислення числових функцій на машині Тьюрінга.


2. „Основи програмування та алгоритмічні мови”
  • Поняття інформації. Типи інформації. Поняття даних. Синтаксис, семантика даних. Поняття алгоритму. Властивості алгоритмів. Поняття блок-схеми.

Системи числення і формати представлення даних у пам'яті ЕОМ. Поняття програми та оператора. Шаблон програми. Оператори та вирази. Типи даних. Поняття змінної. Оператор присвоєння та оператори введення-виведення даних. Форматування виведення. Лінійний операторний процес та операторний процес з розгалуженням. Умовні оператори та оператор вибору.
  • Поняття циклу. Арифметичні та ітераційні цикли. Поняття ітерації. Цикли з перед- і післяумовою. Циклічні оператори мови Pascal.

Поняття масивів даних. Одно- та багатовимірні масиви. Специфіка роботи з масивами. Основні типи задач на масиви даних: вибірка, сортування, фільтрування, обхід. Комбіновані типи даних. Типи даних користувача. Записи. Робота з елементами записів. Множини. Операції над множинами. Специфіка реалізації і роботи з множинами на мові Pascal.
  • Поняття підпрограми. Поняття процедури та функції. Поняття фактичних та формальних параметрів процедур та функцій. Передача значень у підпрограму. Виклик підпрограм.

Поняття файлової змінної. Робота з зовнішніми файлами. Створення, відкриття та введення-виведення інформації з/в файл.

Стрічковий тип даних. Поняття стрічки. Робота з стрічками. Процедури та функції по роботі з стрічками.
  • Робота з графікою на мові Pascal.
  • Поняття вказівника.

Розіменування вказівника. Робота з динамічними змінними на мові Pascal. Поняття списку, стеку, черги. Робота з одно- двонапрямленими та кільцевими списками. Робота із стеком.


3. „Проблемно-орієнтовані мови програмування”
  • Структура програми на базові елементи мови Турбо Сі

Характеристика мови С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в та рядків. Функція fflush().
  • Операції та вирази мови Турбо Сі

Арифметичнi операції, вiдношення, присвоєння, комбiнованi, iнкремент, декремент, порозряднi, логiчнi, адреснi, умовна, визначення розмiру, кома. Прiоритет операцiй. Явна та неявна схеми перетворення типiв даних у виразах та в операцiї присвоєння. Бiблiотечнi функцiї мови Турбо Сі для опрацювавння числових даних. Особливість операції ділення в С. Інкремент і декремент. Порозрядні операції. Операції зсуву. Операції відношення. Логічні операції.
  • Оператори мови Турбо Сі

Синтаксис та призначення простих (присвоєння, звернення до функції), пустого та складеного операторів. Оператори управлiння: умовнi, вибору варіантів, циклу, виходу з циклу, передачi управлiння на початок циклу, безумовного переходу, повернення результатiв роботи функцiї.
  • Вказівники

Оголошення вказівників. Базові типи вказівників. Тип “вказівник на вказівник”. Ініціалізація вказівників. Операції над вказівниками та правила адресної арифметики. Особливості адресування даних, розміщених в одному та в різних сегментах. Стандартні моделі пам’яті та вказівники. Динамічна пам’ять та вказівники. Функції malloc(), calloc(), realloc(), free().
  • Робота з масивами даних

Масиви числових даних. Особливостi оголошення та iнiцiалiзацiї. Доступ до елементів масивів за допомогою індексів та вказівників. Масиви у динамічній пам’яті. Передача масивів у функції та повернення з функцій. Організація введення-виведення елементів масивів. Масиви вказiвникiв та робота з ними. Використання масиву вказівників для доступу до параметрів командного рядка основної функцiї. Модифікатори near, far, huge.
  • Функції

Структура функції. Допустимі типи функції. Оголошення функцій в стилі мови Турбо Паскаль та Турбо Сі. Розташування та досяжність у програмі. Прототипи функцій. Організація виклику функції. Формальні і фактичні параметри. Передача параметрів “по значенню”. Передача та повернення даних з функції за допомогою параметрів-вказівників. Оголошення вказівників на функції та їх використання. Рекурсивні функції. Функції зі змінним числом параметрів. Особливості оголошення та доступу до параметрів. Послідовність передачі параметрів у функцію - модифікатори cdecl і pascal. Використання макросів для організації функцій із змінною кількістю аргументів.
  • Передавання параметрів у функцію main().

Синтаксис опису функції main() для передачі їй переметрів. Слова командного рядка та середовище програми як параметри функції main(). Повернення значення з функції main(). Вказівник на функцію. Масиви вказівників на функції. Модифікатори near, far, huge для вказівників на функції.
  • Керування даними та класи пам'яті

Глобальні та локальні дані. Розміщення у програмі, особливості доступу та перекриття. Область дії та час життя змінних. Автоматичний, статичний, зовнiшнiй та регiстровий класи пам’яті. Зовнiшнi данi та функцiї. Сумiсна компоновка декiлькох файлiв програми.
  • Рядки символів

Масиви символів та рядки символів. Оголошення, розміщення у пам’яті, ініціалізація та доступ до елементів. Масиви рядків символів. Особливості оголошення та доступу до елементів. Передача рядків символів у функції та повернення з функцій. Функції форматованого та безформатного введення-виведення рядків символів. Основні бібліотечні функції для роботи з рядками символів.
  • Структури, бітові поля та об’єднання

Оголошення структур, бітових полів та об’єднань, їх ініціалізація, доступ до полів та особливості розміщення в пам’яті. Організація введення-виведення структурованих даних. Передача структур у функції. Функції з типом структури.
  • Робота з дисковими файлами

Текстовий та двійковий режим відкриття файлів. Текстовий та двійковий формати файлів. Потокове буферизоване та префіксне небуферизоване введення-виведення. Функції форматованого та безформатного введення-виведення для роботи з текстовими файлами. Функції блокового введення-виведення для роботи з двійковими файлами. Організація прямого доступу до дискових файлів. Низькорівневе префіксне небуферизоване введення-виведення. Організація виводу iнформацiї на друк. Двійковий режим обміну з файлами (функції getc() та putc() ). Рядковий обмін із файлами (файлами (функції fgets() та fputs() ). Режим форматного обміну з файлами (функції fprintf() та fscanf() ). Позиціонування в потоці (функція fseek() ).
  • Робота з динамічною пам’яттю

Видiлення та звільнення пам'ятi в процесi реалiзацiї програми. Динамiчнi структури даних. Побудова списку, дерева, черги, стеку. Операцiї над динамiчними структурами даних. Бiблiотечнi функцiї для роботи з динамічною пам’яттю.
  • Функції консольного введення-виведення

Організація консольного введення-виведення. Бібліотечні функції керування клавіатурою. Введення символів без відображення на екрані. Перевірка наявності символів у буфері клавіатури. Керування екраном у текстовому режимі роботи відеоадаптера. Виведення, запам’ятовування, витирання та відновлення вікон. Керування кольорами символів та фону. Побудова меню, керованого від клавіатури
  • Графіка Турбо Сі

Ініціалізація графічної бібліотеки Турбо Сі. Графічні режими. Вікна та системи координат. Функції керування кольорами. Графічні примітиви Турбо Сі: лінії, кола, еліпси, сектори, шрифти. Збереження та відновлення графічного екрану. Перехід у текстовий режим та повернення у графічний режим. Закриття графічного режиму.
  • Системно-залежні розширення мови

Виконання команд мови асемблера. Переривання та бiблiотечнi функцiї для взаємодiї з операцiйною системою. Функції перивання 0х33 для керування мишею. Використання миші для керування інтерфейсом програми. Функції керування процесами. Особливості комплексування програм на мовах Турбо Паскаль та Турбо Сі.


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. Мережна безпека даних. Шифрування каналів зв'язку. Захист інформації на мережному рівні. Захист інформації на транспортному рівні. Атаки і боротьба з ними. Переповнення буфера. Відмова від обслуговування. Квоти дискового простору. Зміна кореневого каталогу застосування.