Cursos / Jogos Digitais / Sistemas Operacionais / Aula
Uma condição de corrida é uma falha num sistema ou processo em que o resultado do processo é inesperadamente dependente da sequência ou sincronia de outros eventos. Wikipédia, 2016a . Apesar de ser conhecido em português por “condição de corrida”, uma tradução melhor seria “condição de concorrência”, pois o problema está relacionado justamente ao gerenciamento da concorrência entre processos no pseudoparalelismo, que vimos na página 2 da aula de gerenciamento de processos.
Um exemplo prático em que pode acontecer uma condição de corrida é o próprio sistema de arquivos do computador, em que dois ou mais programas (processos) tentam modificar um mesmo arquivo simultaneamente, podendo causar uma corrupção dos dados armazenados neste arquivo, já que um processo pode sobrescrever os dados do outro processo sem que este perceba. Neste exemplo, as ações que devem pertencer à região crítica são as leituras e gravações dos arquivos pelos processos.
Esse problema das sobrescritas simultâneas a um arquivo é evitável através de uma exclusão mútua do arquivo concorrido pelos processos. Essa exclusão mútua pode ser feita através de uma espécie de “trava de acesso” em que o primeiro a requisitar o acesso ao arquivo tem direito exclusivo ao seu uso, e os outros processos devem aguardar a remoção desta trava para tentar acessar o arquivo.
Na prática, o sistema operacional repassa esse controle de acesso aos arquivos para o processo responsável por todo o sistema de arquivos, o qual seria o gerenciador de arquivos vistos na aula anterior. Isso também requer exclusão mútua, já que o processo responsável pelo acesso ao arquivo torna-se o "recurso", e esse recurso pode estar sendo disputado por vários outros processos.
Versão 5.3 - Todos os Direitos reservados