- •Часть 1. Функции, состав и назначение ос
- •Место ос в структуре вычислительной системы
- •Две основные функции, выполняемые операционными системами.
- •Эволюция ос. Многозадачность и режим разделения времени
- •Эволюция ос. Дружественный интерфейс. Сетевые и распределенные ос
- •Классификация ос и краткая характеристика каждого класса
- •Требования, предъявляемые к современным ос. Их краткая характеристика
- •Часть 2. Архитектура ос
- •Монолитные ос
- •Многоуровневые ос. Основные и вспомогательные модули
- •Ядро ос в привилегированном положении
- •Многослойная структура ос и ядра
- •Виртуальные машины и гипервизоры
- •Микроядерная архитектура ос
- •Структура типовой unix-подобной ос
- •Структура ос семейства Windows nt
- •Аппаратная зависимость ос
- •Переносимость ос
- •Часть 3. Управление процессами и потоками
- •Мультипрограммирование или многозадачность. Вытесняющая и невытесняющая многозадачность.
- •Описатели процессов и потоков. Состояния процессов и потоков.
- •Описатели процессов и потоков. Операции над процессами и потоками.
- •20. Планирование и диспетчеризация. Контекст потока
- •Обработка прерываний. Типы прерываний.
- •Системные вызовы. Синхронный и асинхронный режим.
- •Синхронизация процессов и потоков. Блокирующие переменные и семафоры Дийкстры.
- •24. Сигналы. Реакция ос и приложений на сигналы.
- •Часть 4. Управление памятью
- •25. Функции ос по управлению памятью. Организация памяти.
- •26. Иерархия зу. Классификация зу.
- •27. Типы адресов памяти. Способы структурирования вап процесса.
- •28. Алгоритмы распределения памяти без использования внешней памяти. Достоинства и недостатки.
- •29. Виртуальная память и свопинг. Реализация виртуальной памяти.
- •30. Страничное распределение памяти. Преобразование виртуальных адресов в физические.
- •31. Методы выбора страницы для выгрузки ее на диск. Примеры.
- •32. Сегментное и сегментно-страничное распределение памяти. Отличительные особенности.
- •33. Разделяемые и невыгружаемые области памяти.
- •Часть 5. Управление данными
- •34. Основные функции подсистемы управления вводом-выводом.
- •35. Многослойная организация по ввода-вывода.
- •36. Менеджер (диспетчер) ввода-вывода.
- •37. Многоуровневые драйверы.
- •38. Файловая система. Логическая организация. Цели и задачи.
- •39. Типы файлов. Иерархическая структура фс.
- •40. Именование файлов. Типы имен файлов. Примеры.
- •41. Атрибуты файлов. Способы их хранения в конкретных файловых системах.
- •43. Физическая организация и адресация файла. Примеры.
- •Часть 6. Сетевые ос 46. Концепции распределенной обработки данных. Двухзвенные приложения.
- •48. Механизм сокетов. Примитивы передачи сообщений. (лекция 6)
- •Часть 7. Системные программы 49. Понятие и структура систем программирования.
- •50. Интерпретаторы, ассемблеры, макроассемблеры.(лекция 7)
- •51. Отладчики и загрузчики. Функции и назначение (лекция 7)
- •52. Процесс трансляции. Этапы, фазы и проходы.
- •53. Роль рекурсии в грамматике. Примеры. (лекция 7)
- •54. Порождения. Левое и правое порождения. Дерево синтаксического разбора. (лекция7)
Часть 2. Архитектура ос
Монолитные ос
В общем случае организация такой системы является беспорядочной. Несмотря на кажущийся «беспорядок», обладают некоторой долей структурированности
Главная процедура
Служебные процедуры для системных вызовов
Утилиты для служебных процедур
В дополнение к основной операционной системе, загружаемой во время запуска компьютера, многие операционные системы поддерживают загружаемые расширения, в числе которых драйверы устройств ввода-вывода и файловые системы.
Эти компоненты загружаются по мере надобности.
Многоуровневые ос. Основные и вспомогательные модули
Ядро – модули, выполняющие основные функции ОС
Вспомогательные модули
Ядро управляет ресурсами (первая категория функций)
Ядро обслуживает пользовательские приложения (вторая категория функций)
Функции ядра, которые могут вызваться приложениям, образуют интерфейс прикладного программирования (API)
Ядро – запущено и работает резидентно
Вспомогательные модули ОС являются транзитными
Вспомогательные модули оформляются либо как приложения, либо как библиотеки
Вспомогательные модули обращаются к ядру посредством системных вызовов
Ядро выполняется в привилегированном режиме
Ядро ос в привилегированном положении
Ядро имеет привилегии по сравнению с другими компонентами ОС и приложениями для того, чтобы
выступать в роли арбитра при конкуренции за ресурсы вычислительной системы
Ядро имеет привилегии с помощью специальных средств аппаратной поддержки
Архитектура ОС, основанная на привилегированном ядре стала по сутиклассической. Ее используют многие популярные ОС
• Ядро выполняет самые важные функции ОС, именно оно становится той частью ОС, которая работает в привилегированном режиме
• Приложения ставятся в подчиненное положение за счет запрета выполнять в пользовательском режиме некоторые команды машинного языка
Многослойная структура ос и ядра
• Многослойный подход является наиболее универсальным и эффективным способом декомпозиции
программных систем
• Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс
• Многослойный подход обычно распространяется и на структуру ядра
Ядро может состоять из следующих
слоев:
• Средства аппаратной поддержки
• Машинно-зависимые компоненты
• Базовые механизмы ядра
• Менеджеры ресурсов
• Интерфейс системных вызовов • В реальной системе количество слоев и распределение функций между ними может быть и иным
• Менеджеры ресурсов могут обладать многослойной структурой: менеджер ввода-вывода может состоять из нескольких слоев
• Нижний слой образуют драйверы устройств, а верхние слои – драйверы файловых систем
• Иногда допускается обращение от нижнего слоя к функциям верхних
• Увеличение числа ведет к некоторому замедлению работы ядра за счет дополнительных расходов на межслойное взаимодействие, а уменьшение числа ухудшает расширяемость и логичность системы.
Виртуальные машины и гипервизоры
Виртуальная машина (ВМ, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host — хост-платформа, платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница);
также спецификация некоторой вычислительной среды (например: «виртуальная машина языка программирования Си»).
Виртуальная машина исполняет некоторый машинно-независимый код (например, байт-код, шитый код, p-код) или машинный код реального процессора. Помимо процессора, ВМ может эмулировать работу как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливать операционные системы (например, Windows можно запускать в виртуальной машине под Linux или наоборот). На одном компьютере может функционировать несколько виртуальных машин (это может использоваться для имитации нескольких серверов на одном реальном сервере с целью оптимизации использования ресурсов сервера).
