- •Лекция 2. Управление процессами
- •Прерывания. Обработка прерываний.
- •Лекция 3.
- •Асинхронные и параллельные процессы
- •Управляющая конструкция для указания параллелизма.
- •Семафоры
- •Лекция 5.
- •4 Необходимых условия возникновения тупика (и и):
- •Лекция 6.
- •Организация управления памятью. Управление памятью. Раздел – физическая память.
- •Организация виртуальной памяти
Семафоры
Это защищенная переменная, значение которой можно опрашивать и менять только при помощи специальных операций P, V и операций инициализации – присвоение первоначального значения. Семафоры бывают двоичные и считающие (от слова считать).
Двоичные могут принимать значения 0 или 1.
Считающие – семафоры со счетчиками – могут принимать неотрицательные целые значения.
-
Операция Р над семафором записывается как P(S):
Если S>0 то S:=S-1 иначе (ожидание на S) (к переменной никто не обращается)
-
Операция V над семафором V(S):
Если (один или более процессов ожидает на S) то (разрешить 1 из этих процессов) иначе S:=S+1
Примитив Р – аналог примитива вход взаимоисключения перед выполнением критического участка.
Примитив V – аналог примитива выход взаимоисключения после выполнения критического участка.
Операции P и V являются неделимыми. Участки взаимоисключения по семафору S обрамляются операциями P(S) и V(S). Если одновременно несколько процессов пытаются выполнить операцию P(S), то это будет разрешено только одному из них, а остальным придется ждать.
Семафоры и операции над ними могут быть реализованы как программно, так и аппаратно. Как правило, они реализуются в ядре ОС, где осуществляется управление сменой состояния процессов.
Монитор – это механизм реализации параллелизма. Семафор – защищенная переменная….см выше. Переменная для того же (реализация параллелизма). Это все способы выноса мозга!!!
Зачем и почему – два вопроса, на которые не нужно отвечать! (с) Травкин С.И.
Так что не надо в тесты вставлять такие вопросы!!!
От чего зависят файловые системы на компе??? – задачи и тишинааааааа.
Какой из двух способов сложнее? – монитор.
31?? УРА преподу 31-32 года!!!
Чем отличаются друг от друга мониторы и семафоры – все, что он говорил, было очень непонятно, так что тот, кто слушал, молодец! – все это было предпосылкой ответа.
Лекция 5.
Тупики
Зависание – когда несколько процессов находятся в тупиковой ситуации
Говорят, что процесс находится в состоянии тупика, если он ожидает некоторого события, которое никогда не произойдет. Системная тупиковая ситуация или «зависание» системы – это ситуация, когда один или более процессов оказываются в состоянии тупика. (транспортная пробка, обедающие философы (юристы) – взял 2 вилки, потому что не положили нож). Ресурс один выделен процессу А, процесс Б запрашивает ресурс 1. (рис у Оли). Данная система оказалась в тупиковой ситуации, потому что каждый процесс удерживает ресурс, запрашиваемый другим процессом, причем ни один из процессов не хочет освободить принадлежащий ему ресурс.
Концепции ресурсов
Ресурсы бывают оперативно перераспределяемыми и оперативно неперераспределяемыми. Оперативно перераспределяемые – динамичные, переключаемые, переходящие, такие как ЦП и основная память. Оперативно неперераспр – в том смысле, Что их нельзя отбирать у процессов, за которыми они закреплены – сканеры, принтеры, электропротяжные устройства.
4 Необходимых условия возникновения тупика (и и):
-
Процессы требуют предоставления им права монопольного управления ресурсами, которые им выделяются. Это условие взаимоисключения.
-
Процесс удерживают за собой ресурсы уже выделенные им, ожидая в то же время выделения дополнительных ресурсов. Это условие ожидания ресурсов.
-
Ресурсы нельзя отобрать у процессов, удерживающих их, пока эти ресурсы не будут использованы до завершения работы, условие неперераспределяемости.
-
Существует кольцевая цепь процессов, в которой каждый процесс удерживает за собой один или более ресурсов, требующихся следующему процессу цепи (
Основные направления исследований по проблеме тупиков:
-
предотвращение тупиков – долгое время разработчики систем при решении проблемы тупиков чаще всего шли по пути самих возможностей тупиков – 1я стратегия. Было доказано, что возникновение тупика невозможно, если нарушено хотя бы одно из указанных выше 4 необходимых условий. Была предложения стратегия:
-
каждый процесс должен запрашивать все требуемые ему ресурсы сразу, причем не может начать выполнение до тех пор, пока все они не будут ему предоставлены.
-
Если процесс, удерживающий определенные ресурсы получает отказ в удовлетворении запроса на дополнительные ресурсы, то этот процесс должен освободить свои первоначальные ресурсы и при необходимости запросить их снова вместе с дополнительными.
-
Введение линейной упорядоченности по типам ресурсов для всех процессов. Другими словами, если процессу выделены ресурсы данного типа, то в дальнейшем он может запросить только ресурсы более далеких по порядку типов. Было предложено три стратегических принципа, каждый из которых имеет целью нарушить какое-нибудь одно из необходимых условий существования тупика.
-
-
обход тупиков,
-
обнаружение тупиков,
-
восстановление после тупиков.
При предотвращении тупиков целью является обеспечение условий, исключающих возможность возникновения тупиковых ситуаций.
Такой подход является вполне корректным решением в том, что касается самого тупика, однако он часто приводит к нерациональному использованию ресурсов.
Цель средств обхода тупиков – предусматривать менее жесткие ограничения, чем в случае предотвращения тупиков и тем самым обеспечить лучшее использование ресурсов. Эти средства учитывают возможность возникновения тупика и в случае увеличения вероятности конкретной тупиковой ситуации принимают меры по аккуратному обходу.
Алгоритм банкира
Рассмотрим проблему распределения некоторого количества идентичных устройств между некоторым фиксированным числом пользователей. Каждый пользователь заранее указывает максимальное число устройств, которое ему потребуется. ОС примет запрос пользователя в случае, если максимальная потребность пользователя в устройствах не превышает общее количество устройств. Пользователь может занимать или освобождать устройство по одному. Пользователь гарантирует, что эти устройства будут использованы и возвращены ОС в течение конечного периода времени.
Текущее состояние вычислительной машины называется надежным, если ОС может обеспечить всем текущим пользователям завершение их заданий в течение конечного времени.
Надежное состояние – это (переставить слова слева направо и в общем как всегда).
В противном случае текущее состояние системы называется ненадежным.
Ненадежное состояние – это – та же фигня, перевернуть все.
Алгоритм банкира выделит устройства пользователю только в случае, если после этого выделения устройств состояние системы остается надежным.
Пример надежного состояния
|
|
Текущее кол-во выделенных устройств |
|
Max потребность |
|
Пользователь1 |
1 |
|
4 |
|
2 |
4 |
|
6 |
|
3 |
5 |
|
8 |
|
резерв |
|
3 |
|
Если 2 резерва выделить 2му пользователю, то он завершит работу и освободит все 6 устройств, которых будет достаточно для остальных пользователей.
Пример ненадежного состояния
|
|
Текущее кол-во выделенных устройств |
|
Max потребность |
|
Пользователь1 |
8 |
|
10 |
|
2 |
2 |
|
5 |
|
3 |
1 |
|
3 |
|
резерв |
|
1 |
|
В резерве 1 устройство. Которого недостаточно для удовлетворения потребности ни одного пользователя. Такое состояние называют ненадежным. Термин ненадежное состояние не предполагает, что в данный момент существует или в какое-то время обязательно возникнет тупиковая ситуация. Он просто говорит о том, что в случае некоторой неблагоприятной последовательности событий система может зайти в тупик.
Недостатки алгоритма банкира:
-
исходит из фиксированного количества распределяемых ресурсов,
-
требует, чтобы число пользователей оставалось постоянным.
Методы обнаружения тупиков применяются в системах, которые допускают возможность возникновения тупиковых ситуаций. Целью является установить сам факт возникновения тупиковой ситуации, причем точно определить те процессы и ресурсы, которые оказались вовлеченными в данную тупиковую ситуацию.
Методы восстановления после тупиков – применяются для устранения тупиковых ситуаций с тем, чтобы система могла продолжать работать, а процессы, попавшие в тупиковую ситуацию, могли завершиться с освобождением занимаемых ими ресурсов. В некоторых случаях необходимо уничтожить несколько процессов, чтобы освободить количество ресурсов достаточное для завершения остальных процессов. Самый целесообразный способ восстановления после тупиков – это эффективный механизм приостановки и возобновления процессов, который позволяет нам кратковременно переводить процессы в состояние ожидания, а затем активизировать ожидающие процессы, причем без потери результатов работы.
