русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ТУПИКОВЫЕ СИТУАЦИИ


Дата добавления: 2013-12-23; просмотров: 812; Нарушение авторских прав


Реализация взаимоисключения с помощью семафоров

Аппаратная реализация взаимоисключения

Главным фактором является наличие одной аппаратной команды, которая осуществляет чтение переменной, запись ее значения в область сохранения и установку нужного конкретного значения этой переменной. Подобная команда, обычно называемая TestAndSet, после запуска выполняет все эти действия до конца без прерываний. Неделимая команда TestAndSet(a,b) читает значение логической переменной b, копирует его в а, а затем устанавливает для b значение “истина”.

Program примерtestandset;

Var активный : логический;

Procedure процессодин;

Var первомувходитьнельзя : логической;

Begin

While истина do

Begin

Первомувходитьнельзя:=истина;

While первомувходитьнельзя do

Testandset(первомувходитьнельзя, активный);

Критическийучастокодин;

Активный:=ложь;

Прочиеоператоры1;

End;

End;

Procedure процессдва;

Var второмувходитьнельзя : логической;

Begin

While истина do

Begin

Второмувходитьнельзя:=истина;

While второмувходитьнельзя do

Testandset(второмувходитьнельзя, активный);

Критическийучастокдва;

Активный:=ложь;

Прочиеоператоры2;

End;

End;

Begin

Активный:=ложь;

Parbegin

Процессодин;

Процессдва;

Parebd

End.

 

Семафор – защищенная переменная, значение которой можно опрашивать и менять только при помощи специальных операций P и V. Операция P(S) выполняется следующим образом S:=S-1. V(S) – S:=S+1. Если одновременно несколько процессов попытаются выполнить операцию P(S), это будет разрешено только одному из них, а остальным придется ждать. Семафоры и операции над ними могут быть реализованы как программно, так и аппаратно. Как правило, они реализуются в ядре операционной системы.



 

Процесс находится в состоянии тупика, если он ожидает события, которое никогда не произойдет. “Зависание” системы – ситуация, когда один или более процессов находятся в состоянии тупика.

Операционная система выполняет по преимуществу функции администратора ресурсов. Она отвечает за распределение обширных наборов ресурсов различных типов. Рассмотрим ресурсы, которые являются “оперативно-перераспределяемыми” такие как центральный процессор и основная память. В вычислительной машине самым динамическим ресурсом является центральный процессор. ЦП должен работать в режиме быстрого переключения, обслуживая большое число конкурирующих процессов, чтобы все они могли двигаться в приемлемой скоростью. Если конкретный процесс достигает точки, когда он не может эффективно использовать ЦП, то право управления центральным процессором отбирается у этого процесса и предоставляется другому. Таким образом, организация динамического переключения ресурсов является исключительно важным фактором для обеспечения работы мультипрограммных вычислительных машин.

 



<== предыдущая лекция | следующая лекция ==>
Алгоритм Деккера. | Предотвращение тупиков, 3 стратегических принципа.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.