- •6.080401 «Інформаційні управляючи системи і технології» 6.080402 «Інформаційні технології проектування»
- •1. Структура та обсяг дисципліни
- •2. Основи програмування на мові с
- •2.1 Найпростіші конструкції мови
- •2.2 Типи даних
- •2.4 Операції мови с
- •2.5 Структура простої с програми
- •2.6 Організація введення-виведення
- •2.7 Компіляція в системі Linux
- •2.8 Організація розгалужень в програмі
- •2.9 Організація циклів
- •2.10 Оператор break
- •2.11 Оператор continue
- •2.11 Масиви
- •2.12 Функції
- •2.13 Рекурсивні функції
- •2.14 Читання і запис текстових файлів
- •2.15 Структури даних
- •3. Операційні системи
- •3.1. Поняття операційної системи
- •3.1.1 Призначення операційної системи
- •3.1.2 Операційна система як розширена машина
- •3.1.3 Операційна система як розподілювач ресурсів
- •3.2 Класифікація сучасних операційних систем
- •4 Архітектура операційних систем
- •4.1 Базові поняття архітектури операційних систем
- •4.1.1 Ядро системи. Привілейований режим і режим користувача
- •4.2 Реалізація архітектури операційних систем
- •4.2.1 Монолітні системи
- •4.2.2 Багаторівневі системи
- •4.3 Системи з мікроядром
- •4.4 Концепція віртуальних машин
- •5. Підтримка програмування в oc unix.
- •5.1. Вивчення передачі інформації
- •5.2. Змінні оточення
- •5.3. Обробка помилок
- •5.4. Правила формування і засоби розбору командних рядків
- •6. Логічна організація файлових систем
- •6. 1. Поняття файла і файлової системи
- •6.1.1. Поняття файла
- •6.1.2. Поняття файлової системи
- •6.1.3. Типи файлів
- •6.1.4. Імена файлів
- •6. 2. Організація інформації у файловій системі
- •6.2.1. Розділи
- •6.2.2. Каталоги
- •6.2.3. Зв’язок розділів і структури каталогів
- •6. 3. Зв’язки
- •6. 3. 1. Жорсткі зв’язки
- •6. 3. 2. Символічні зв’язки
- •6. 4. Атрибути файлів
- •6. 5. Операції над файлами і каталогами
- •6. 5. 1. Підходи до використання файлів процесами
- •6. 5. 2. Загальні відомості про файлові операції
- •7. Файлові операції posix
- •7.1. Відкриття і створення файлів
- •7.2. Закриття файла
- •7.3. Читання і записування даних
- •7.4. Збирання інформації про атрибути файла
- •7.5 Операції над каталогами
- •Література
1. Структура та обсяг дисципліни
Дисципліна «Системне програмування і операційні системи» викладається для студентів 2 курсу спеціальності 6.080402 «Інформаційні технології проектування» в обсязі 6 лекційних та 2 лабораторних робіт включно у 3 навчальному семестрі та 6 лекційних та 4 лабораторних робіт включно у 4 семестрі. В кожному семестрі виконується контрольна робота. Форма підсумкового контролю у 3 семестрі – залік, у 4 семестрі – екзамен.
2. Основи програмування на мові с
Мова С була створена в 1972 р. співробітником фірми Bell Laboratories Деннісом Рітчи (Dennis Ritchie), коли він і Кен Томпсон (Ken Thompson) займалися розробкою операційної системи UNIX. Мова С була створена як інструментальний засіб для розробки системного програмного забезпечення і прикладних програм.
Ми розглядатимемо процеси створення додатків на мові С і розроблених для ОС Linux. Linux - це популярна, безкоштовно поширювана версія операційної системи UNIX, яка може застосовуватися на різних платформах, включаючи IBM-сумісні комп'ютери і комп'ютери Macintosh. Оскільки об'єктом нашого обговорення є ОС Linux, а не сучасні засоби створення додатків, використовуватимемо безкоштовно поширюваний компілятор мови С під ім'ям gcc. Компілятори С не є частиною операційної системи, про їх установку потрібно подбати додатково.
2.1 Найпростіші конструкції мови
Ідентифікатори
Ідентифікатори визначають імена змінних, констант, функцій та типів даних. Ідентифікатор є послідовністю букв і цифр, яка починається з букви або з символу підкреслення. Тільки перші 31 символ є значущими для компілятора. Мова С розрізняє регістр букв, тому ідентифікатори variable і Variable не представлятимуть одне і те ж поняття.
Приклади допустимих ідентифікаторів: count, test32, high_balance.
Приклади недопустимих ідентифікаторів: 1count, hi!there, high..balance.
Ідентифікатор не може співпадати з ключовим словом С і не повинен мати таке ж ім'я, як функція, що вже міститься в бібліотеці С.
Ключові слова
Ключовим словом називається ідентифікатор, який для мови програмування має відоме значення. У мові С ключові слова є зарезервованими, тобто програміст не може їх використовувати інакше, ніж це визначено мовою.
Як приклад нижче наведено декілька ключових слів:
byte, do, else, switch, int, sizeof.
Роздільники
Роздільники – це символи, які дозволяють встановити межі для конструкцій мови. До роздільників належать три види дужок, крапка, кома і крапка з комою.
Коментарі
Коментар – це частина тексту програми, яка не обробляється компілятором з метою створення коду. Коментарі складаються для саміих же програмістів.
У мові С існують три типи коментарів.
Однорядкові коментарі починаються з символів “//” і розповсюджуються до кінця рядка.
Багаторядкові коментарі починаються символами “/*”, закінчуються символами “*/” і можуть включати будь яку кількість рядків.
Пропуски
Програма на мові С записується в довільному форматі. В одному рядку можна записати декілька операторів або тільки один. Для зручності читання і відладки програми не рекомендується в одному рядку розміщувати більше одного оператора, а фігурні дужки, що обмежують функції або блоки, розміщувати в окремих рядках. Наявність пропусків обов’язкова між елементарними конструкціями мови (лексемами), якщо вони не розділені роздільниками.