FUNDAMENTOS DE SISTEMAS OPERACIONAIS MÓDULO 11 Índice 1. Gerenciamento de Processos - Continuação .................. 3 1.3. Concorrência e Sincronização ........................................ 3 1.3.1. Processos Concorrentes .......................................... 3 1.3.2. Sincronização ........................................................ 3 1.4. Monitores e Semáforos................................................. 4 1.4.1. Monitores .............................................................. 4 1.4.2. Semáforos ............................................................ 4 1.5. Comunicação Interprocessos ......................................... 4 1.6. Escalonamento de Processador ..................................... 4 2 Fundamentos de Sistemas Operacionais - Módulo 11 1. GERENCIAMENTO DE PROCESSOS - CONTINUAÇÃO 1.3. CONCORRÊNCIA E SINCRONIZAÇÃO 1.3.1. Processos Concorrentes Os processos no sistema podem ser executados de maneira concorrente. Isso quer dizer que muitos processos podem ser multitarefa em uma CPU. Existem várias razões que justificam permitir as execuções concorrentes: 3 Compartilhamento de Recurso Físico — Os recursos de hardware do computador são finitos e podem ser compartilhados, tornando o ambiente multiusuário; 3 Compartilhamento de Recursos Lógicos — Muitos usuários podem estar interessados no mesmo fragmento de informação, que pode ser provida em um ambiente que permita o acesso concorrente a esses recursos; 3 Aumento de Velocidade da Computação — Quando se deseja que uma tarefa específica seja executada rapidamente, quebrase essa tarefa em subtarefas e uma a uma elas são executadas paralelamente com outras; 3 Modularidade — Quando ocorre a construção de sistemas em padrão modular, dividindo-se as funções em processos distintos; 3 Conveniência — O usuário pode querer ter muitas tarefas para trabalhar ao mesmo tempo. Um exemplo está no fato de que usuários podem estar editando, imprimindo e compilando de forma concorrente. 1.3.2. Sincronização Serão apresentadas algumas instruções simples de hardware que podem ser executadas em muitos sistemas. Essas instruções especiais podem ser usadas para resolver os problemas de regiões críticas com relativa simplicidade. Uma instrução pode ser definida na forma que segue: 3 Fundamentos de Sistemas Operacionais - Módulo 11 1.4. MONITORES E SEMÁFOROS 1.4.1. Monitores Para facilitar o processo de escrever programas de forma correta, foi proposta uma sincronização de alto nível chamada “monitor”. Um monitor é uma coleção de procedures, variáveis e estruturas de dados que são agrupados em um tipo especial de pacote. Processos podem chamar as procedures em um monitor se necessitarem, mas não terão acesso às estruturas de dados internos de uma procedure declarada fora do monitor. 1.4.2. Semáforos Como resultado para a dificuldade com as regiões críticas, existe uma ferramenta de sincronização chamada semáforo. O semáforo é um contador e é usado quando o recurso a ser utilizado pertence a um conjunto de recursos idênticos. É uma variável inteira, maior que zero, que é acessada apenas por duas operações: P (wait) e V (signal). O P decrementa 1, quando um recurso é removido do conjunto e está em uso pela thread. O V acrescenta 1, o que indica que a thread devolveu um recurso. 1.5. COMUNICAÇÃO INTERPROCESSOS Ocorre quando há a necessidade de que os processos se comuniquem uns com os outros. 1.6. ESCALONAMENTO DE PROCESSADOR O escalonamento de processador ocorre quando existe uma política do sistema para escolher quais processos executar. A política de escalonamento deve atender algumas premissas ligadas a desempenho e maximização do número de processos executados, reduzir o tempo de latência (tempo de espera antes da execução), evitar antecipação indefinida de processos e aperfeiçoar o uso do(s) processador(es). 4 Fundamentos de Sistemas Operacionais - Módulo 11