СП
Метода
Вопросы:
- Операционная система. Основные функции ОС. Виды ОС.
- Общая характеристика ОС семейства Unix. Основные компоненты (структура) Unix-системы. Виды программ (процессов) в Unix.
- Интерактивные и неинтерактивные процессы, многозадачность. Процессы-демоны (основные сведения).
- Атрибуты процессов в Unix.
- Вычислительный процесс. Жизненный цикл и состояния процессов, уровни выполнения. Структура вычислительного процесса, образ процесса, адресное пространство.
- Исполняемые файлы в Unix.
- Многозадачность и многопоточность.
- Управление процессами - клонирование (функция fork). Управление процессами - загрузка из исполняемого файла (функции ехес…).
- Вычислительные потоки Unix (Linux). Управление потоками. Файловая система Unix (верхний уровень представления).
- Атрибуты файлов. Виды файлов. Обычные (регулярные) файлы, ссылки. Специальные типы файлов - каналы, сокеты, файлы устройств.
- Права доступа в Unix. Учетные записи. Пользователи и группы. Основной интерфейс пользователя Unix-систем: командная строка, командный интерпретатор (shell). Группы команд (утилит) Unix. Примеры команд.
- Потоки ввода-вывода, перенаправление ввода-вывода. Программы-фильтры - назначение, особенности, примеры.
- Средства навигации, поиска в Unix (навигация в ф.с., информация о системе, поиск файлов и строк в них).
- Командный интерпретатор shell - назначение, роль в системе, виды shell-ов (некоторые).
- Порядок работы shell - интерактивный (диалоговый) режим, выполнение сценариев, организация ввода-вывода. Переменные shell (в т.ч. области видимости, экспорт), типы данных. Управление выполнением сценария shell (переходы, ветвления, циклы). Арифметические и логические операции в shell. Управление выполнением внешних программ, взаимодействие с процессами и системой в сценариях shell.
- Текстовые редакторы в Unix. Редакторы vi/vim. Потоковый редактор sed. Команды sed. Обработка текстовых данных. Регулярные выражения, их использование в обработке текстов.
- Язык awk - основные особенности, общая структура программы, типичные задачи. Язык awk - типы данных, переменные, управляющие конструкции.
- Среда программирования в Unix (типично), ее компоненты.
- Компиляция и сборка проекта (cc/gcc). Управление компиляцией и сборкой, утилита make.
- Управление исходными текстами и версиями проекта. Библиотеки, библиотечные функции и системные вызовы. Основные группы системных вызовов.
- Подсистема памяти. Управление памятью (Unix-системы). Подсистема ввода-вывода. Управление файлами и файловым вводом-выводом (Unixсистемы).
- Взаимодействие процессов/потоков в многозадачной среде. Модели для описания ситуаций взаимодействия.
- Задачи синхронизации и взаимного исключения. Коллизии, критические ресурсы, критические секции. Задача обмена данными в многозадачной системе.
- Синхронизация процессов (потоков) во время жизненного цикла: создание, приостановка, завершение. Средства межпроцессного взаимодействия (IPC) - назначение, разновидности.
- “Сигнальные” средства взаимодействия: прерывания, сигналы, события, сообщения. Взаимодействие процессов и управление с использование сигналов (Unix-системы). Сигналы Unix: генерация, доставка, обработка, функции ожидания. Сигналы Unix: “обычные” и “надежные” (POSIX) сигналы.
- “Канальные” средства взаимодействия. Использование файлов и каналов (pipe) для обмена данными. Каналы в Unix-системах (pipe, FIFO).
- Процессы-демоны (Unix). Типовой каркас демона.
- Модели (виды) ввода-вывода: блокирующий, неблокирующий, асинхронный, мультиплексированный ввод-вывод.
- Взаимодействие посредством сообщений. Очереди сообщений (SystemV IPC, POSIX IPC). Взаимодействие посредством разделяемой памяти (SystemV IPC, POSIX IPC).
- Семафоры и мьютексы (SystemV IPC, POSIX pthread IPC). Синхронизация потоков Unix/Linux: join и joinable-потоки. Обработка множественных запросов: подходы к построению серверов.