Mind map
Processos Parte 2

Map content
Processos Parte 2
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.
- Memória Compartilhada
- 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.
- Pipes nomeados (FIFO)
- 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.
- semáforos
- 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
- Árvores
- e se esses processos, por sua vez, puderem criar outros processos filhos. Rapidamente chegaremos a uma estrutura de:
- processos filhos
- Comunicação (Inter-Process Communication - IPC)
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
- Exemplo
- 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.
- Contador de Programa
- 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
- Pipeline
- 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.
- Modo núcleo
- 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.
- exemplo
- 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.
- 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.
- Multithread
- O cérebro do computador é a CPU (Unidade Central de Processamento). Ela busca instruções na memória e as executa.
- Ciclo básico de execução
Images and files in the map
Information
- Description
- Base Computacional Mind Map on Processos Parte 2, created by Marina Micas Jardim on 18/08/2017.
- Created by
- Marina Micas Jardim
- Views
- 0
- Rating
