
- •2. Функциональные компоненты операционной системы.
- •3. Понятие задачи, процесса, потока.
- •4. Управление процессами
- •5. Алгоритмы планирования процессов и потоков
- •6. Синхронизация процессов
- •7. Управление памятью. Виртуализация памяти
- •8. Страничное распределение памяти
- •11. Файловые системы ос
- •10. Кэширование данных
- •12. Физическая организация файловой системы
- •13. Устройства ввода-вывода. Функции драйверов
- •14. Ос Windows nt
- •15. Ос Linux
- •16. Командный интерпретатор bash
6. Синхронизация процессов
Потребность в синхронизации процессов возникает только в мультипрограммных ОС и связана с совместным использованием аппаратных и информационных ресурсов вычислительной системы.
Суть синхронизации процессов состоит в согласовании их скоростей путем приостановки процесса до наступления некоторого события и последующей его активизации при наступлении этого события.
Сложность проблемы синхронизации состоит в нерегулярности возникающих ситуаций при взаимодействии процессов. Пренебрежение вопросами синхронизации может привести к неправильной работе процессов или даже к краху системы. Примерами таких ситуаций являются гонки и тупики.
Гонками называются ситуации, когда в отсутствие синхронизации два (или более) процесса обрабатывают разделяемые данные и конечный результат зависит от со- отношения скоростей процессов.
Тупики – это взаимные блокировки процессов, могущие возникать вследствие не- достаточно корректного решения задачи синхронизации и состоящие в том, что ряд процессов удерживает ресурсы, запрашиваемые другими процессами, и в то же вре- мя запрашивает ресурсы, удерживаемые другими.
7. Управление памятью. Виртуализация памяти
Виртуализация оперативной памяти осуществляется совокупностью аппаратных средств процессора и программных средств ОС и включает решение следующих задач:
размещение данных (образов процессов или их частей) в запоминающих устройствах разного типа: частично – в оперативной памяти, частично – на диске;
выбор образов процессов или их частей для перемещения из оперативной памя- ти на диск и обратно;
перемещение данных между памятью и диском;
преобразование виртуальных адресов в физические.
Решение этих задач осуществляется автоматически, без участия программиста, и не отображаются в логике работы приложений.
Виртуализация памяти может быть осуществлена на основе двух подходов – свопинга и механизма виртуальной памяти.
Свопинг.
Между оперативной памятью и диском перемещаются образы процессов. Более простой в реализации способ, чем виртуальная память. Однако обладает избыточностью при подкачке или выгрузке: часто для активизации процесса или освобождения памяти не требуется перемещение всего образа процесса. Избыточность приводит к замедлению работы системы и неэффективному использованию памяти. Кроме того, невозможно загрузить для выполнения процесс, виртуальное адресное пространство которого превышает имеющуюся в наличии свободную память.
Виртуальная память.
Между оперативной памятью и диском перемещаются части образов процессов.
Выделяется три класса виртуальной памяти:
Страничное распределение. Единицей перемещения между памятью и диском является страница – часть виртуального адресного пространства фиксированного и небольшого объёма.
Сегментное распределение. Единицей перемещения между памятью и диском является сегмент – часть виртуального адресного пространства произвольного объёма, содержащая осмысленную с некоторой точки зрения совокупность данных.
Сегментно-страничное распределение. Объединяет элементы предыдущих классов. Виртуальное адресное пространство структурируется иерархически: делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения между памятью и диском является страница.