рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Семафор

Семафор - раздел Образование, Операционные системы, среды и оболочки Рассмотрим, Как Операционная Система С Разделением Времени Управляет Дей­стви...

Рассмотрим, как операционная система с разделением времени управляет дей­ствиями машины с одним принтером. Если процессу необходимо распечатать результаты, он должен запросить доступ к драйверу принтера у операционной системы. На этом этапе операционная система должна решить, предоставлять ли доступ, исходя из того, используется ли принтер в данный момент другим про­цессом. Если принтер свободен, операционная система удовлетворяет запрос и по­зволяет процессу продолжать работу, в противном случае операционная система отклоняет запрос и классифицирует процесс как находящийся в состоянии ожи­дания, до тех пор пока принтер не освободится. Если два процесса одновременно получат доступ к принтеру, то это будет бесполезным для них.

Для того чтобы управлять доступом к принтеру, операционная система долж­на отслеживать, свободен ли принтер. Это можно сделать в помощью флага, ко­торый в данном случае представляет собой бит в памяти, о котором говорят, что он либо установлен, либо сброшен, а не имеет значение 0 или 1. Сброшенный флаг обозначает, что принтер доступен, а установленный флаг — что принтер занят. На первый взгляд может показаться, что при таком подходе не возникает никаких непредвиденных сложностей. Операционная система просто проверяет флаг каждый раз, когда требуется доступ к принтеру. Если он пуст, то требование процесса удовлетворяется и операционная система устанавливает флаг. Если же флаг уже установлен, операционная система просит процесс подождать. Каждый раз, когда процесс заканчивает работу с принтером, операционная система или отдает принтер ждущему процессу, или, если ждущих процессов нет, оставляет флаг пустым.

Хотя при первом рассмотрении такое решение и кажется хорошим, однако существуют трудности. Для того чтобы проверить и установить флаг, требуется несколько машинных команд. Следовательно, задачу можно прервать после того, как обнаружен пустой флаг, и до того, как флаг будет установлен. Таким обра­зом, мы будем иметь соответствующий сценарий.

Предположим, что принтер доступен в данный момент, и некоторый процесс запрашивает доступ к нему. Система проверяет флаг и обнаруживает, что он пустой. Однако в этот момент процесс прерывается, и начинается квант времени другого процесса, который также запрашивает доступ к принтеру. Система опять проверяет флаг, он пуст, поскольку предыдущий процесс был прерван до того, как операционная система установила флаг. Следовательно, операционная систе­ма позволяет второму процессу использовать принтер. Позже первый процесс возобновляется с того состояния, когда он был прерван, то есть сразу после того, как операционная система выяснила, что флаг пуст. Поэтому система предостав­ляет доступ к принтеру и первому процессу. В итоге два процесса одновременно используют один и тот же принтер.

Сложность состоит в том, что проверка и установка флага должны завершать­ся без прерывания. Для решения этой проблемы можно использовать команды блокировки и разрешения прерывания, которые есть в большинстве машинных языков. Выполнение команды блокировки прерываний приводит к блокировке последующих прерываний, тогда как команда разрешения прерываний снимает блокировку, и центральный процессор вновь обрабатывает поступающие сигна­лы прерываний. Следовательно, если операционная система начинает процедуру проверки флага с выполнения команды блокировки прерываний, а заканчивает ее выполнением команды разрешения прерываний, то эта процедура не может быть прервана никакими другими процедурами.

Другая возможность разрешения этой проблемы — использовать команду «проверить-и-установить» (test-and-set), которая доступна во многих машинных язы­ках. Эта команда предписывает центральному процессору извлечь значение фла­га, проанализировать его, а затем установить флаг, все в пределах одной команды. Преимущество такой команды состоит в том, что центральный процессор всегда завершает проверку и установку флага, поскольку эти действия выполняются за одну команду.

Описанный выше метод используется для установки флагов, называемых се­мафорами (semaphore), по аналогии с железнодорожным сигналом, который ис­пользуется для управления доступом к частям дороги. Использование семафо­ров в системах программного обеспечения очень похоже на их использование в железнодорожных системах. Части дороги, которая может вмещать только один поезд, соответствует набор команд, который в данный момент времени может выполняться только одним процессом. Такая последовательность команд назы­вается критической областью (critical region). Требование того, чтобы в данный момент времени только один процесс мог выполнять команды из критической области, называется взаимным исключением доступа (mutual exclusion). Обычно для обеспечения взаимного исключения доступа к критической области исполь­зуется семафор. Для того чтобы процесс мог войти в критическую область, сема­фор должен быть пустым. Перед тем как войти, процесс устанавливает семафор, а при выходе из критической области он очищает семафор. Если семафор уста­новлен, процесс, пытающийся войти в критическую область, должен подождать, пока он станет пустым.

 

– Конец работы –

Эта тема принадлежит разделу:

Операционные системы, среды и оболочки

Операционные системы среды и оболочки...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Семафор

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Прикладные программы
BIOS (Basic Input Output System) — это аббревиатура, которая переводится с английского как «базовая система ввода-вывода». Необходимый ми­нимум программ, позволяющий компьютеру

Операционная система
Операционная система, сокр. ОС (англ. operating system) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы

