Экзаменационные вопросы по курсу "Операционные системы" (гр. 231)

экзаменационные вопросы по курсу
ОПЕРАЦИОННЫЕ СИСТЕМЫ

Бакалавриат, 2011/12 учебный год, III семестр

Теория операционных систем

Лектор А.В.Столяров

  1. История вычислительной техники и история развития операционных систем. Задачи современных операционных систем.
  2. ОС Unix. История создания и основные современные представители семейства unix'оподобных систем.
  3. ОС Unix. Понятие командного интерпретатора. Примеры команд, перенаправление ввода-вывода, конвейеры.
  4. ОС Unix. Понятие пользовательской учетной записи. Права доступа к файлу.
  5. Мультизадачный режим. Основные виды мультизадачности.
  6. Аппаратная поддержка мультизадачного режима: прерывания, виды прерываний.
  7. Аппаратная поддержка мультизадачного режима: привилегированный и ограниченный режимы.
  8. Аппаратная поддержка мультизадачного режима: защита памяти.
  9. Ядро операционной системы. Понятие системного вызова.
  10. Иерархия запоминающих устройств; задачи подсистемы управления оперативной памятью
  11. Понятия виртуальной памяти и подкачки. Простейшая модель виртуальной памяти (база-предел).
  12. Сегментная организация виртуальной памяти.
  13. Страничная организация виртуальной памяти.
  14. Ввод-вывод. Две точки зрения на ввод-вывод. Структура вычислительной системы с точки зрения управления вводом-выводом.
  15. Ввод-вывод. Понятие драйвера устройства. Способы загрузки драйвера.
  16. Буферизация ввода-вывода.
  17. Файловый ввод-вывод. Системные вызовы файлового ввода-вывода в ОС Unix. Стандартные потоки ввода/вывода.
  18. Основные понятия файловых систем в ОС Unix: каталоги и индексные дескрипторы, свойства файла, жесткие и символические ссылки.
  19. Файловый интерфейс внешних устройств в ОС Unix. Классификация устройств.
  20. Понятие процесса, основные свойства процесса.
  21. Свойства процесса в ОС Unix.
  22. Жизненный цикл процесса в ОС Unix.
  23. Системные вызовы управления процессами в ОС Unix.
  24. Управление свойствами процесса в ОС Unix (текущая и корневая директория, окружение, параметр umask).
  25. Манипуляция таблицей файловых дескрипторов в ОС Unix. Перенаправление ввода-вывода.
  26. Общая классификация средств взаимодействия процессов в ОС Unix.
  27. Взаимодействие процессов: сигналы.
  28. Взаимодействие процессов: неименованные каналы; особые ситуации при работе с каналами.
  29. Взаимодействие процессов: именованные каналы (FIFO).
  30. Использование неименованных каналов для построения конвейеров.
  31. Взаимодействие процессов: вызов mmap и его использование для создания сегмента разделяемой памяти.
  32. Взаимодействие процессов: виртуальный терминал.
  33. Сокеты: понятие семейства адресации; семейства AF_INET и AF_UNIX.
  34. Сокеты: понятие типа взаимодействия; дейтаграммное и потоковое взаимодействие.
  35. Системные вызовы для взаимодействия через сокеты передачи дейтаграмм.
  36. Организация взаимодействия "клиент-сервер" с помощью потоковых сокетов. Проблема очерёдности действий и возможные подходы к её решению.
  37. Построение многопользовательского сервера с обслуживающими процессами.
  38. Мультиплексирование ввода-вывода в ОС Unix; вызов select. Понятие событийно-ориентированного программирования.
  39. Группы процессов и сеансы в ОС Unix. Программы-демоны.
  40. Проблемы, возникающие при работе с разделяемыми данными. Понятие "ситуации состязания" (race condition). Примеры.
  41. Понятия критической секции и взаимоисключения. Требования к системе с взаимоисключениями.
  42. Методы взаимоисключения с активным ожиданием. Алгоритм Петерсона.
  43. Мьютексы. Различные возможные подходы к реализации мьютексов. Команда TSL.
  44. Понятие семафора Дейкстры. Задача "производители-потребители".
  45. Тупиковые ситуации. Задача о пяти философах. Понятие графа ожидания.
  46. Задача "читатели-писатели".
  47. Легковесные процессы в ОС Unix. Основные средства библиотеки pthread.
  48. Легковесные процессы в ОС Unix. Мьютексы POSIX. Семафоры POSIX.
  49. Cистема X Window. Понятия X-протокола, X-клиента и X-сервера.
  50. Система X Window. Понятие X-терминала и сервера приложений. Организация терминального комплекса на основе X Window.

Язык Си

Лектор И.Н.Полякова

  1. Особенности языка Си. Структура программы. Примеры.
  2. Имена, переменные, константы и их виды.
  3. Типы и размеры данных.
  4. Преобразования типов в Си.
  5. Операции и выражения языка Си (бинарные операции).
  6. Операции и выражения языка Си (унарные операции).
  7. Приоритеты и порядок выполнения операций.
  8. Побочные эффекты и точки последовательных вычислений.
  9. Управление в Си. Синтаксис и семантика операторов языка (составной, пустой, оператор-выражение, if, switch).
  10. Управление в Си. Синтаксис и семантика операторов цикла.
  11. Простейший ввод-вывод. Примеры.
  12. Побитовые операторы и их особенности.
  13. Ввод- вывод символов. Символьные массивы.
  14. Понятие функции. Механизм передачи параметров. Рекурсия.
  15. Области видимости и существования переменных.
  16. Препроцессор.
  17. Указатели в Си. Адресная арифметика.
  18. Многомерные массивы. Массив указателей, указатель на массив.
  19. Структуры в Си.
  20. Объединения в Си.
  21. Интерпретация сложных деклараций. Оператор typedef.
  22. Структуры со ссылками на себя. Динамическое распределение памяти.
  23. Аргументы командной строки.
  24. Высокоуровневый ввод-вывод.
  25. Высокоуровневый доступ к файлам.