Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Концепция ресурсов

Тупики

Концепция работы семафора

Семафор

Механизмы синхронизации.

Строгое чередование

Запрет прерываний

while

{

запретить прерывания

critical section

разрешить прерывания

remained section

}

 

переменная «замок».

Берётся переменная доступная всем процессам.

1. процесс может войти в критическую секцию только тогда, когда значение этой переменной равно 0.

2. при входе 0 -> 1

3. другой процесс видит что установлена 1.

4. а другой процесс видит, что в критической секции 1 и не может туда войти

как только там образовался 0, то «вход свободен»

 

в закрытую секцию по очереди заходят процессы.

Shared turn = 0;

while (some condition)

{

while (harm!=i);

critical section;

turn = 1-I;

remainder section;

}

аппаратная поддержка взаимоисключения -

позволяет упростить алгоритмы и повысить их эффективность

 

многие вычисления в процессорах позволяют проверить и изменить значение машинного слова.

 

Команда Swap.

void Swap (int *a, int *b)

{

int tmp = *a;

*a=*b;

*b=tmp;

}

 

key

shared int lock=0

int key;

 

 

Пусть есть 2 процесса:

процесс с высоким приоритетом

с низким

пусть работает 2 процесс, системе появляется 1 поэтому 2 перестает работать.

процесс 2 находится в критической секции, появляется 1, но не может войти к ерит. секцию, при этом 1 забрал процессор. -> происходит зависание

 

в 60-х годах предложен механизм, использовавший семафор.

семафор представляет собой целую переменную, принимающую неотрицательные значения, доступ его процесса, за исключением момента её инициализации, может осуществляться только через 2-е атомарные операции.

P(s): while (s==0)

s=s-1;

--------------------------

­­­­­­­V(s): s=s+1

 

Переменные семафора применяются для решения задач организации взаимодействия процессов.

Очень часто переменная s располагается в коде ядра ОС

 

6.1.2. решение проблемы производитель -> потребитель

пусть 2 процесса обмениваются информацией через буфер ограниченного размера.

 

процесс 2
процесс 1
R1
ждет
удерживает
R2
Если средствами синхронизации пользоваться некорректно, то могут возникнуть непредвиденные затруднения.

 

 

Такая проблема может возникнуть в базах данных.

 

Тупики аппаратные и программные.

Программные тупики.

Множество процессов находится в тупиковой ситуации, если каждый процесс из множества ожидает событие, которое может вызвать другой процесс данного множества.

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

запрос ресурсов – request

использовать ресурс

освободить ресурс

Если ресурса нет, то процесс должен ждать или блокируется

 

<== предыдущая лекция | следующая лекция ==>
Требования, предъявляемые к алгоритму | Алгоритм банкира
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 566; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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