Функции операционных систем.
Основные функции: · Выполнение по запросу программ тех достаточно элементарных (низкоуровневых) действий, которые являются общими для большинства программ и часто в

Однопроцессорные системы
  Однопроцессорные машины 40-50-х годов XX века не были ни гибкими, ни эф­фективными. Выполнение программ требовало трудоемких приготовлений: уста­новление лент, помещение перфокарт в

Многопроцессорные системы
В последние годы потребности в обмене информацией и ресурсами привели к ши­рокому распространению связанных систем вычислительных машин, которые называются сетями (networks, или net)

Программное обеспечение
Начнем обсуждение программного обеспечения с рассмотрения его классифика­ции. Всё программное обеспечение можно разделить на две большие груп­пы: прикладное программное обеспечение (appl

Компоненты операционной системы
Часть операционной системы, которая определяет интерфейс между операцион­ной системой и пользователем, часто называется оболочкой (shell). Задача обо­лочки состоит в том, чт

Начало работы операционной системы
  Запуск системы осу­ществляется с помощью процедуры, которая называется начальной загрузкой (bootstrapping, или, сокращенно, booting) и выполняется машиной ка

Выбор операционной системы
  Операционные системы накладывают определенные требования на технические характеристики аппаратного обеспечения. Список этих требований определяет производитель ОС. В него входит, на

При выборе операционной системы для конкретной среды нужно учесть много факторов.
  Прежде всего, нужно убедиться, что ОС полностью соответствует требованиям конечного пользователя. ОС поддерживает работу с необходимыми приложениями? Уровень безопасности и функции

Установка операционной системы
  Перед установкой ОС жесткий диск форматируется и разбивается на несколько логически изолированных частей, называемых разделами или томами. Каждый раздел в системе выглядит как отдел

Установка вручную
Обновления, заменяющие основную часть системного кода, нужно запускать вручную. Обычно их называют пакетами обновлений. Такие пакеты используются для устранения проблем с приложением или ОС или для

Координирование действий машины
  Одним из главных принципов, лежащих в основе современных операционных систем, является разделение понятий программы и деятельности по ее исполне­нию. Программа

Управление процессами
Задачи, связанные с координацией процессов, выполняются планировщиком и диспетчером, которые входят в ядро операционной системы. Планировщик ведет учет процессов, которые пр

Обработка конкуренции между процессами
Важной задачей операционной системы является распределение ресурсов маши­ны между процессами. Здесь мы используем термин «ресурсы» в широком смыс­ле, включая в него и периферийные устройства машины

Взаимная блокировка
Другая проблема, которая может возникнуть во время распределения ресурсов, — взаимная блокировка (deadlock), состояние, когда два или более процесса блоки­руются, поскольку

Организация файловой системы
  Все современные дисковые операционные системы обеспечивают создание фай­ловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним. Фа́йл

Иерархия каталогов
Практически всегда файлы на дисках объединяются в каталоги. Каталоги на разных дисках могут образовывать несколько отдельных деревьев, как в DOS/Windows, или же объединяться в одно дерево, общее дл

Файловые системы FAT32, NTFS
FAT32 (от англ. File Allocation Table — «таблица размещения файлов») — это файловая система, разработанная компанией Майкрософт, разновидность FAT. FAT32 — последняя версия фай

Обслуживание файловой структуры.
  Несмотря на то, что данные о местоположении файлов хранятся в табличной струк­туре, пользователю они представляются в виде иерархической структуры — людям так удобнее, а все необход

Имена дисков
Диски компьютера (а, говоря точнее — все устройства для хранения информации) обозначают буквами английского алфавита, с двоето­чием после буквы, вот так: А:, В: или F:. Первые буквы А: и В: присва­

Имена файлов
В качестве единицы хранения данных принят объект переменной длины, называемый файлом. Файл – это последовательность произвольного числа байтов, обладающая уникальным собстве

Создание каталогов (папок)
  Для си­стематизации хранения и облегчения поиска файлы на дисках рас­пределяют по каталогам (директориям). Каталоги внутри себя могут содержать как

Удаление файлов и каталогов (папок)
  Средства удаления данных не менее важны для операционной системы, чем сред­ства их создания, поскольку ни один носитель данных не обладает бесконечной емкостью. Существует как миним

Файлы документов
Файлы с расширениями .txt, .doc, .rtf содержат внутри себя тек­стовую информацию. Файлы с расширением .txt содержат «чистый» текст, и для их открытия запускается программа «Блокнот». Файлы с расшир

Звуковые файлы
Это файлы с расширениями .wav, .mp3, .mid. В них содержится звуковая информация. Прослушать эти звуки мож­но, если к компьютеру подключены колонки, наушники или другое устройство для воспроизведени

Управление атрибутами файлов
  Кроме имени и расширения имени файла операционная система хранит для каж­дого файла дату его создания (изменения) и несколько флаговых величин, назы­ваемых атрибутами фай

Файловый менеджер
Файловый менеджер (англ. file manager) — компьютерная программа, предоставляющая интерфейс пользователя для работы с файловой системой и файлами. Файловый менеджер позволяет

Наиболее известные двупанельные файловые менеджеры
DOS Norton Commander DOS Navigator Volkov Commander PIE Commander DOS Shell Microsoft Windows FAR Manager

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги