24.
Цели и средства синхронизации.
Классификация потоков.
Существует
достаточно обширный класс средств операционной системы, с помощью которых
обеспечивается взаимная синхронизация процессов и потоков. Потребность в
синхронизации потоков возникает только в мультипрограммной операционной системе
и связана с совместным использованием аппаратных и информационных
ресурсов вычислительной системы. Синхронизация необходима для исключения гонок
и тупиков при обмене данными между потоками, разделении данных, при доступе к
процессору и устройствам ввода-вывода.
Во
многих операционных системах эти средства называются средствами межпроцессного взаимодействия — Inter
Process Communications
(IPC), что отражает историческую первичность понятия «процесс» по отношению к
понятию «поток». Обычно к средствам IPC относят не только средства межпроцессной синхронизации, но и средства межпроцессного обмена данными.
Любое
взаимодействие процессов или потоков связано с их синхронизацией, которая
заключается в согласовании их скоростей путем приостановки потока до
наступления некоторого события и последующей его активизации при наступлении
этого события. Синхронизация лежит в основе любого взаимодействия потоков,
связано ли это взаимодействие с разделением ресурсов или с обменом данными.
Например, поток-получатель должен обращаться за данными только после того, как
они помещены в буфер потоком-отправителем. Если же поток-получатель обратился к
данным до момента их поступления в буфер, то он должен быть приостановлен.
При
совместном использовании аппаратных ресурсов синхронизация также совершенно
необходима. Когда, например, активному потоку требуется доступ к
последовательному порту, а с этим портом в монопольном режиме работает другой
поток, находящийся в данный момент в состоянии ожидания, то ОС приостанавливает
активный поток и не активизирует его до тех пор, пока нужный ему порт не
освободится. Часто нужна также синхронизация с событиями, внешними по отношению
к вычислительной системе.