ВУЗ:
Составители:
65
системах обычно несколько процессов разделяют один процессор и од-
ну или несколько программ. Многие ресурсы вычислительной системы
могут совместно использоваться несколькими процессами, но в каждый
момент времени к разделяемому ресурсу может иметь доступ только
один процесс. Ресурсы, которые не допускают одновременного исполь-
зования несколькими процессами, называются критическими.
3.3.2 Цели и средства синхронизации
Синхронизация процессов – приведение двух или более процессов к
такому их протеканию, когда определенные стадии разных процессов
совершаются в определенном порядке, либо одновременно. Потребность
в синхронизации возникает только в мультипрограммной ОС и связана с
совместным использованием аппаратных и информационных ресурсов
вычислительной системы. Синхронизация
8
необходима в любых случа-
ях, когда параллельно протекающим процессам (потокам) необходимо
взаимодействовать – для исключения гонок и тупиков при обмене дан-
ными между потоками, разделении данных, при доступе к устройствам
ввода-вывода. Для ее организации используются средства межпроцесс-
ного взаимодействия (Inter Process Communications, IPC), что отражает
историческую первичность понятия «процесс» по отношению к поня-
тию «поток». Среди наиболее часто используемых средств синхрониза-
ции – сигналы, сообщения, семафоры и мьютексы.
Выполнение процесса (потока) в мультипрограммной среде всегда
имеет асинхронный характер. Очень сложно с полной определенностью
сказать, на каком этапе выполнения будет находиться процесс в опреде-
ленный момент времени. Даже в однопрограммном режиме не всегда
можно точно оценить время выполнения задачи. Это время во многих
случаях существенно зависит от значения исходных данных, которые
влияют на количество циклов, направления разветвления программы,
время выполнения операций ввода-вывода и т.п. В связи с тем, что ис-
ходные данные в разные моменты запуска задачи могут быть разными,
то и время выполнения отдельных этапов и задачи в целом является
весьма неопределенной величиной.
Еще более неопределенным является время выполнения программы
в мультипрограммной системе. Моменты прерывания потоков, время
нахождения их в очередях к разделяемым ресурсам, порядок выбора по-
токов для выполнения – все эти события являются результатом стечения
многих обстоятельств и могут быть интерпретированы как случайные. В
лучшем случае можно оценить вероятностные характеристики вычисли-
8
Все сказанное справедливо для синхронизации потоков, а если ОС не поддерживает потоки – то для
синхронизации процессов.
Страницы
- « первая
- ‹ предыдущая
- …
- 63
- 64
- 65
- 66
- 67
- …
- следующая ›
- последняя »