O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Processos Parte 2

Marina Micas Jardim Base Computacional Português

Processos Parte 2

Conteúdo do mapa

Processos Parte 2

  1. Processos

    • Comunicação (Inter-Process Communication - IPC)
      • É o grupo de mecanismos que permite aos processos transferirem informação entre si. A execução de um processo pressupõe por parte do sistema operativo, entre outras coisas, a criação de um contexto de execução próprio que, de certa forma, abstrai o processo dos componentes reais do sistema. Devido a esta virtualização dos recursos, o processo não tem conhecimento acerca dos outros processos e, como tal, não consegue trocar informação.
      • Modelos
        • Memória Compartilhada
          • Uma região de memória é compartilhada entre os processos.
        • Troca de Mensagem
          • Ocorre por meio de troca de mensagens entre os processos.
      • Motivos
        • Compartilhamento de informações
        • Agilidade na computação
        • Modularidade
        • Conveniência
      • Mecanismos locais
        • Pipes nomeados (FIFO)
          • São ficheiros especiais que servem de canal de comunicação entre processos. Um processo abre o FIFO para escrita, outro para leitura.
        • Pipes unidirecionais
          • Esta é a forma mais divulgada de IPC. Um exemplo: C:\> type text.txt | more <-- Este exemplo em DOS iria canalizar o output do comando TYPE como input para o programa MORE.
        • Filas de mensagens (message queue)
          • Permite criar uma zona de intercâmbio de mensagens de tamanho fixo ao nível do sistema operativo, oferecendo um maior nível de segurança sobre quais os processos que a ela podem aceder.
        • Memória Compartilhada
          • Dois ou mais processos utilizam a região de memória compartilhada, conectando-a no seu espaço de endereçamento. Deve se ter a garantia de que os dois processos não estejam gravando dados no mesmo local simultaneamente.
      • Mecanismos cliente/servidor
        • Sockets
        • Remote Procedure Calls
      • Processos relacionados que estiverem cooperando para executar alguma tarefa precisam frequentemente se comunicar um com o outro e sincronizar suas atividades.
    • Concorrência
      • Ocorre quando existem dois ou mais processos executados em simultâneo; mais especificamente, o termo é utilizado quando processos disputam o acesso a recursos partilhados. Com efeito, a gestão da concorrência entre processos é a fonte de inúmeras dificuldades no desenvolvimento de software; o acesso descoordenado a um recurso (a chamada condição de corrida) induz no sistema um comportamento imprevisível.
      • exemplo típico
        • A grande maioria dos sistemas utiliza interrupções do fluxo normal de um programa para poder realizar operações em tempo real, ou para gerir o ambiente multitarefa. Assim, enquanto um processo está a aceder a um recurso — cujo valor se traduz, por exemplo, para o número de acessos — para, por exemplo, incrementar o seu valor (que se traduz numa leitura do valor, uma soma, e uma escrita no novo valor), ao mesmo tempo que outro, para o mesmo efeito, pode ocorrer que, algures entre a leitura e a escrita do valor, o escalonador de processos interrompe o primeiro processo para permitir ao segundo uma fatia do poder computacional.
    • Sincronização
      • Permite gerir o acesso concorrente a recursos do sistema operativo de forma controlada por parte dos processos, de maneira que um recurso não seja modificado em simultâneo, ou que os processos não fiquem em espera que o recurso seja libertado. Sincronização é útil em programas multitarefa para manter a consistência de dados usados por diversas linhas de execução, em sistemas distribuídos para controlar o acesso de diversos nós a um recurso limitado e bancos de dados para escalonar adequadamente acessos concorrentes à base.
      • Mecanismos
        • semáforos
          • é uma variável especial protegida que tem como função o controle de acesso a recursos compartilhados num ambiente multitarefa.
        • exclusão mútua
          • é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso compartilhado, acesso esse denominado por seção crítica.
    • Se um processo pode criar um ou mais processos, chamados de:
      • processos filhos
        • e se esses processos, por sua vez, puderem criar outros processos filhos. Rapidamente chegaremos a uma estrutura de:
          • Árvores
  2. Gerência de Processador

    • Ciclo básico de execução
      • 1 - Buscar a primeira instrução da memória.
      • 2 - Decodificá-la para determinar seus operandos e qual operação executar com esses.
      • 3 - Executá-la e então buscar.
      • 4 - Decodificar.
      • 5 - Executar as instruções subsequentes.
    • Conjunto específico de instruções
      • Exemplo
        • Um Pentium não executa programas SPARC, nem uma SPARC consegue executar programas Pentium.
      • Tempo de acesso à memória para buscar uma instrução
      • Operando é muito menor que o tempo para executá-la
      • Todas as CPUs têm registradores internos para armazenamento de variáveis importantes e de resultados temporários
      • Instruções para carregar uma palavra da memória em um registrador
      • Armazenar uma palavra de um registrador na memória
    • Registradores especiais
      • Contador de Programa
        • Contém o endereço de memoria da próxima instrução a ser buscada. Depois da busca da instrução, o contador de programa é atualizado para apontar a instrução seguinte.
      • Ponteiro de Pilha
        • Aponta para o topo da pilha atual na memória. A pilha contém uma estrutura para cada rotina chamada, mas que ainda não encerrou. Uma estrutura de pilha da rotina contém os parâmetros de entrada, as variáveis locais e as variáveis temporárias que não são mantidas nos registradores.
      • PSW (Program Status Word - Palavra de Estado do Programa)
        • Contém os bits do código de condições, os quais são alterados pelas instruções de comparação, pelo nível de prioridade da CPU, pelo modo de execução (usuário ou núcleo) e por vários outros bits de controle. Programas de usuários normalmente podem ler toda a PSW, mas em geral são capazes de alterar somente alguns de seus campos. A PSW desempenha um papel importante nas chamadas de sistema e em E/S.
    • Processadores
      • Pipeline
        • Uma CPU pode ter unidades separadas de busca, decodificação e execução, de modo que, enquanto ela estiver executando a instrução n, ela também pode estar decodificando a instrução n + 1 e buscando a instrução n + 2. Uma vez que a instrução tenha sido trazida para o pipeline, ela deve ser executada, mesmo que a instrução precedente tenha constituído um desvio condicional satisfeito.
      • Superescalar
        • Possui múltiplas unidades de execução, por exemplo, uma unidade para aritmética de números inteiros, uma unidade aritmética para ponto flutuante e outra unidade para operações booleanas. A cada vez, duas ou mais instruções são buscadas, decodificadas e armazenadas temporariamente em um buffer de instruções e a executará. Uma implicação disso é que as instruções do programa muitas vezes são executadas fora de ordem, cabendo ao hardware assegurar que o resultado produzido seja o mesmo de uma implementação sequencial, porém com problemas complexos para o sistema operacional resolver.
      • tipos de processadores
    • Modos de funcionamento
      • Modo núcleo
        • A CPU pode executar qualquer instrução de seu conjunto de instruções e usar cada atributo de seu hardware. É o caso do sistema operacional: ele é executado em modo núcleo e tem acesso a todo o hardware.
      • Modo usuário
        • Permite a execução de apenas um subconjunto das instruções e o acesso a apenas um subconjuntos dos atributos. De modo geral, todas as instruções que envolvem E/S e proteção de memória são inacessíveis no modo usuário.
      • O modo de funcionamento é controlado por um bit de registrador PSW.
    • Chips
      • Multithread
        • Permite que a CPU mantenha o estado de 2 threads (é um tipo de processo leve, que por sua vez, é um programa de execução) diferentes e faça em seguida o chaveamento para trás e para adiante em uma escala de tempo de nanossegundos.
          • exemplo
            • Se um dos processos precisa ler uma palavra a partir da memória (o que leva muitos ciclos de relógio), uma CPU multithread pode fazer o chaveamento para outro thread. O multithread não oferece paralelismo real. Apenas um processo por vez é executado, mas o tempo de chaveamento é reduzido para a ordem de um nanossegundo.
          • implicações
            • Cada thread aparece para o SO como 1 CPU. Considere um sistema com 2 CPUs efetivas, cada uma com 2 threads. O SO verá 4 CPUs. Se houver trabalho suficiente para manter apenas 2 CPUs ocupadas em dado momento, ele pode escalonar inadvertidamente 2 threads na mesma CPU, deixando a outra completamente ociosa. Essa escolha é menos eficiente do que usar um thread em cada CPU.
      • Multinúcleo
        • Chips de CPU com 2 ou 4 ou mais processadores completos ou núcleos. Trazem de fato 4 minichips, cada um com uma CPU independente e requer um sistema operacional para multiprocessadores.
    • O cérebro do computador é a CPU (Unidade Central de Processamento). Ela busca instruções na memória e as executa.

Imagens e arquivos do mapa

  • Processos Parte 2
  • Processos Parte 2

Informações

Descrição
Base Computacional Mapa Mental sobre Processos Parte 2, criado por Marina Micas Jardim em 18-08-2017.
Visualizações
0
Avaliação

Mais sobre Processos e threads

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?