- •История операционных систем; понятия операционных систем (понятие Оперативной системы читай из первого вопроса (весь первый вопрос)
- •3) Технологии ввода/вывода, интерфейсы операционных систем; пакетная технология.
- •4 Виды операционных систем. Архитектура операционных систем.
- •5 Модели процессов и потоков.
- •2.1.2 Модель процесса
- •2.1.4 Завершение процесса
- •2.1.5 Иерархия процессов
- •2.1.6 Состояние процессов
- •2.2.2 Модель потока
- •2.2.3 Преимущества использования потоков
- •6 Управление процессами.
- •7Потоки в процессах и реализация многопоточности.
- •Типы реализации потоков
- •8 Гонки. Взаимное исключение и его реализация.
- •9 Виды и механизмы прерываний.
- •10Необходимость синхронизации и гонки, критическая секция
- •11 Блокирующие переменные, семафоры, мьютексы.
- •Семафоры
- •12 Мониторы, тупики, синхронизирующие объекты.
- •13 Задача об обедающих философов.
- •14 Задача о читателях и писателях.
- •16 Алгоритмы планирования процессов.
- •Алгоритмы планирования процессов
- •17 Фиксированное и динамическое распределение памяти.
- •18 Страницы и сегменты в памяти, адресация.
- •19 Кэширование данных, свопинг.
- •20 Виртуальная память: таблицы страниц. Оверлейные структуры
- •21 Файлы и их атрибуты.
- •11.1.5 Атрибуты файла
- •22 Каталоги и приемы их организации.
- •23 Методики размещения файлов.
- •24 Реализация файловых систем.
- •25 Надежность и производительность файловых систем.
- •26 Журнализация.
- •27 Файловая система fat.
- •28 Файловая система ntfs.
- •29 Файловые системы Ext2 и Ext3.
- •Система адресации данных
Типы реализации потоков
Типы реализации потоков: - Поток в пространстве пользователя. Каждый процесс имеет таблицу потоков, аналогичную таблице процессов ядра. Достоинства и недостатки этого типа следующие. Достоинства: Возможность реализации на ядре, не поддерживающем многопоточность, Более быстрое переключение, создание и завершение потоков, Процесс может иметь собственный алгоритм планирования. Недостатки: Отсутствие прерывания по таймеру внутри одного процесса, При использовании блокирующего системного запроса для процесса все его потоки блокируются, Сложность реализации.
-
8 Гонки. Взаимное исключение и его реализация.
Эффект гонок - это ситуация, когда два или более процессов обрабатывают разделяемые данные, и конечный результат обработки зависит от соотношения скоростей процессов. Это значит что, если процессу не хватило кванта времени для обработки разделяемых ресурсов, то другой процесс может войти в состояние выполнения и модифицировать разделяемый ресурс так, что при возврате управления первому процессу, ресурс станет для него неактуальным (непригодным для использования
«взаимное исключение»— одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков.
Чтобы исключить эффект гонок по отношению к некоторому ресурсу, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.
Простейший способ обеспечить взаимное исключение - позволить процессу, находящемуся в критической секции, запрещать все прерывания.
Другим способом является использование блокирующих переменных. С каждым разделяемым ресурсом связывается двоичная переменная, которая принимает значение 1, если ресурс свободен (то есть ни один процесс не находится в данный момент в критической секции, связанной с данным процессом), и значение 0, если ресурс занят. Если все процессы написаны с использованием вышеописанных соглашений, то взаимное исключение гарантируется. Следует заметить, что операция проверки и установки блокирующей переменной должна быть неделимой.
9 Виды и механизмы прерываний.
Прерывание — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.[1]
В зависимости от источника возникновения сигнала прерывания делятся на:
-
асинхронные или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ);
-
синхронные или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;
-
программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.
Механизм прерываний поддерживается аппаратными средствами компьютера и программными средствами операционной системы. Аппаратная поддержка прерываний имеет свои особенности, зависящие от типа процессора и других аппаратных компонентов, передающих сигнал запроса прерывания от внешнего устройства к процессору (таких, как контроллер внешнего устройства, шины подключения внешних устройств, контроллер прерываний, являющийся посредником между сигналами шины и сигналами процессора).
Программное прерывание реализует один из способов перехода на подпрограмму с помощью специальной инструкции процессора Практически все современные процессоры имеют в системе команд инструкции программных прерываний. Одной из причин появления инструкций программных прерываний в системе команд процессоров является то, что их использование часто приводит к более компактному коду программ по сравнению с использованием стандартных команд выполнения процедур. Это объясняется тем, что разработчики процессора обычно резервируют для обработки прерываний небольшое число возможных подпрограмм, так что длина операнда в команде программного прерывания, который указывает на нужную подпрограмму, меньше, чем в команде перехода на подпрограмму.
