Курс «Системное программирование в среде операционной системы
UNIX» DXF-190
Аннотация
Теоретические основы и практические навыки работы системного программиста
для ОС UNIX. Командный язык. Файловая система, управление памятью,
взаимодействие процессов. Инструментальные средства разработки.
Квалификация слушателей
Программирование на С. Основы архитектуры и функций операционных
систем.
Содержание
1. Структура и функции операционной системы UNIX. Аппаратная
поддержка.
2. Архитектура ядра операционной системы. Структуры данных ядра. Взаимодействие модулей ядра.
3. Буферизация работы с диском. Заголовки, структура пула буферов. Чтение и запись блоков диска. Преимущества и недостатки кэширования диска.
4. Структура файловой системы. Структура обычного файла, айноуды (inodes), директории. Супер-блок. Выделение блоков диска. Типы файлов.
5. Системные вызовы файловой системы. Создание, открытие, чтение, запись в файл. Локирование файлов и записей. Произвольный доступ. Закрытие файла. Изменение атрибутов файла. Программные потоки (pipes). Монтирование файловых систем. Создание альтернативного имени файла (link). Сетевые файловые системы.
6. Управление памятью. Подкачка. Страничная, гибридная организация памяти.
7. Структура, жизненный цикл процессов. Расположение системной памяти. Контекст процесса. Адресное пространство процесса. Прерывание процесса.
8. Управление процессами. Создание, завершение, ожидание завершения процессса. Сигналы. Вызов программ. Идентификатор процесса. Изменение размера процесса. Интерпретатор команд. Загрузка системы.
9. Диспетчеризация процессов. Системные вызовы для показателей процесса. Системные часы.
10. Межпроцессное взаимодействие. Трассировка. Организация межпроцессных сообщений. Работа с разделяемой памятью. Синхронизация процессов (semaphores). Организация межпроцессного взаимодействия между различными машинами сети.
11. Подсистема ввода-вывода. Интерфейсы драйверов. Драйверы диска. Терминальные драйверы. Модульный принцип построения подсистемы ввода/вывода.
12. Сетевое программное обеспечение. Инструментарий для разработки сетевых приложений. Интерфейс ввода-вывода — STREAMS. Транспортные протоколы TCP/IP, IPX/SPX. Интерфейсы программных приложений TLI/XTI, Sockets. Интерфейс RPC.
13. Инструментальные средства разработки программ. С-компилятор
(сс). Редактор связей (link). Синтаксический анализатор (lint).
Отладчики программ (dbxtra, CodeView, sdb, adb). Анализ С программ
(cscope, lprof). Управление программными проектами (make). Система
управления программными текстами (sccs). Разделяемые библиотеки
(shared libraries).