СП

Метода

Вопросы:

  1. Операционная система. Основные функции ОС. Виды ОС.
  2. Общая характеристика ОС семейства Unix. Основные компоненты (структура) Unix-системы. Виды программ (процессов) в Unix.
  3. Интерактивные и неинтерактивные процессы, многозадачность. Процессы-демоны (основные сведения).
  4. Атрибуты процессов в Unix.
  5. Вычислительный процесс. Жизненный цикл и состояния процессов, уровни выполнения. Структура вычислительного процесса, образ процесса, адресное пространство.
  6. Исполняемые файлы в Unix.
  7. Многозадачность и многопоточность.
  8. Управление процессами - клонирование (функция fork). Управление процессами - загрузка из исполняемого файла (функции ехес…).
  9. Вычислительные потоки Unix (Linux). Управление потоками. Файловая система Unix (верхний уровень представления).
  10. Атрибуты файлов. Виды файлов. Обычные (регулярные) файлы, ссылки. Специальные типы файлов - каналы, сокеты, файлы устройств.
  11. Права доступа в Unix. Учетные записи. Пользователи и группы. Основной интерфейс пользователя Unix-систем: командная строка, командный интерпретатор (shell). Группы команд (утилит) Unix. Примеры команд.
  12. Потоки ввода-вывода, перенаправление ввода-вывода. Программы-фильтры - назначение, особенности, примеры.
  13. Средства навигации, поиска в Unix (навигация в ф.с., информация о системе, поиск файлов и строк в них).
  14. Командный интерпретатор shell - назначение, роль в системе, виды shell-ов (некоторые).
  15. Порядок работы shell - интерактивный (диалоговый) режим, выполнение сценариев, организация ввода-вывода. Переменные shell (в т.ч. области видимости, экспорт), типы данных. Управление выполнением сценария shell (переходы, ветвления, циклы). Арифметические и логические операции в shell. Управление выполнением внешних программ, взаимодействие с процессами и системой в сценариях shell.
  16. Текстовые редакторы в Unix. Редакторы vi/vim. Потоковый редактор sed. Команды sed. Обработка текстовых данных. Регулярные выражения, их использование в обработке текстов.
  17. Язык awk - основные особенности, общая структура программы, типичные задачи. Язык awk - типы данных, переменные, управляющие конструкции.
  18. Среда программирования в Unix (типично), ее компоненты.
  19. Компиляция и сборка проекта (cc/gcc). Управление компиляцией и сборкой, утилита make.
  20. Управление исходными текстами и версиями проекта. Библиотеки, библиотечные функции и системные вызовы. Основные группы системных вызовов.
  21. Подсистема памяти. Управление памятью (Unix-системы). Подсистема ввода-вывода. Управление файлами и файловым вводом-выводом (Unixсистемы).
  22. Взаимодействие процессов/потоков в многозадачной среде. Модели для описания ситуаций взаимодействия.
  23. Задачи синхронизации и взаимного исключения. Коллизии, критические ресурсы, критические секции. Задача обмена данными в многозадачной системе.
  24. Синхронизация процессов (потоков) во время жизненного цикла: создание, приостановка, завершение. Средства межпроцессного взаимодействия (IPC) - назначение, разновидности.
  25. “Сигнальные” средства взаимодействия: прерывания, сигналы, события, сообщения. Взаимодействие процессов и управление с использование сигналов (Unix-системы). Сигналы Unix: генерация, доставка, обработка, функции ожидания. Сигналы Unix: “обычные” и “надежные” (POSIX) сигналы.
  26. “Канальные” средства взаимодействия. Использование файлов и каналов (pipe) для обмена данными. Каналы в Unix-системах (pipe, FIFO).
  27. Процессы-демоны (Unix). Типовой каркас демона.
  28. Модели (виды) ввода-вывода: блокирующий, неблокирующий, асинхронный, мультиплексированный ввод-вывод.
  29. Взаимодействие посредством сообщений. Очереди сообщений (SystemV IPC, POSIX IPC). Взаимодействие посредством разделяемой памяти (SystemV IPC, POSIX IPC).
  30. Семафоры и мьютексы (SystemV IPC, POSIX pthread IPC). Синхронизация потоков Unix/Linux: join и joinable-потоки. Обработка множественных запросов: подходы к построению серверов.