Операционные системы 2011 Страница из
№
п/п
|
Раздел дисциплины
|
Семестр
|
Неделя семестра
|
Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)
|
Формы текущего контроля успеваемости (по неделям семестра)
Формы промежуточной аттестации (по семестрам)
|
Лекции
|
Лабораторная работа
|
Самостоятельная работа
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
1
|
Основные принципы построения ОС
|
4
|
1
|
1
|
|
1
|
|
2
|
Эволюция ОС
|
4
|
1
|
1
|
2
|
2
|
|
3
|
Структурные компоненты ОС
|
4
|
2
|
2
|
4
|
4
|
|
4
|
Модели процесса, потока и контекста исполнения
|
4
|
3
|
2
|
6
|
4
|
|
5
|
Управление памятью и модель виртуальной памяти
|
4
|
4
|
2
|
4
|
4
|
|
6
|
Архитектуры ОС
|
4
|
5
|
1
|
2
|
2
|
|
7
|
Обработка прерываний в операционных системах
|
4
|
5
|
1
|
2
|
4
|
|
8
|
Проблемы синхронизации и механизмы межпроцессного взаимодействия
|
4
|
6
|
2
|
6
|
6
|
|
9
|
Управление вводом-выводом
|
4
|
7 - 8
|
4
|
4
|
6
|
Контрольная работа № 1
|
10
|
Файловые системы
|
4
|
9
|
2
|
2
|
4
|
|
11
|
Управление и планирование процессами, потоками и контекстами исполнения
|
4
|
10
|
2
|
2
|
4
|
|
12
|
Принципы создания параллельных взаимодействующих процессов
|
4
|
11
|
2
|
4
|
4
|
|
13
|
Особенности реализаций современных ОС
|
4
|
12 - 13
|
4
|
4
|
4
|
|
14
|
Форматы исполняемых файлов и загрузка программ
|
4
|
14
|
2
|
2
|
2
|
|
15
|
Модель сетевых интерфейсов и поддержка сетевых служб в ОС
|
4
|
15
|
2
|
2
|
2
|
|
16
|
Защитные механизмы ОС
|
4
|
16
|
2
|
2
|
2
|
Контрольная работа № 2
|
|
Промежуточная аттестация
|
Экзамен
|
|
ИТОГО:
|
|
180
|
32
|
48
|
55
|
45
|
-
Основные принципы построения ОС
-
Определение операционной системы
Роль операционной системы (ОС) в общей структуре аппаратно-программного обеспечения вычислительных систем. ОС как виртуальная машина, ОС как система управления ресурсами.
-
Основные принципы построения ОС
Принцип модульности. Принцип функциональной избыточности. Принцип генерируемости ОС. Принцип функциональной избирательности. Принцип виртуализации. Принцип независимости программ от внешних устройств. Принцип совместимости. Принцип открытой и наращиваемой ОС. Принцип переносимости. Принцип обеспечения безопасности вычислений. Принцип разделения политик и механизмов.
-
Требования, предъявляемые к многопользовательским ОС
Мультипрограммность и многозадачность. Отзывчивость
-
Эволюция ОС
-
Первые поколения вычислительных машин
Лампы и коммутационные панели. Транзисторы и системы пакетной обработки. Задания, управляемые оператором, и управляющие программы.
Появление первых многозадачных ОС
Интегральные схемы, увеличение объёма доступной оперативной памяти и появление первых мультипрограммных ОС для мэйнфреймов.
-
Операционные системы с разделением времени
Режим разделения времени. ОС CTSS (Compatible Time Sharing System — совместимая система разделения времени) и MULTICS (MULTiplexed Information and Computing Service — мультиплексная информационная и вычислительная служба), как прототипы UNIX. Первые две основных версии UNIX — System V (корпорация AT&T) и BSD (Berkley Software Distribution). Разработка первого стандарта POSIX.
-
Эпоха персональных компьютеров и встроенных устройств
Микропроцессорные системы и виды управляющих ими ОС. Серверные ОС. Многопроцессорные операционные системы. Системы с разделением времени. Операционные системы для персональных компьютеров. Операционные системы реального времени. Встроенные операционные системы. Особенности современного этапа развития ОС.
-
Структурные компоненты ОС
-
Операционная система, как операционная среда и оболочка
Понятие операционной среды. Операционная система, как оболочка для запуска приложений.
Основные понятия ОС
Понятие вычислительного процесса и ресурса. Реализация понятия последовательного процесса в ОС. Функциональные компоненты ОС. Управление прерываниям. Управление процессами. Управление памятью. Управление файлами и внешними устройствами.
-
Взаимодействие с ОС и понятие системного вызова
Взаимодействие процессов с операционной системой, системные вызовы. Системные вызовы для управления процессами. Системные вызовы для управления файлами. Системные вызовы для управления каталогами. Стандарты на интерфейсы к ядру ОС.
-
Модели процесса, потока и контекста исполнения
-
Модели контекстов исполнения.
Понятие процесса и потока. Модель процесса. Модель потока. Модель контекстов исполнения, как параллельно исполняемых процессов с общим набором ресурсов. Модель потока, как контекста исполнения с заданным набором общих ресурсов.
-
Ресурсы разделяемые контекстами исполнения
Виды общих ресурсов: оперативная память, файловые дескрипторы, переменные окружения, сигналы. Ресурсы потока и контекста исполнения: идентификатор, набор регистров, стек, код завершения. Идентификация процессов и потоков, как контекстов исполнения.
-
Управление памятью и модель виртуальной памяти
Функции ОС по управлению памятью.
Проблемы управления памятью. Фрагментация. Функции ОС по управлению памятью. Алгоритмы распределения памяти. Простое непрерывное распределение и распределение с перекрытием (оверлейные структуры). Распределение статическими и динамическими разделами. Разделы с фиксированными и подвижными границами.
-
Виртуальная память
Сегментный, страничный, сегментно-страничный виды организации управления памяти. Виртуальная память, как модель страничной организации управления памятью, виртуальное адресное пространство. Алгоритмы замещения страниц. Механизмы и алгоритмы подкачки страниц. Алгоритмы обработки запросов на выделение памяти. Защита памяти.
Особенности управления памятью в пространстве ядра
Разделение физической памяти на зоны. Страничная организация памяти в пространстве ядра. Механизмы кеширования памяти.
Особенности управления памятью пространстве пользователя
Адресное пространство процесса. Области памяти в адресном пространстве процесса и их типы.
-
Архитектуры ОС
-
Понятие ядра ОС
Ядро и вспомогательные модули ОС. Ядро в привилегированном режиме. Ограничивающие ресурсы. Совместимость и множественные прикладные среды. Способы реализации прикладных программных сред.
-
Основные архитектуры ОС
Монолитные и микроядерные архитектуры ОС. Концепция микроядра, преимущества и недостатки. Распределение и использование ресурсов в ОС.
-
Другие виды архитектур
Многоуровневые ОС. Виртуальные машины. Экзоядро. Распределённые, клиент-серверные архитектуры.
-
Обработка прерываний в ОС
-
Аппаратные средства управления прерываниями
Контроллеры прерываний. Вектора обработчиков прерываний. Совместное использование прерываний несколькими устройстввами. Прерывания в мультипроцессорных системах.
-
Механизмы обработки прерываний
Отложенные прерывания и нижние половины. Контекст прерываний и особенности синхронизации нижних половин. Спин-блокировки и их разновидности.
-
Проблемы синхронизации и механизмы межпроцессного взаимодействия
Основная проблема синхронизации
Атомарные и не атомарные операции. Необходимость синхронизации, состояние состязания или «гонок». Понятие критической секции. Понятия повторно используемых, системных и потребляемых ресурсов.
Основная проблема синхронизации
Отложенные прерывания и нижние половины. Контекст прерываний и особенности синхронизации нижних половин
Механизмы синхронизации и примитивы межпроцессного взаимодействия
Запрет прерываний и взаимное исключение с активным ожиданием. Семафоры Дейкстры. Мьютексы. Мониторы Хоара. Условные переменные. Передача сообщений. Барьеры. Аппаратные средства поддержки реализации примитивов синхронизации.
-
Проблемы использования механизмов синхронизации
Классические проблемы межпроцессного взаимодействия. Взаимоблокировки или тупиковые ситуации. Обнаружение, избежание и предотвращение тупиков.
-
Управление вводом-выводом
Принципы программного обеспечения ввода-вывода
Управляемый прерываниями ввод-вывод. Ввод-вывод с использованием механизмов прямого доступа к памяти. Программные уровни ввода-вывода.
Организация связи ядра ОС с драйверами
Символьные и блочные устройства ввода-вывода. Очереди запросов блочного ввода-вывода. Подсистема буферизации и планировщики ввода-вывода. Алгоритмы планирования ввода-вывода.
-
Управление устройствами ввода-вывода
Символьные устройства и терминалы. Устройства графического ввода-вывода и графические интерфейсы пользователя. Сетевые интерфейсы и устройства ввода-вывода.
-
Управление специальными устройствами
Программные и аппаратные таймеры. Программные интерфейсы управления таймерами. Управление энергосбережением.
-
Файловые системы
-
Файлы
Именование файлов. Типы файлов. Доступ к файлам и списки контроля доступа. Атрибуты файлов.
-
Каталоги
Дерево файлов и каталогов ОС. Операции с файлами и каталогами. Имена путей к файлам.
Реализация файловой системы
Виртуальная файловая система и дерево объектов ОС. Реализация файловой системы, как структуры данных. Виды файловых систем.
-
Управление и планирование процессами, потоками и контекстами исполнения
-
Управление и реализация процессов и потоков
Создание и завершение процессов. Состояния процессов. Иерархия процессов. Создание и завершение потоков. Создание потоков, как контекстов исполнения. Планирование и диспетчеризация. Состояния потока, процесса и контекста исполнения. Реализация процессов и потоков, как контекстов исполнения с общим набором ресурсов.
-
Планирование и реализация многозадачности
Вытесняющая и кооперативная многозадачность. Вытесняющие и невытесняющие алгоритмы планирования. Задачи ограниченные скоростью ввода-вывода и скоростью процессора. Стратегии и алгоритмы планирования. Алгоритмы планирования, основанные на квантовании. Алгоритмы планирования, основанные на приоритетах. Дисциплины диспетчеризации. Качество диспетчеризации и гарантии обслуживания. Диспетчеризация задач с использованием динамических приоритетов Балансировка нагрузки в многопроцессорных системах. Моменты перепланировки.
-
Принципы создания параллельных взаимодействующих процессов
-
Задачи параллельных взаимодействующих процессов
Независимые и взаимодействующие вычислительные процессы и потоки. Цели и средства синхронизации.
-
Реализация параллельных взаимодействующих процессов
Критические секции в приложениях. Блокирующие переменные. Средства синхронизации и связи при проектировании взаимодействующих вычислительных процессов. Использование блокировки памяти при синхронизации. Использование семафоров и мьютексов при проектировании взаимодействующих вычислительных процессов и потоков. Ожидание и передача событий при использовании условных переменных.
-
Особенности реализаций современных ОС
Программные интерфейсы современных операционных систем.
Программные интерфейсы и систмные вызовы. Стандарты на программные интерфейсы ОС. Состав базовых системных вызовов стандарта POSIX. Распределение оперативной памяти в реализациях современных ОС.
ОС, как среда взаимодействующих процессов
Классический подход к построению операционной системы как операционной среды взаимодействующих процессов. Понятие операционной оболочки. Языки пакетной обработки, как оболочки системы. Аргументы команд, стандартные потоки ввода-вывода, перенаправление ввода-вывода.
Рассмотрение конкретных реализаций ОС
Семейство операционных систем UNIX. Особенности архитектуры и межпроцессного взаимодействия в OC семейства UNIX. Операционные системы GNU/Linux. Операционная система OpenSolaris. Семейство операционных систем Microsoft Windows NT. Операционная система Minix 3 на основе микроядра.
-
Форматы исполняемых файлов и загрузка программ
Форматы исполняемых файлов
Исполняемые файлы. Стандарты на форматы исполняемых файлов. Форматы файлов ELF, COFF и PE, LE.
-
Загрузка исполняемых файлов
Связь формата исполняемых файлов и логикой загрузки и запуска приложений. Динамические загружаемые библиотеки, как разделяемые объекты кода в памяти.
-
Модель сетевых интерфейсов и поддержка сетевых служб в ОС
-
Концепции распределённой обработки
Принципы идентификации узлов и приложений. Механизмы передачи сообщений. Буферизация и синхронизация примитивов передачи сообщений.
-
Реализация сетевого взаимодействия
Механизм сокетов Беркли. Модели сетевых служб и распределённых приложений. Сетевые файловые системы.
-
Защитные механизмы ОС
-
Локальные механизмы контроля доступа
Понятия аутентификации и авторизации. Механизмы контроля доступа к ресурсам на основе идентификаторов владельцев, запущенных процессов. Списки контроля доступа.
Модели управления доступом
Избирательное управление доступом. Управление доступом на основе ролей Мандатное управление доступом.
-
Сетевые механизмы контроля доступа
Протоколы сетевой аутентификации. Использование несимметричных алгоритмов шифрования для организации безопасной передачи сообщений.
Примеры тем для курсовых работ для дисциплины «Операционные системы»
Реализация быстрых механизмом синхронизации в пространстве пользователя на примере системного вызова futex() в ядре Linux. Работа направлена на исследование механизмов синхронизации между контекстами исполнения с общей памятью, например потоками, не требующих, для проверки занятости ресурса в критической секции, переключения контекста, в связи обращением к ядру через механизмы системных вызовов;
Исследование механизмов аутентификации и авторизации в GNU/Linux через сетевую службу Active Directory под управлением Windows Server. Работа направлена на исследование механизмов локальной проверки пароля при входе в систему и получению авторизационной информации о пользователях и группах через сетевую службу Active Directory;
Влияние алгоритмов планирования ввода-вывода на производительность вычислительной системы. Целью работы является исследование влияния различных планировщиков ввода-вывода в Linux на производительность вычислительной системы, поиск компромиссных вариантов настройки операционной системы в зависимости, решаемых задач;
Реализация работы с образом виртуального жёсткого диска VirtualBox в виде файловой системы в пространстве пользователя. Исследование направлено на изучение формата образа файловой системы и механизмов реализации файловой системы в виде службы. Использованием такого механизма предусмотрено модулем FUSE под Linux, и применяется, в частности, для создания шифрованных файловых систем.
Особенности выбор компилятора для сборки ядра операционной системы. Работа направлена на выявление текущих тенденций в области использования компиляторов, пригодных или не пригодных по тем или иным причинам для сборки ядер операционных систем. Предполагается исследовать особенности тех версий семейства компиляторов GCC, которые используются для сборки ядер ОС в текущих выпусках дистрибутивов GNU/Linux, исследовательской ОС Minix 3 и других Unix-подобных систем и оценить причины и критерии, на основании которых выбраны именно эти версии компилятора.
Использование системного кеша ключей для доступа к сетевым службам. В работе предполагается исследование возможностей пакета keyutils и кеша удостоверений в ядре Linux для доступа различных приложений к различным сетевым службам, используя одни и те же ключи доступа.
Реализация загрузки исполняемого модуля из памяти. Работа направлена на изучение механизмов загрузки динамически загружаемых библиотек. В работе необходимо исследовать особенности процесса загрузки модулей исполняемого кода из динамических библиотек, описать и реализовать упрощённый вариант этого механизма для модуля размещённого в данных или полученного по сети. В работе также можно рассмотреть альтернативные варианты загрузки исполняемого кода в память. Работа может выполняться как под Linux, так и под Windows.
Реализация загрузки динамической библиотеки в формате PE под Linux. Цель работы состоит в изучении формата запускаемых файлов Windows и механизмов размещения и запуска загруженного кода библиотеки в GNU/Linux. Примером применения аналогичной задачи является загрузка под Linux видео кодеков для Windows.
Сборка пакета со специализированным ядром в операционной системе GNU/Linux. Целью работы является исследование процесса конфигурирования, сборки и ядра операционной системы под задачу (уменьшение объёма занимаемого пространства в памяти, поддержка расширенного режима адресации памяти 32-битном режиме работы, ), а также упаковки результат в виде тиражируемого решения.
Реализация альтернативного механизма входа в систему Windows. Работа направлена на исследование механизмов локальной аутентификации и авторизации в семействе ОС Windows NT, основанной на использовании расширяемого набора модулей, используемых через интерфейс библиотеки установки контекста для запускаемых процессов GINA.
Исследование современных реализаций системы запуска ОС GNU/Linux. В работе предполагается разобрать традиционный подход к загрузке ОС SystemV, провести его сравнение с современными альтернативами (upstart, initng, systemd) и дать оценку рассмотренным альтернативам в соответствии с теми задачами, для которых применение этих альтернатив оправдано.
Исследование специализированных возможностей ядра Linux. Работа направлена на исследование специализированных возможностей предоставляемых ядром Linux, но редко используемых традиционных в приложениях с силу кроссплатформенности и совместимости, которой придерживаются разработчики приложений и GNU/Linux дистрибутивов. Предполагается рассмотреть системный вызов создания контекста исполнения clone(), средства управления привилегиями (capabilities), средство группового управления ресурссам процессов (cgroups), виртуализатор уровня ядра, использующий механизмы аппаратной поддержки виртуализации (KVM), модуль поддержки запуска сторонних форматов исполняемых файлов (binfmt_misc), расширяемых механизм уведомлений о событиях (epoll), быстрый механизм синхронизации процессов (futex — fast mutex), модуль создания файловой системы в пространстве пользователя в виде службы (FUSE), расширенный механизм контроля доступа (SELinux), Механизм быстрой перезагрузки ядра (kexec) и т.д.
Исследование специализированных возможностей ОС OpenSolaris. Работа направлена на исследование специализированных возможностей предоставляемых ОС OpenSolaris. Предполагается рассмотреть файловую систему ZFS, предоставляющую широкие возможности для резервного копирования, распределения дисковых ресурсов и управления их состоянием, встроенный механизм динамической трассировки приложений уровня ядра ОС (DTrace), технология виртуализации на уровне операционной системы (Solaris Containers), механизм создания множества виртуальных сетевых интерфейсов (Crossbow) и т.д.
Исследование специализированных возможностей ОС FreeBSD. Работа направлена на исследование специализированных возможностей предоставляемых ОС FreeBSD. Модули совместимости с приложениями, предназначенным для выполнения в других ОС (включая Linux, SCO UNIX, NetBSD и BSD/OS), поддержка файловой системы ZFS, предоставляющей широкие возможности для резервного копирования, распределения дисковых ресурсов и управления их состоянием, поддержка встроенного механизма динамической трассировки приложений уровня ядра ОС (DTrace), механизм виртуализации уровня операционной системы (Jail) и т.д.
Исследование расширяемого микропрограммного интерфейса EFI. Работа направлена на исследование интерфейса между операционной системой и микропрограммами (EFI — Extensible Firmware Interface), управляющими низкоуровневыми функциями оборудования, предназначенного корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы. EFI предназначен на замену BIOS — традиционного интерфейса используемого всеми IBM PC-совместимыми персональными компьютерами.
Современный формат размещения таблиц разделов GPT. Работа направлена на исследование нового формата таблицы разделов (GUID Partition Table), являющегося частью расширяемого микропрограммного интерфейса (EFI). Новый формат таблицы разделов предназначен в качестве замены главной загрузочной записи (MBR).
Программные интерфейсы и режимы работы современных графических адаптеров. Работа направлена на исследование программных интерфейсов современных графических адаптеров, реализуемых в драйверах ОС, и режимов работы, определяющих отображение памяти графических адапетров в адресное пространство управляющих модулей ядра и приложений.
Двоичный интерфейс приложений x32-psABI для архитектуры x86_64 в ОС GNU/Linux. Работа направлена на исследование реализации режима поддержки двоичного интерфейса x32-psABI в ядре Linux и базовых библиотеках ОС, в котором используются практически все преимущества x86_64, но предлагает 32-битный размер указателей, что позволяет сократить объёмам используемой оперативной памяти в два раза.
Реализация Wine-сервера в ядре Linux. Исследование решения по переносу реализации службы поддержки среды для запуска Windows-приложений в Unix-подобных операционных системах в ядро Linux. Реализация службы wine-сервер позволяет уменьшить накладные расходы на трансляцию системных вызовов, за счёт уменьшения числа переключений контекста процессов, и ускорить работу запускаемых приложений в несколько раз. В результате, некоторые приложения смогут работать быстрее, чем в родной операционной системе.
Архитектура улучшенного программируемого контроллера прерываний APIC. Работа направлена на исследование возможностей предоставляемых улучшенным программируемым контроллером прерываний (Advanced Programmable Interrupt Controller) для многопроцессорных систем, а также изучение работы контроллера на примере модулей использующих его ОС.
Реализация архитектурно-зависимого приложения в ОС Android. Работа направлена на исследование интерфейса для реализация «родных» приложений (NDK — native development kit) в ОС Android, с использованием. Основной целью использования этого интерфейса, обычно, является реализация высокоэффективного кода игровых приложений, способного запускаться на современных мобильных телефонах, планшетных компьютерах, нетбуках и смартбуках.
Объектная модель ядра Linux и её представление в файловой системе /sys. Работа направлена на исследование объектной модели используемой для организации внутренней структуры ядра и её динамического отображения в пространство пользователя через файловую систему /sys. Результатом работы может быть набор модулей ядра, дающих представление об использовании структур ядра в драйверах устройств.
Установка GNU/Linux c корневой файловой системой JFFS2. Работа направлена на изучение файловой системы для флеш-накопителей JFFS2, и возможностям её использования в качестве корневой файловой системы для ОС GNU/Linux.
Алгоритм вычисления списка пакетов по замыканию дерева сборочных зависимостей для заданного множества пакетов. Работа направлена на исследование системы установки ПО в ОС GNU/Linux, применяющих пакетные менеджеры с зависимостями. Целью работы является составление эффективного алгоритма по вычислению минимального списка пакетов необходимых для пересборки заданного множества.
Конфликты компоновки динамически загружаемых библиотек на уровне двоичных интерфейсов. В работе рассматривается проблема загрузки в память одной и той же библиотеки разных версий с разными бинарными интерфейсами. Проблема, в основном, встречается при не явной загрузке модулей расширения скомпонованных с разными версиями библиотек. Целью работы является описание причин, определение потенциальных последствий, проблемы и варианты её избежания.
Примеры тем для лабораторных работ по курсу «Операционные системы»
Создание процессов и запуск приложений с помощью системных вызовов
Изучение механизмом межпроцессного взаимодействия (не именованные каналы, именованные каналы, локальные сокеты, общая память, очереди сообщений)
Создание скриптов для командной оболочки, изучение передачи аргументов командам и приложениям
Реализация событийно-ориентированных приложений с асинхронным вводом-выводом на основе цикла обработки сообщений
Изучение программных интерфейсов работы с потоками соответствующих примитивов синхронизации
Реализация модулей ядра (системных модулей, загружаемых в пространство ядра, и драйверов)
Экзаменационные вопросы по курсу «Операционные системы»
Понятие операционной системы и её место в программном обеспечении. Основные требования, предъявляемые к ОС. ОС, как расширенная или виртуальная машина. ОС, как менеджер ресурсов.
Определение процесса. Состояние процесса. Контекст процесса. Операции над процессами. Переключение контекста.
Синхронизация процессов. Понятие критической секции. Программные решения проблемы критической секции.
Определение потока исполнения кода. Особенности синхронизации потоков. Контекст исполнения.
Семафоры. Типы семафоров (бинарный и общий или считающий). Использование семафоров для синхронизации процессов. Реализация семафоров.
Виды семафоров. Семафор, как основной инструмент синхронизации. Классические задачи синхронизации: поставщик-потребитель, читатель-писатель.
Условные переменные и мониторы. Реализация мониторов с помощью семафоров. Языковые средства, предоставляющие механизм мониторов.
Определение тупиков. Условия появления тупиков. Основные подходы к проблеме тупиков.
Планирование процессов. Основные алгоритмы планирования: «каруселька», приоритетное планирование, «кратчайшая задача первая».
Планирование процессов с приоритетами. Алгоритмы планирования с динамическими приоритетами.
Управление прерываниями. Контроллеры прерываний. Отложенные прерывания и нижние половины. Контекст прерываний и особенности синхронизации нижних половин. Спин-блокировки и их разновидности.
Управление памятью. Типы памяти (по скорости доступа). Стратегии распределения памяти: разделы фиксированного размера, разделы переменного размера, динамическое распределение памяти. Проблема уплотнения памяти.
Виртуальная память. Страничная организация виртуальной памяти. Трансляция виртуальных адресов в реальные. Сегментная организация памяти. Аппаратные механизмы поддержки виртуальной памяти.
Стратегии замещения страниц виртуальной памяти. Механизмы виртуализации памяти, как ресурса. Организация подкачки страниц.
Особенности управления памятью в пространстве ядра. Разделение физической памяти на зоны. Страничная организация памяти в пространстве ядра. Механизмы кеширования памяти.
Особенности управления памятью пространстве пользователя. Адресное пространство процесса. Области памяти в адресном пространстве процесса и их типы.
Управление блочными устройствами ввода-вывода. Компромисс между пропускной способностью и временем доступа в операциях ввода-вывода. Планировщик и алгоритмы планирования ввода-вывода.
Файловые системы. Понятие файла. Основные операции над файлами. Имена файлов. Организация файлов и доступ к ним.
Модель виртуальной файловой системы. Дерево объектов, как универсальный механизм организации доступа к глобальным объектам. Специальные виды файлов.
Форматы исполняемых файлов и загрузка их загрузка в адресное пространство процесса. Загрузка динамически загружаемых библиотек
Сетевые интерфейсы и организация поддержки сети. Идентификация узлов и приложений в сети.
Защитные механизмы операционных систем. Идентификация и аутентификация. Авторизация. Механизмы ограничения доступа к глобальным объектам. Списки контроля доступа.
-
Учебно-методическое и информационное обеспечение дисциплины «Операционные системы»
основная литература
Таненбаум, Эндрю С. Современные операционные системы. 2-е изд. — СПб. Питер, 2007.
Олифер В.Г., Олифер Н. А. Сетевые операционные системы — СПб.: Питер, 2008
Синельников Е. А. Курс. Операционные системы. — 2010.
http://course.sgu.ru/course/view.php?id=206
дополнительная литература
Терехов А. Н. Технологии программирования: учебное пособие — М.: Интернет-Ун-т Информ. Технологий, 2007 ; М.: БИНОМ. Лаб. знаний, 2007.
Липаев В. В. Программная инженерия. Методологические основы. — М.: ТЕИС, 2006.q
Богачёв К. Ю. Основы параллельного программирования — М.: БИНОМ. Лаб. знаний, 2010.
Таненбаум, Эндрю С. Архитектура компьютера. 5-е изд. — СПб. Питер, 2010
Таненбаум, Эндрю С. Операционные системы. Разработка и реализация — СПб. Питер, 2006
Соловьёв В. М. Практикум по операционным системам. Подготовка системных администраторов информационной компьютерной сети Саратовского государственного университета. Linux-системы — Саратов: Изд-во Сарат. ун-та, 2009.
Гласс Г., Эйблс К. UNIX для программистов и пользователей. — СПб.: БХВ-Петербург, 2004.
Курячий Г. В., Маслинский К. А. Операционная система Linux. — 2005.
http://www.intuit.ru/department/os/linux/
программное обеспечение и Интернет-ресурсы
ОС GNU/Linux или OC Windows XP/7;
консольный файловый менеджер (Far под Windows или mc под Linux);
утилита удалённого доступа к терминалам Putty (только под Windows);
утилита удалённого доступа к файлам WinSCP (только под Windows);
виртуализатор VirtualBox (версии 4.0.4 или старше);
система контроля версий Git (средства интеграции опционально).