Alocação de recursos
Quando cada processo solicita os recursos disponíveis no sistema, o sistema operacional aloca os recursos necessários para sua finalidade de execução. Os recursos alocados podem ser um disco rígido, um scanner, qualquer arquivo na memória ou até mesmo uma impressora. Qualquer programa que entra em estado pronto ou de execução é denominado processo. Este programa requer recursos de um ou outros processos para completar a tarefa atribuída.
Em um ambiente de multiprogramação, um processo pode solicitar vários recursos ao mesmo tempo, portanto esses processos precisam aguardar até receber todos os recursos. Um alocador de recursos presente no sistema operacional é geralmente responsável por alocar os recursos conforme solicitação do usuário e desalocá-los na conclusão entre vários processos. A alocação de recursos deve ser atribuída de tal forma que todos os processos tenham recursos suficientes para trabalhar em suas tarefas.
Alocação de recursos
Quando os recursos são alocados, vários problemas surgem no processo baseado na solicitação no processamento multiusuário, o que seria caro para fornecer recursos que não são compartilháveis para equalizar com demandas mais altas. O sistema operacional deve alocar os recursos sem perder a integridade do sistema.
Considere um exemplo prático de um usuário trabalhando em um arquivo Excel que deseja imprimir alguns dados usando uma impressora conectada ao sistema. Em seguida, o sistema operacional aloca a impressora com base em sua disponibilidade para o processo do Excel. O processo entra em estado de espera se a impressora for usada por outro processo no sistema.
Os mecanismos de alocação usados pelo sistema operacional para alocar os recursos ao processo são fornecidos abaixo -
Alocação de memória − Quando um programa solicita recursos do sistema operacional, o processo e os dados de entrada precisam ser armazenados na memória primária para realizar sua execução. O gerenciador de memória tem a responsabilidade de alocar os recursos de acordo com os espaços disponíveis ou livres disponíveis e após fornecer memória ao processo solicitado inicia-se a execução do programa. O gerenciamento de memória tem duas abordagens diferentes para alocar o processo no sistema. Numa abordagem contígua onde os processos são atribuídos a blocos fixos de memória, com tamanhos maiores e armazenados num local de memória que possui endereços consecutivos enquanto que, numa abordagem não contígua, os processos são armazenados em blocos diferentes que estão localizados em memórias diferentes as partes não precisavam ser consecutivas, o que parece ser uma técnica eficiente, pois utiliza espaços de memória apenas quando necessário.
Processadores
O sistema operacional possui um descritor de processo que especifica o processo para obter recursos dos processadores. Geralmente está presente um processador central, ao passo que, em um ambiente multiprocessador, pode haver muitos processadores rodando ao mesmo tempo atendendo à solicitação do usuário. O bloco de controle de processo contém informações sobre o status dos recursos quando cada processo é criado. Isso fornece estados de cada processo, como novo, em execução, em espera, pronto, bloqueado ou encerrado.
Permissões de arquivo
Os arquivos consistem em uma coleção de informações do usuário, às vezes chamadas de programas. Os recursos são alocados ao arquivo junto com as permissões de acesso especificadas pelo proprietário para um indivíduo ou grupo de usuários. Operações como leitura, gravação e execução também são alocadas junto com o arquivo armazenado na memória. Se vários arquivos forem solicitados ao mesmo tempo, algum processo entrará na fila até expirar.
Backup de memória
Os recursos podem ser alocados pelo gerenciador de memória, conforme dito anteriormente. A memória virtual também pode ser usada para armazenar arquivos usados recentemente. Na backing store, a solicitação do usuário não pode ser enfileirada, pois serão atribuídos espaços livres para o processo solicitante.
Métodos de alocação
Métodos de alocação Quando os recursos são alocados para o processo, o sistema operacional possui duas políticas para métodos de alocação -
With Deadlock - O deadlock ocorre quando um processo está aguardando o conjunto de recursos que é mantido por outros processos e espera receber todos os recursos solicitados antes de ser desbloqueado. O impasse pode ocorrer em certas condições, como espera e espera, exclusão mútua, sem preempção e espera circular.
Considere um exemplo quando dois processos P1 e P2 precisam dos recursos X e Y. Nesse caso, P1 espera pelo recurso Y onde P2 contém o recurso Y, e P2, por sua vez, espera pelo recurso X que deve ser liberado por P1 que o mantém . Portanto, o loop é criado aqui quando P1 precisa do recurso Y e espera que P2 o libere, e P2 precisa de X e espera que P2 o libere. Os impasses podem ser resolvidos por métodos como detecção, prevenção, prevenção e problema do avestruz.
Sem Deadlock - Se os recursos disponíveis na memória forem abundantes e servirem vários processos simultaneamente, então o deadlock pode não ocorrer.
Conclusão
A alocação de recursos é gerenciada e controlada pelos sistemas operacionais com base no mecanismo de alocação. Ele detecta os métodos de alocação de diferentes tipos de recursos para memória, processador, periféricos e armazenamento de apoio. Os recursos alocados para cada processo podem ou não entrar em estado de deadlock e detecção, e mecanismos de prevenção devem ser implementados para se recuperar do deadlock ocorrido.