Resumo Threads Sistemas Operacionais
Por: Ana Lívia Franco • 7/6/2019 • Resenha • 5.176 Palavras (21 Páginas) • 380 Visualizações
Sistemas Operacionais
Processos
- Base para implementação de um sistema multiprogramável;
- Caracterizado por um programa em execução;
- O processador apenas executa os processos, não sendo capaz de distinguir qual programa se encontra em execução;
- Um processo pode: alocar recursos, compartilhar dados, trocar informações e sincronizar a execução;
- Ambiente onde o programa é executado;
- Um processo é uma instância de um programa e possuí dados de entrada, saída e um estado – é a maneira que o SO vê um programa e possibilita sua execução;
- Um programa pode ter várias instâncias em execução, em diferentes processos – maneira como o programador vê a tarefa a ser executada;
Estrutura
- Contexto de Hardware – Armazena as informações referentes ao processo (pilha de execução).
- Armazena o conteúdo dos registradores gerais.
- Quando um processo está em execução, seu contexto de hardware está armazenado nos registradores.
- Quando um processo perde a utilização da UCP o sistema salva as informações do contexto de hardware;
- A troca de processos – mudança de contexto..
- Contexto de Software – Características do processo..
As informações são provenientes do arquivo de contas.
Identificação – PID (identificação do processo), UID (identificação do usuário ou processo que o criou). Apenas objetos da mesma UID podem ser acessados.
Quotas – Limites para acesso dos recursos do SO que cada processo pode alocar. Caso uma quota seja insuficiente o processo pode ser executado lentamente ou ser interrompido.
Privilégios – As ações que um processo pode fazer em relação à:
Ele mesmo – permite que suas características sejam alteradas.
Outros processos – Além de alterar suas características, também pode alterar as dos outros.
Sistema Operacional – Gerencia do ambiente, desativação do sistema....
- Espaço de Endereçamento – Área da memória pertencente ao processo, onde as instruções e dados do programa são armazenados.
- Cada processo possuí seu próprio espaço de endereçamento.
Bloco de Controle
- Um processo é implementado através de uma estrutura de controle – bloco de controle do processo;
- PCB - Contém todas as informações do contexto de hardware, software e espaço de endereçamento.;
- Residem em uma área da memória principal.
Estados do Processo
- Um processo não deve alocar a UCP com exclusividade em sistemas multiprogramáveis;
- Processos passam por diferentes estados ao longo do seu processamento, de acordo com eventos síncronos e assíncronos;
- Processo Ativo:
- Execução – Quando o processo está sendo executado pelo processador.
- Pronto – Aguardando para ser executado.
- Espera – Aguarda algum evento externo ou algum recurso para prosseguir processamento.
pronto – execução
execução – espera
espera – pronto
pronto - execução
- Processo:
- Execução – Pronto – Espera
- Criação – SO adiciona um novo PCB à sua estrutura e aloca espaço de endereçamento na memória para uso.
A partir da criação, o SO reconhece a existência do processo, mas ainda não o colocou na lista de processos prontos. - Terminado – O processo não pode ter mais nenhuma execução, porém o SO ainda terá suas informações presentes na memória.
Um processo terminado não é mais considerado ativo, mas como o PCB ainda existe, o SO pode recuperar suas informações.
Pode ocorrer por: termino de execução, eliminação por outro processo ou eliminação forçada.
Concorrência
Uma maneira de implementar a concorrência em processos é subdividir o código em partes para trabalhar de forma cooperativa.
Processos Independentes
- Maneira mais simples de implementação;
- Não existe vínculo do processo criado com o criador;
- Exige alocação de um PCB independente;
- Consumo de recursos: alocação e desalocação de contexto de software, hardware e espaço de endereçamento.
Processos Subprocessos
- Estrutura hierárquica – pais e filhos;
- Dependência entre processo criador (pai) e o subprocesso (filho);
- Caso o pai deixe de existir os filhos são automaticamente eliminados;
- Cada subprocesso possuí seu próprio PCB;
- O processo pai cede parte de suas Quotas com os filhos.
- Consumo de recursos: alocação e desalocação de contexto de software, hardware e espaço de endereçamento.
Threads
- Tentativa de reduzir o tempo gasto na criação, eliminação e troca de contextos;
- Economiza recursos do SO;
- Compartilham o processador da mesma maneira que um processo – enquanto um thread aguarda uma operação outra pode ser executada;
- Compartilha o mesmo contexto de software e espaço de endereçamento, uma vez que o espaço referenciado pelo loader é o mesmo do contexto de software e espaço de endereçamento;
Multithread – Compartilham o mesmo espaço de endereçamento e contexto de software.
Foreground e Background
- Todo processo é associado à sua estrutura pelo menos dois canais de comunicação.
- Foreground – Permite a comunicação direta entre o usuário e o processo. Canais de entrada e saída.
- Background – Não existe comunicação com o usuário e o processo. Processamento batch.
- Pipe – Faz a ligação entre os processos, sendo possível associar o canal de saída de um processo ao canal de entrada de outro.
CPU-Bound e I/O-Bound
- Processos classificados de acordo com o modo que utilizam o processador e os dispositivos de E/S.
- CPU-Bound – Quando passa a maior parte do tempo em estado de execução, poucas operações de leitura e gravação.
- I/O-Bound – Quando passa a maior parte do tempo em estado de espera
Sinais
- Permite notificar processos de eventos gerados pelo SO ou por outros processos;
- Maior parte gerado pelo SO ou pelo hardware – exceções, interrupções, alarmes;
- O SO é notificado do problema através de uma exceção, o sistema deve notificar o processo que gerou o problema através de um sinal.
Threads
- Antigamente os SO suportavam apenas processos com uma única thread (monothread);
- Lightweight – Espaço de endereçamento de um processo compartilhado por várias aplicações;
Conceitos
- Sub-rotina de um programa que pode ser executada de forma assíncrona, paralela ao programa que a chamou;
- Conjunto de threads compões as linhas de execução de um processo;
- Possuem recursos particulares – PC, registradores e pilha.;
- Compartilham um mesmo espaço de endereçamento e contexto de software.;
- Sub-rotina de um programa que pode ser executada de forma assíncrona, paralela ao programa que a chamou;
- São implementadas internamente dentro de uma estrutura de dados – TCB.
- Cada thread tem sua própria pilha de execução, embora compartilhem espaço de endereçamento;
- Usuário vê o programa, o SO reconhece o processo, não as threads.;
- São concorrentes dentro do processo em que foram criadas;
- Processos são concorrentes e Threads são simultâneas;
- Threads são sincronizadas, caso contrário uma interferiria na outra.
- Exemplo: Editor de texto
Threads – identação, fonte, correção, mudança de linha;
Monothread
- Suporta apenas um programa no seu espaço de endereçamento.
- Aplicações concorrentes com o uso de múltiplos processos independentes e subprocessos.
- Endereçamento individual e protegido
- Um processo com uma Thread;
- Threads concorrentes;
- Problemas – Consumo de diversos recursos do sistema devido a alocação e desalocação dos recursos e comunicação lenta.
Multithread
...