Операционные системы. Процессы и потоки. Илюшкин Б.И. - 57 стр.

UptoLike

Составители: 

мяти два действия: чтение и запись или чтение и проверка значения.
Атомарность означает, что операция неделима, т.е. никакой другой
процесс не может обратиться к слову памяти, пока команда не вы-
полнена. В качестве примера рассмотрим команду TSL (Test and Set
Lock – проверить и заблокировать), которая действует следующим
образом [5].
TSL RX,LOCK ; содержимое слова памяти lock копируется в
; регистр rx , значение lock устанавливается
; равным 1
Процессор, выполняющий команду TSL, блокирует шину памя-
ти, чтобы остальные процессоры не могли обратиться к памяти. Та-
ким образом, гарантируется, что операция считывания слова и записи
значения неделима. Ниже приводится код программы с использова-
нием TSL на типовом ассемблере для поддержки взаимного исключе-
ния [5].
enter_region ;
TSL REGISTER,LOCK
CMP REGISTER,0 ;предыдущее значение lock сравнивается
; с нулем
JNE enter_region ; если оно не нулевоеблокировка уже
; была установлена и цикл завершается
RET ; если оно нулевоеустановка блокировки,
; т.е. lock:=1, и возврат в вызывающую программу.
; Процесс вошел в критический участок
leave_region ;
MOVE LOCK, 0 ; снятие блокировки, т.е. lock:=0.
; Процесс вышел из критической секции.
RET
57