ATP SISTEMAS OPERACIONAIS
Seminário: ATP SISTEMAS OPERACIONAIS. Pesquise 861.000+ trabalhos acadêmicosPor: marcelodoido • 19/11/2013 • Seminário • 3.556 Palavras (15 Páginas) • 389 Visualizações
ATPS SISTEMAS OPERACIONAIS
Processo
É o conjunto de informações necessárias para que um sistema operacional implemente a concorrência de programas. Ele é formado por três partes:
• Contexto de hardware: armazena conteúdo dos registradores gerais da UCP, registradores de uso específicos e registrador de status;
• Contexto de software: especifica limites de características dos recursos a serem alocados pelo processo, prioridade de execução e tamanho do buffer para operações de E/S;
• Espaço de endereçamento: área da memória que integra o processo e armazena instruções e dados para execução.
Estados do Processo
• Execução: quando ele está sendo processado pela UCP;
• Pronto: quando aguarda apenas a sua execução;
• Espera: quando aguarda por um evento externo ou um recurso para prosseguir seu processamento.
Criação e Eliminação de Processos
• Criação: quando o sistema operacional já criou um bloco de controle de processo e não pode colocá-lo na lista do estado de pronto;
• Terminado: neste estado ele não poderá ter programas sendo executados em seu contexto mas o sistema operacional ainda mantém suas informações de controle em memória.
Processos CPU-bound e I/O-bound
• CPU-bound: passa a maior parte do tempo no estado de execução ou pronto;
• I/O-bound: passa a maior parte do tempo no estado de espera.
Processos Foreground e Background
• Foreground: permite a comunicação direta do usuário com o processo durante seu processamento;
• Background: não existe a comunicação com o usuário durante seu processamento.
Formas de Criação de Processos: as principais formas de criação são:
• Logon interativo: através de um terminal, o usuário fornece um username e senha;
• Via linguagem de comandos: cria novos processos a partir de um do seu próprio processo;
• Via rotina do sistema operacional: a partir de qualquer programa executável.
Processos independentes, Subprocessos e Thread: São maneiras diferentes de implementar a concorrência dentro de uma aplicação.
• Processos independentes: é a maneira mais simples de implementar a concorrência em sistemas multiprogramáveis. Não existe vínculo do processo criado com o seu criador;
• Subprocessos: são processos criados dentro de uma estrutura hierárquica. O processo criador é denominado processo-pai e o novo processo é chamado subprocesso;
• Thread: programa desenvolvido para reduzir o tempo gasto em criação, eliminação e troca de contexto de processos, e economizar recursos do sistema como um todo.
Sinais: mecanismo que permite notificar processos de eventos gerados pelo sistema operacional ou por outros processos.
Thread
Programa desenvolvido para reduzir o tempo gasto em criação, eliminação e troca de contexto de processos, e economizar recursos do sistema como um todo.
Ambiente Monothread: é quando apenas um programa é suportado no espaço de endereçamento do processo;
Ambiente multithread: neste ambiente múltiplos threads são suportados no espaço de endereçamento do processo.
Programação Multithread: conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.
Arquitetura e implementação
• Threads em Modo Usuário (TMU): são implementados pela aplicação e não pelo sistema operacional;
• Threads em Modo Kernel (TMK): são implementados diretamente pelo núcleo do sistema operacional;
• Threads em Modo Híbrido: combina as vantagens de threads implementados em modo usuário e modo kernel;
• Scheduler Activations: nesse modo, cada camada implementa seu escalonamento de forma independente, porém trocando informações quando necessário.
Sincronização e Comunicação entre Processos
Aplicações Concorrentes: estruturas que permitem que partes diferentes do código do programa possam executar aplicações concorrentemente.
Especificações de Concorrência em Programas: são notações utilizadas para especificar a concorrência em programas;
Problemas de Compartilhamento de Recursos: envolvem o compartilhamento de um arquivo e apresentam uma variável na memória principal sendo compartilhada por dois processos.
Exclusão Mútua: é a exclusividade de acesso a um determinado recurso, ou seja, impede que dois ou mais processos acessem um mesmo recurso simultaneamente.
Soluções de Hardware:
• Desabilitação de interrupções: faz com que o processo desabilite todas as interrupções antes de entrar na região crítica;
Soluções de Software:
• Primeiro algoritmo: apresenta uma solução para exclusão mútua entre dois processos, onde um mecanismo de controle alterna a execução das regiões críticas:
• Segundo algoritmo: introduz uma variável para cada processo que indica se ele está ou não em sua região crítica;
• Terceiro algoritmo: tenta solucionar o problema apresentado no segundo, colocando a instrução de atribuição das variáveis, antes do loop de teste.
• Quarto algoritmo: apresenta uma implementação, onde o processo altera o estado da variável antes de entrar na sua região crítica, porém há a possibilidade de esta alteração ser revertida;
• Algoritmo de Dekker: primeira solução de software que garantiu a exclusão mútua entre dois processos sem a incorrência de outros probelmas;
• Algoritmo de Peterson:
...