Definição – O que significa Rotina de Seção Crítica (CSR)?
A rotina de seção crítica (CSR) é uma seção do código para a qual um processo obtém um bloqueio exclusivo para que nenhum outro processo possa executá-lo simultaneamente. Freqüentemente, um ou mais processos são executados simultaneamente em um sistema operacional, forçando esses processos a competir entre si pelo acesso a arquivos e recursos. Apenas um processo deve ter permissão para acessar o recurso enquanto parte do código relacionado ao recurso é executado.
Para garantir que um processo no CSR não falhe enquanto outros processos estão esperando, um limite de tempo é definido pelo componente de gerenciamento de processo. Assim, um processo pode ter acesso a um bloqueio exclusivo por um período limitado de tempo.
Definirtec explica a rotina da seção crítica (CSR)
Os principais requisitos para implementar um CSR são:
- Exclusão mútua: quando um processo está sendo executado em um CSR, nenhum outro processo pode entrar.
- Condição de progresso: Se nenhum processo estiver sendo executado em um CSR e houver alguns processos que desejam entrar nele, eles podem fazê-lo em um determinado período de tempo. Um dos processos entra no CSR enquanto os outros aguardam.
- Espera limitada: quando um processo solicita a entrada em um CSR e antes que a solicitação seja concedida, deve haver um limite superior no número de processos esperando para entrar no CSR durante este período para garantir que nenhum processo morra de fome e todos os processos na fila de espera recebe a vez de entrar no CSR.
O CSR, em um determinado trecho de código, pode ser identificado por meio das seguintes propriedades:
- O código é caracterizado por uma sequência de operações de leitura-gravação-atualização.
- Seções do código alteram variáveis em outro código, que executa uma seqüência de operação de leitura-gravação-atualização.
- A presença de código que acessa uma estrutura de dados de algum outro código, modificando-o, ou código que usa uma estrutura de dados que pode ser modificada por outro processo.
O conceito de seção crítica pode ser aplicado ao hardware que usa o recurso de interrupções. Sempre que um processo entra em uma seção crítica, todas as interrupções no processador devem ser desabilitadas para que outros processos não possam solicitar um bloqueio no recurso. Da mesma forma, quando um processo termina a execução, as interrupções são habilitadas novamente. Outra abordagem é usar um semáforo, uma variável especial que atua como um sinal para direcionar a execução ou término de um processo.