Оглавление:
- Определение - Что означает подпрограмма «Критический раздел» (CSR)?
- Techopedia объясняет процедуру критического сечения (CSR)
Определение - Что означает подпрограмма «Критический раздел» (CSR)?
Подпрограмма критического раздела (CSR) - это фрагмент кода, для которого процесс получает эксклюзивную блокировку, чтобы никакой другой процесс не мог выполнить ее одновременно. Часто один или несколько процессов выполняются одновременно в операционной системе, заставляя эти процессы конкурировать друг с другом за доступ к файлам и ресурсам. Только один процесс должен иметь доступ к ресурсу, пока выполняется часть кода, связанная с ресурсом.
Чтобы гарантировать, что процесс в CSR не завершится с ошибкой, пока другие процессы ожидают, компонент управления процессами устанавливает ограничение по времени. Таким образом, процесс может иметь доступ к эксклюзивной блокировке только в течение ограниченного периода времени.
Techopedia объясняет процедуру критического сечения (CSR)
Основными требованиями для реализации КСО являются:
- Взаимное исключение: когда процесс выполняется в CSR, другой процесс не может войти.
- Условие выполнения: если ни один процесс не выполняется в CSR, и есть некоторые процессы, которые хотят войти в него, они могут сделать это в течение определенного периода времени. Один из процессов входит в CSR, в то время как другие ждут.
- Ограниченное ожидание: когда процесс запрашивает ввод CSR и до того, как запрос будет удовлетворен, должен быть верхний предел количества процессов, ожидающих входа в CSR в течение этого периода, чтобы гарантировать, что ни один процесс не остановится, и каждый процесс в очереди ожидания получает ход, чтобы войти в CSR.
CSR в определенном фрагменте кода может быть идентифицирован через следующие свойства:
- Код характеризуется последовательностью операций чтения-записи-обновления.
- Разделы кода изменяют переменные в другом коде, который выполняет последовательность операций чтения-записи-обновления.
- Наличие кода, который осуществляет доступ к структуре данных какого-либо другого кода путем его изменения, или код, который использует структуру данных, которая может быть изменена каким-либо другим процессом.
Концепция критической секции может быть применена к оборудованию, которое использует средство прерываний. Всякий раз, когда процесс входит в критическую секцию, все прерывания на процессоре должны быть отключены, чтобы другие процессы не могли запросить блокировку ресурса. Аналогично, когда процесс завершает выполнение, прерывания снова включаются. Другой подход заключается в использовании семафора, специальной переменной, которая действует как сигнал для управления выполнением или завершением процесса.
