- •Понятие операционной системы (ос). Основные функции ос.
- •Сервисы, предоставляемые типичными ос. Основные этапы развития ос.
- •Классификация ос: по назначению, по режиму обработки задач, по способу взаимодействия с пользователем. Компоненты типичной ос.
- •Типы структур ос. Режимы работы ос. Понятие операционной и программной среды.
- •Системный таймер. Программные таймеры. Сторожевой таймер.
- •Утилиты. Понятие транслятора, компилятора, интерпретатора, ассемблера, дизассемблера, компоновщика, отладчика.
- •Преимущества многозадачного режима работы ос. Понятие процесса. Основные причины создания, завершения процессов в вычислительной системе (вс).
- •Модели процесса: с двумя состояниями, с пятью состояниями.
- •Описание процессов: атрибуты, управляющий блок (дескриптор). Действия ос при создании, переключении процессов.
- •Подходы к разработке кода ос по отношению к процессам.
- •Понятие потока. Сравнение процессов и потоков. Понятие, преимущества многопоточности.
- •Способы реализации потоков: в пространстве пользователя, в пространстве ядра, смешанная. Кратко
- •Подробно
- •Виды планирования процессов (потоков). Краткосрочное планирование: режимы решения, стратегии.
- •Стратегии распределения ресурсов вс: одноочередные, многоочередные.
- •Основные режимы работы вс.
- •Основные категории ресурсов ос. Типы доступа к ресурсам ос.
- •Понятие взаимной блокировки (тупика). Примеры, условия возникновения, обнаружение, предупреждение взаимоблокировок.
- •Понятие параллельных, последовательных процессов (потоков). Виды взаимодействия процессов (потоков). Проблемы взаимодействия параллельных процессов (потоков). Пример состояния гонок.
- •Понятие взаимного исключения, критического ресурса, критической секции. Проблемы, условия, способы взаимного исключения.
- •Механизмы взаимодействия процессов (потоков): очереди сообщений, разделяемая память, обмен сообщениями, сокеты.
- •Понятие семафора. Решение задачи взаимоисключения с использованием семафора. Понятие сигнализирующего семафора, мьютекса, монитора.
- •Проблема читателей-писателей
- •Вторая проблема читателей-писателей (приоритет писателя)
- •Третья проблема читателей-писателей (честное распределение ресурсов)
- •Понятие памяти. Функции подсистемы управления памятью. Типы адресов. Понятие виртуального адресного пространства (вап). Типы структур вап. Способы преобразования виртуальных адресов в физические.
- •Механизмы распределения памяти: разделами, свопинг, виртуальная память.
- •Механизмы распределения памяти: страничный.
- •Механизмы распределения памяти: сегментный, сегментностраничный.
- •Принципы организации подсистемы ввода-вывода. Способы реализации ввода-вывода. Уровни подсистемы ввода-вывода.
- •Понятие файловой системы (фс), файла. Функции фс.
- •Физическая организация фс, файла. Логическая организация фс.
- •Свойства безопасной информационной системы. Понятие угрозы, атаки, риска. Классификация угроз. Функции ос по защите данных.
- •Современне ос. Тенденции, перспективы развития современных ос.
Основные категории ресурсов ос. Типы доступа к ресурсам ос.
Основные категории ресурсов операционной системы (ОС) включают в себя:
Процессорное время: это время, в течение которого процессор выполняет инструкции программы. ОС управляет доступом к процессору, определяя, какие программы могут выполняться в данный момент, и предоставляя им необходимое количество процессорного времени.
Память: это место на жестком диске, где хранятся данные и программы. ОС контролирует доступ к памяти, распределяя ее между различными программами и обеспечивая их корректную работу.
Устройства ввода-вывода: это различные устройства, такие как клавиатура, мышь, принтер и т. д., которые используются для ввода и вывода данных. ОС также контролирует доступ к этим устройствам, позволяя программам использовать их для выполнения своих задач.
Сетевые ресурсы: это ресурсы, доступные через сеть, такие как интернет, принтеры в сети и т. д. ОС управляет доступом к этим ресурсам, обеспечивая безопасность и корректность их использования.
Типы доступа к ресурсам операционной системы Windows и Linux могут включать:
– Совместное использование ресурсов: этот тип доступа позволяет нескольким программам одновременно использовать один и тот же ресурс. Например, несколько программ могут одновременно использовать одну и ту же память или процессорное время.
– Разделение ресурсов: этот тип доступа означает, что каждый ресурс используется только одной программой в определенный момент времени. Например, принтер может быть использован только одной программой в каждый момент времени.
– Эксклюзивный доступ: этот тип доступа предоставляет программе полный контроль над ресурсом, и другие программы не могут получить к нему доступ. Например, программа может получить эксклюзивный доступ к файлу, чтобы другие программы не могли его изменять.
Понятие взаимной блокировки (тупика). Примеры, условия возникновения, обнаружение, предупреждение взаимоблокировок.
Взаимная блокировка (также известная как тупик) - это состояние, при котором два или более процессов или потоков пытаются получить доступ к общим ресурсам, но ни один из них не может продолжать свою работу из-за того, что все ресурсы заняты другими процессами.
Пример: предположим, что у нас есть три процесса: A, B и C. Процесс A хочет получить доступ к ресурсу R1, процесс B хочет получить доступ к R2, а процесс C хочет получить доступ и к R1 и R2. Если все три процесса попытаются получить доступ к своим ресурсам одновременно, то возникнет взаимная блокировка, так как ни один из процессов не сможет продолжить свою работу, поскольку все ресурсы будут заняты другими процессами.
Тупиковая ситуация по примеру выше
Условия возникновения взаимных блокировок:
1. Условие взаимного исключения. Каждый ресурс либо выделен в данный момент только одному процессу, либо доступен.
2. Условие удержания и ожидания. Процессы, удерживающие в данный момент ранее выделенные им ресурсы, могут запрашивать новые ресурсы.
3. Условие невыгружаемости. Ранее выделенные ресурсы не могут быть принудительно отобраны у процесса. Они должны быть явным образом высвобождены. *Процессы не могут быть принудительно завершены или вытеснены из процессора.*
тем процессом, который их удерживает.
4. Условие циклического ожидания. Должна существовать кольцевая последовательность из двух и более процессов, каждый из которых ожидает высвобождения ресурса, удерживаемого следующим членом последовательности.
Для возникновения ресурсной взаимоблокировки должны соблюдаться все четыре условия. Если одно из них не соблюдается, ресурсная взаимоблокировка невозможна.
Обнаружение взаимоблокировок может реализовываться с помощью технологии обнаружения и восстановления. При ее использовании система не пытается предотвращать взаимоблокировки. Она позволяет им произойти, пытается обнаружить момент их возникновения, а затем предпринимает некоторые действия по восстановлению работоспособности.
Существует несколько технологий обнаружения и восстановления взаимных блокировок (тупиков) в операционных системах:
– Анализ системных вызовов: ОС может отслеживать системные вызовы, которые выполняются процессами, и анализировать их, чтобы определить, есть ли вероятность возникновения тупика.
– Использование блокировок и ожидания: ОС может использовать блокировки и ожидания для контроля доступа процессов к ресурсам. Если процесс пытается получить блокировку на ресурс, который уже заблокирован другим процессом, ОС может приостановить его выполнение до тех пор, пока блокировка не будет снята.
– Применение алгоритмов обнаружения тупиков: существуют специальные алгоритмы, которые позволяют обнаруживать тупики в системе на основе анализа текущего состояния процессов и ресурсов. Эти алгоритмы могут быть реализованы как часть операционной системы или как отдельное приложение.
Восстановление после тупика может включать в себя несколько методов:
– Перезапуск одного или нескольких процессов: если ОС обнаруживает тупик, она может перезапустить один или несколько процессов, чтобы освободить занятые ими ресурсы.
– Приоритизация процессов: ОС может изменять приоритеты процессов таким образом, чтобы высокоприоритетные процессы имели больше шансов получить доступ к необходимым ресурсам.
Для предупреждения взаимных блокировок процессов можно использовать следующие методы:
Предотвращение возникновения тупиковых ситуаций: для этого необходимо правильно планировать доступ процессов к ресурсам с учетом их потребностей и приоритетов.
Использование блокировок и ожиданий: применение блокировок и ожиданий позволяет контролировать доступ процессов к ресурсам и предотвращать возникновение тупиковых ситуаций.
Применение алгоритмов обнаружения тупиковых ситуаций: использование специальных алгоритмов для обнаружения тупиков позволяет быстро выявлять и устранять их.
Перераспределение ресурсов: в случае возникновения тупиковой ситуации, можно перераспределить ресурсы между процессами таким образом, чтобы они могли продолжить свою работу.