- •Дисциплины замещения сегментов в памяти
- •Дисциплины замещения страниц в Unix и Windows системах.
- •Классификация ос. Архитектурные особенности ос
- •Контекст процесса и его состояния
- •Простейшая диаграмма состояний процесса
- •Механизмы межпроцессного взаимодействия (каналы, очереди сообщений, разделяемая память)
- •Механизмы синхронизации: блокирующие переменные, семафоры, мониторы. Блокирующие переменные (мьютексы):
- •Семафоры
- •Мониторы (условные переменные)
- •Мультипрограммирование. Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой
- •1) Реализация защитных механизмов.
- •2) Наличие прерываний.
- •3) Развитие параллелизма в архитектуре.
- •Общая схема обработки прерываний в однопрограммной ос.
- •Оверлейный способ распределения памяти.
- •Основное отличие процессов и потоков.
- •Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой.
- •12. Особенности эффективного использования таблицы страниц: многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование.
- •Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.
- •Планирование процессов и потоков: критерии, виды, алгоритмы планирования.
- •Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос
- •Понятие пространственной и временной локальности
- •Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков.
- •Понятия дорожки, сектора, блока на жестком диске
- •Принцип работы ассоциативной памяти. Ассоциативная память
- •Принципы построения файловой системы: интерфейс, функциональная схема, типовая структура файловой системы.
- •Проблемы синхронизации (тупики) и способы их разрешения
- •Распределение памяти: общие принципы управления памятью в однопрограммных ос, распределение памяти фиксированными, динамическими, перемещаемыми разделами.
- •Роль прерываний при мультипрограммировании.
- •Сегментное распределение памяти
- •Способы выделения дискового пространства. Управление дисковым пространством. Размер логического блока
- •Страничное распределение памяти
- •Управление памятью: задачи управления, типы адресации.
- •Физическая организация жесткого диска
- •Что понимается под «пробуксовкой» страниц памяти?
Классификация ос. Архитектурные особенности ос
ОС – это программа, которую можно реализовать с использованием процедур и функций. Если при этом составные части реализованы не в виде отдельных модулей или подсистем, а объединены в виде одной программы, то такая архитектура построения ОС называется монолитным ядром.
Архитектурные особенности ОС
Монолитное ядро
Характеризуется тем, что:
каждая процедура может вызвать каждую
все процедуры работают в привилегированном режиме
все части монолитного ядра работают в одном адресном пространстве
ядро «совпадает» со всей ОС
сборка ядра осуществляется отдельно для каждого компьютера при установке
при добавлении, исключении отдельных компонент требуется перекомпиляция
старейший способ организации ОС
Пример систем с монолитным ядром - большинство Unix-подобных систем.
Многоуровневые системы. Всю вычислительную систему можно разбить на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты уровня N-1.
Виртуальные машины
Виртуальная машина реализует для пользователя имитацию hardware в вычислительной системе. При обращении к «виртуальному hardware» на уровне привилегированных команд в действительности происходит системный вызов реальной ОС, которая и производит все необходимые действия.
Системный вызов – обращение прикладной программы к ядру ОС для выполнения какой-либо операции. Обычно выглядит как вызов подпрограммы или функции из системной библиотеки. Однако системный вызов как частный случай вызова такой функции или подпрограммы следует отличать от более общего обращения к системной библиотеке, поскольку последнее может и не требовать выполнения привилегированных операций.
Микроядерная архитектура
При разработке ОС существует тенденция, состоящая в перенесении значительной части системного кода на уровень пользователя и одновременной минимизации ядра.
При этом построение ядра ОС в микроядерной архитектуре осуществляется так, что большинство составляющих ОС являются самостоятельными программами.
В этом случае взаимодействие между ними обеспечивает специальный модуль ядра – микроядро, работающее в привилегированном режиме и обеспечивающее взаимодействие между программами, планирование использования процессора, первичную обработку прерываний, операции ввода-вывода и базовое управление памятью.
Характеризуется(+):
высокой степенью модульности ядра, что существенно упрощает добавление и отладку компонентов (не требуется перезапуск всей ОС).
возможностью без прерывания работы, загружать и выгружать новые драйверы, файловые системы и т. д.
возможностью отладки компонентов ядра с помощью обычных программных средств
повышенной надежностью системы
Характеризуется: (-)
дополнительными накладными расходами, связанными с передачей сообщений
усложнение процесса проектирования при попытке снижения возможных накладных расходов
Смешанные системы
В большинстве случаев современные ОС используют различные комбинации рассмотренных подходов.
Например, ядро ОС Linux представляет собой монолитную систему с элементами микроядерной архитектуры.
Совместно элементы микроядерной архитектуры и элементы монолитного ядра используются в ядре Windows NT:
Классификация ОС. Особенности алгоритмов управления ресурсами
В зависимости от особенностей использованного алгоритма управления процессором, ОС делят на:
многозадачные и однозадачные
многопользовательские и однопользовательские
поддерживающие многонитевую обработку / не поддерживающие
на многопроцессорные и однопроцессорные
Поддержка многозадачности
Однозадачные ОС (MS-DOS, MSX):
выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером
включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.
Многозадачные ОС (OC EC, OS/2, UNIX, Windows 95), кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского режима
Однопользовательские: MS-DOS, Windows 3.x, ранние версии OS/2;
Многопользовательские: UNIX, Windows NT.
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей.
(!) Не всякая многозадачная система является многопользовательской, и не всякая однопользовательская - однозадачной.
Вытесняющая и невытесняющая многозадачность
Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
невытесняющая многозадачность (NetWare, Windows 3.x) - механизм планирования процессов целиком сосредоточен в ОС;
вытесняющая многозадачность (Windows NT, OS/2, UNIX) - механизм планирования процессов распределен между системой и прикладными программами.
При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление ОС для того, чтобы та выбрала из очереди другой готовый к выполнению процесс.
При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается ОС, а не самим активным процессом.