
- •Управление процессами. Состояние процессов.
- •2 Способ-использование блокирующих переменных. С каждым разделяемым ресурсом связывается двоичная переменная, которая принимает значение 1, если ресурс свободен и0-если занят
- •Сегментное распределение памяти.
- •Странично-сегментное распределение.
- •Физическая организация устройств ввода-вывода.
- •Независимый от устройств слой операционной системы. Пользовательский слой по.
- •Кэширование диска.
- •Общая модель файловой системы
- •Современные архитектуры файловых систем.
- •Распределенные файловые системы.
- •Базовые примитивы передачи сообщений в распределенных системах.
- •Способы адресации в распределенных системах.
- •Буферизуемые и небуферизуемые примитивы.
- •2 Подхода: -связан с использованием шлюзов(шлюз согласует коммуник-е протоколы 1го стека с ком.Проток.2го.)
- •Вопросы реализации гетерогенных сетей. Варианты размещения программных средств.
Сегментное распределение памяти.
Виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом с учетом смыслового значения содержащейся в них информации. При загрузке процесса часть сегментов помещается в оперативную память, а часть сегментов размещается в дисковой памяти. Во время загрузки система создает таблицу сегментов процесса ,в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти..
Странично-сегментное распределение.
Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц, структура которой полностью совпадает со структурой таблицы страниц, используемой при страничном распределении. Для каждого процесса создается таблица сегментов, в которой указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активизируется соответствующий процесс.
Физическая организация устройств ввода-вывода.
Блок-ориентированные устройства хранят информацию в блоках фиксированного размера, каждый из которых имеет свой собственный адрес. Самое распространенное блок-ориентированное устройство - диск. Байт-ориентированные устройства не адресуемы и не позволяют производить операцию поиска, они генерируют или потребляют последовательность байтов. Примерами являются терминалы, строчные принтеры, сетевые адаптеры.
Внешнее устройство обычно состоит из механического и электронного компонента. Электронный компонент называется контроллером устройства или адаптером. Механический компонент представляет собственно устройство. Операционная система обычно имеет дело не с устройством, а с контроллером. Контроллер, как правило, выполняет простые функции, например, преобразует поток бит в блоки, состоящие из байт, и осуществляют контроль и исправление ошибок. Каждый контроллер имеет несколько регистров, которые используются для взаимодействия с центральным процессором.
Организация программного обеспечения ввода-вывода. состоит в разбиении его на несколько уровней, нижние уровни обеспечивают экранирование особенностей аппаратуры от верхних, а те обеспечивают удобный интерфейс для пользователей. Ключевым принципом является независимость от устройств. Вид программы не должен зависеть от того, читает она с гибкого или с жесткого. Другим важным вопросом является обработка ошибок.Ошибки следует обрабатывать как можно ближе к аппаратуре. Если контроллер обнаруживает ошибку чтения, то он должен попытаться ее скорректировать. Если ему не удается, то исправляет драйвер устройства.
Ключевой вопрос - это использование блокирующих (синхронных) и неблокирующих (асинхронных) передач. Большинство операций физического ввода-вывода выполняется асинхронно - процессор начинает передачу и переходит на другую работу, пока не наступает прерывание.
Последняя проблема состоит в том, что одни устройства являются разделяемыми, а другие - выделенными.
Для решения поставленных проблем целесообразно разделить программное обеспечение ввода-вывода на четыре слоя :
-Обработка прерываний, -Драйверы устройств,
-Независимый от устройств слой операционной системы, -Пользовательский слой программного обеспечения.
Обработка прерываний. Драйверы устройств.
Прерывания должны быть скрыты как можно глубже в недрах операционной системы, чтобы как можно меньшая часть ОС имела с ними дело. Наилучший способ состоит в разрешении процессу, инициировавшему операцию ввода-вывода, блокировать себя до завершения операции и наступления прерывания.
Весь зависимый от устройства код помещается в драйвер устройства. Каждый драйвер управляет устройствами одного типа или, может быть, одного класса.
В ОС только драйвер устройства знает о конкретных особенностях какого-либо устройства. Драйвер устройства принимает запрос от устройств программного слоя и решает, как его выполнить. Если драйвер был свободен во время поступления запроса, то он начинает выполнять запрос немедленно. Если же он был занят обслуживанием другого запроса, то вновь поступивший запрос присоединяется к очереди уже имеющихся запросов, и он будет выполнен, когда наступит его очередь.