Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Процессы, выполняемые в режиме мультипрограммирования, можно рассматривать как набор последовательных, слабосвязанных процессов, которые действуют почти независимо друг от друга, лишь изредка используя общих ресурс. Взаимосвязь между такими процессами устанавливается с помощью различных сообщений и так называемой механической синхронизации, которая призвана согласовывать и координировать работу процессора. Хотя каждый процесс, выполняемый в режиме мультипрограммирования, имеет доступ к общему ресурсу, существует критическая область, которую в фиксированный момент времени использовать только один процесс. Нарушение этого условия приводит к неизвестному порядку выполнения процессов. Использование критической области также создает определенные проблемы, среди которых наиболее сложными выделяются проблемы состязаний (гонок) и тупиков (клинчей).
Условие состязаний: возникают, когда процессы настолько связаны между собой, что порядок их выполнения влияет на результат. Условие тупиков: появляются, если два взаимосвязанных процесса блокируют друг друга при обращении к критической области. Для разрешения подобных проблем используется понятие семафора, призванного рационализировать осуществление синхронизации процессов.
Семафором (байтом блокировки) называют целую переменную, сигнализирующую о готовности процесса к использованию критической области. Термин появился в 1965 году. Механическую синхронизацию предложил Дейкстра и означает она следующее:
Семафор Q имеет две операции в основной механической синхронизации.
P(Q). Р-операция есть операция с одним аргументом семафором, которая уменьшает величину семафора на 1 если Q больше либо равно 0. Р-операция является неделимой, т.е. определение возможности уменьшения Q и последующее его уменьшение на 1 рассматривается как неделимая операция. P(Q) представляет собой операцию задержки, т.е. если процесс Р1 должен выполнить операцию P(Q) над семафором Q=0, то операция P(Q) не может завершиться до тех пор, пока какой-либо процесс Pj не выполнит над ним операцию V. Если некоторые процессы Р1, Р2, … Рк одновременно начнут Р операцию над Q, то Q изменит свое значение лишь тогда, когда завершится одна из начавшихся Р операция.
V(Q) - это операция так же с одним аргументом семафором, которая увеличивает значение семафора на 1. Является неделимой и упрощает взаимосвязь и синхронизацию процесса.
Кроме Р и V операций существуют другие операции над семафорами. Эти операции в силу неделимости позволяют блокировать или активизировать процессы при освобождении или запросе ресурсов любого типа.