- •Назначение и функции ос
- •Классификация ос
- •Архитектура ос
- •Управление процессами, состояния процессов, системные очереди.
- •Планирование с динамическими приоритетами
- •Страничное распределение памяти
- •Стратегии работы со страницами памяти
- •Сегментное распределение памяти
- •Сегментно-страничное распределение памяти
- •Процессы и потоки в ос
- •Проблема синхронизации
- •Средства синхронизации и взаимодействия процессов. Семафоры и мьютексы (posix).
- •Средства синхронизации и взаимодействия процессов. Сигналы и события в ос.
- •Управление файловыми системами, виртуальная фс
- •Файловые системы unix, основные принципы, пример реализации - ext2fs.
- •Журналируемые фс, примеры систем, организация системы ntfs.
- •Современные файловые системы на высокопроизводительных платформах xfs, jfs и zfs
- •Сетевая файловая система, кеширование файловых систем
- •Стандарты в области операционных систем
-
Сегментно-страничное распределение памяти
Как видно из названия, данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, сочетает в себе достоинства обоих подходов. Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц, структура которой полностью совпадает со структурой таблицы страниц, используемой при страничном распределении. Для каждого процесса создается таблица сегментов, в которой указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активизируется соответствующий процесс. На рисунке 2.15 показана схема преобразования виртуального адреса в физический для данного метода.
-
Процессы и потоки в ос
Процесс является динамическим объектом, описывающим выполнение программы. Процессу выделяются системные ресурсы: закрытое адресное пространство, семафоры, коммуникационные порты, файлы и т.д. Процесс характеризуется текущим состоянием (выполнение, ожидание, готовность и т.д.).
• Задача ОС состоит в том, чтобы организовать их поддержку, которая подразумевает, что каждый процесс получит все необходимые ему ресурсы;
• Независимые процессы не должны влиять друг на друга, а процессы , которым необходимо обмениваться информацией, должны иметь возможность сделать это путем межпроцессного взаимодействия.
Каждый новый процесс содержит, по крайней мере, один поток Потоки составляют основу планирования:
Поэтому у каждого потока два стека, один работает в режиме ядра, другой - в режиме пользователя. Один и тот же стек не может использоваться и в режиме пользователя, и в режиме ядра. Любой поток может делать все что угодно со своим собственным стеком (стеком режима пользователя), в том числе организовывать несколько стеков и переключаться между ними. Поток сам может определять размер своего стека.
Процесс (задача) - программа, находящаяся в режиме выполнения.
С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.
Адресное пространство содержит:
-
саму программу
-
данные к программе
-
стек программы
Во многих операционных системах вся информация о каждом процессе, дополнительная к содержимому его собственного адресного пространства, хранится в таблице процессов операционной системы
Каждому процессу соответствует адресное пространство и одиночный поток исполняемых команд. В многопользовательских системах, при каждом обращении к одному и тому же сервису, приходится создавать новый процесс для обслуживания клиента. Это менее выгодно, чем создать квазипараллельный поток внутри этого процесса с одним адресным пространством.
С каждым потоком связывается:
-
Счетчик выполнения команд
-
Регистры для текущих переменных
-
Стек
-
Состояние
1.Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.
2.Быстрота создания потока, по сравнению с процессом, примерно в 100 раз.
3.Повышение производительности самой программы, т.к. есть возможность одновременно выполнять вычисления на процессоре и операцию ввода/вывода.
-
Средства синхронизации и взаимодействия процессов. Очереди сообщений, каналы, разделяемая память
Процессам часто нужно взаимодействовать друг с другом, например, один процесс может передавать данные другому процессу, или несколько процессов могут обрабатывать данные из общего файла. Во всех этих случаях возникает проблема синхронизации процессов, которая может решаться приостановкой и активизацией процессов, организацией очередей, блокированием и освобождением ресурсов.