Операционные системы
- Расписание консультаций (зима 2025)
- Защита курсовых проектов — 26 декабря 2024 в 13:30 в каб. 107 УЛК-5.
Лекции
Лабораторные работы
Задания для самостоятельной работы
- Изучение алгоритмов реализации и использования сопрограмм
(моделирование принципов невытесняющей многозадачности): Паскаль/DOS, Си/Linux. - Исследование принципов реализации процессов и очередей многозадачного ядра
(вытесняющая многозадачность, принципы планирования процессов): Паскаль/DOS, Си/Linux. - Исследование методов синхронизации и взаимодействия процессов
По вариантам:- A. Исследование методов синхронизации процессов с помощью семафоров: Паскаль/DOS, Си/Linux.
- B. Исследование методов буферизации сообщений: Паскаль/DOS, Си/Linux.
- C. Исследование метода взаимодействия процессов с помощью очередей сообщений: Паскаль/DOS, Си/Linux.
- Индивидуальное задание по написанию сценария для BASH (по вариантам)
Опции компиляторов TurboPascal или BorlandPascal должны быть выставлены следующим образом:
Дополнительная информация по организации программно-аппаратного стека и соглашениях о вызовах:
https://dfe.petrsu.ru/prog/buffers.html
Рекомендуемая литература
- Таненбаум Э., Бос Х. Современные операционные системы. – СПб. : Питер, 2017. – 1120 с.
- Молчанов А. Ю. Системное программное обеспечение : учебник для вузов. – СПб. : Питер, 2010. – 400 с.
- Олифер В. Г., Олифер Н. А. Сетевые операционные системы : учебник для вузов. – СПб. : Питер, 2009. – 669 с.
- Кипрушкин С. А., Соловьев А. В. Основы работы в Linux : учебное пособие. — Петрозаводск : Изд-во ПетрГУ, 2009. — 104 с.
Курсовой проект (для ИВТ)
Реферат по одной/нескольким статьям на английском языке из журналов или конференций по тематике курса: USENIX, ACM, SIGOPS, IEEE и др.
- Это должна быть статья (не книга, не монография), размер – от 15 страниц (если размер меньше, выбирается несколько статей по сходной тематике).
- Статья не старше 10 лет (год издания статьи должен быть не ранее 2015 г.).
- В статье должен быть библиографический список.
Выбирайте статью по той тематике, которая вам более интересна. Идентифицируйте тему курса, которой соответствует выбранная статья.
Реферат должен содержать:
- Краткую аннотацию статьи (пара абзацев, до 200 слов).
- Описание структуры статьи (по паре предложений на каждый раздел).
- Самые важные/интересные, на ваш взгляд, положения статьи (основная часть вашей работы над рефератом — от двух страниц и более).
- Характеристику библиографии статьи (зачем автор ссылается на тот или иной источник, по одному-два предложения, можно сгруппировать несколько однотипных источников).
- Заключение (выводы).
- Список литературы, упомянутой в вашем реферате (фактически: статья + её библиография). Библиографические записи должны быть оформлены по ГОСТу!
Итоговый вариант реферата высылается в PDF-виде е-почту преподавателя.
По результатам работы над рефератом готовится презентация (длительностью 3-5 мин.)
Ближайшая дата защиты: 25 декабря 2024 г.
Контроль знаний по результатам выполнения практических заданий:
Вопросы к экзамену:
- Этапы развития операционных систем.
- Типы операционных систем (особенности разных типов, примеры).
- Структуры операционных систем (монолитные, микроядра, гибридные).
- Процессы: модель, создание, завершение, иерархия, реализация.
- Состояния процессов, переходы между состояниями.
- Потоки: применение, модель, пример API.
- Способы реализации потоков (в режиме пользователя, в режиме ядра, гибридный).
- Проблемы многопоточного кода.
- Методы взаимного исключения (способы реализации критических секций) - активное ожидание (спин-блокировка).
- Методы взаимного исключения - семафоры, мьютексы, условные переменные.
- Очереди сообщений и другие способы синхронизации процессов/потоков. Работа без блокировок (Read-Copy-Update).
- Термины, вопросы и задачи алгоритмов планирования процессов.
- Алгоритмы планирования в пакетных системах.
- Алгоритмы планирования в интерактивных системах.
- Алгоритмы планирования в системах реального времени.
- Страничная организация памяти. Таблица страниц. Быстродействие. Объём.
- Алгоритмы замещения страниц (оптимальный, NRU, FIFO, второй шанс, часы).
- Алгоритмы замещения страниц (LRU, NFU, старения, рабочий набор, WSClock).
- Политика замещения страниц (локальная или глобальная).
- Выбор размера страницы.
- Совместно используемые страницы и совместно используемые библиотеки.
- Отображаемые файлы.
- Политика очистки страниц.
- Участие операционной системы в процессе подкачки страниц.
- Блокировка страниц в памяти.
- Организация области подкачки.
- Сегментация: принципы, сравнение со страничной организацией, пример реализации в архитекуре IA-32.
- Понятие файловой системы (ФС). Пользовательский интерфейс ФС: файлы и каталоги. Файлы: структура, тип, формат, доступ, атрибуты. Иерархические системы каталогов.
- Реализации файловой системы: размещение на диске, реализации файлов, реализации каталогов. Выбор размера блока.
- Файловые системы с журнальной структурой. LFS.
- Журналируемые файловые системы.
- Виртуальная файловая система (VFS).
- Отслеживание свободных блоков в файловой системе.
- Дисковые квоты.
- Резервное копирование файловой системы.
- Непротиворечивость файловой системы.
- Вопросы производительности файловых систем: кэширование блоков, опережающее чтение, сокращение количества перемещений блока головок, дефрагментация.
- Файловая система MS DOS (FAT).
- Файловая система UNIX V7.
- Файловая система Linux EXT2.
- Файловая система компакт-дисков (ISO 9660).
- Файловая система NTFS.
- Принципы организации ввода-вывода: блочные и символьные устройства, пространство памяти для ввода-вывода, DMA, прерывания.
- Задачи ПО ввода-вывода и принципы создания: программный опрос (активное ожидание), по прерыванию, с использованием DMA.
- Уровни ПО ввода-вывода: прикладной, HAL, драйверы, обработчики прерываний.
- Особенности работы с дисковыми устройствами: геометрия, алгоритмы перемещения головок, обработка ошибок, RAID.
- Особенности работы с часами.
- Особенности работы с интерфейсными устройствами: клавиатура, мышь, текстовый и графический дисплей.
- Вопросы управления энергопотреблением.
- Системы виртуализации: требования, типы гипервизоров, технологии реализации. Паравиртуализация.
- Облачные сервисы: характеристики, варианты реализации.
- Построение системы виртуализации на примере VMware Workstation.
- Типы мультипроцессорных ОС. Синхронизация мультипроцессоров.
- Планирование работы мультипроцессора.
- Распределённая совместно используемая память.
- Балансировка нагрузки в мультикомпьютерах.
- Безопасность ОС: управление доступом к ресурсам.
- Безопасность ОС: аутентификация.
- Безопасность ОС: уязвимости ПО.
- Безопасность ОС: инсайдерские атаки, вредоносные программы, средства защиты.
Задачи к экзамену:
N Addr P A M counter 0 ... X X X ... ... ... X X X ...
Номер элемента таблицы страниц занимает старшие L бит в виртуальном
адресе. Вычислите M-битный физический адрес для виртуального адреса
XXXX10.
0 1 2 ... Своб. x x x ... Исп. x x x ...
Балльно-рейтинговая система:
Допуск к экзамену осуществляется при условии выполнении студентами плана практических занятий и достижении ими балла 70.
Баллы начисляются следующим образом:
- за посещение лекций и лабораторных занятий – 1 балл;
- за непосещение лекций – -2 штрафных балла;
- за непосещение лабораторных занятий – -1 штрафной балл;
- за непредставление отчета в установленный срок (на следующей, после выполнения работы, неделе) – -1 балл в неделю;
- за отчёт по лабораторной работе – 0...5 баллов;
- за практическое задание по самостоятельной работе – 0...10 баллов.
Досрочная сдача может поощряться дополнительным баллом.