Baixe o app para aproveitar ainda mais
Prévia do material em texto
17/05/2010 1 SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 1/24Prof. Carlos Maurício de B. Mello ARQUITETURA DE SISTEMAS OPERACIONAIS CAPÍTULO 6 THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 2/24Prof. Carlos Maurício de B. Mello – O uso de processo independentes, subprocessos ou threads são maneiras diferentes de implementar a concorrência numa determinada aplicação. – É a divisão do código em partes para que estas possam trabalhar de forma cooperativa. PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 3/24Prof. Carlos Maurício de B. Mello – O uso de processos independentes é a maneira mais simples de implementar a concorrência em sistemas multiprogramáveis; – Neste caso, não existe vínculo entre o processo criado com o seu criador. – O processo criado exige a alocação de um PCB próprio. PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 4/24Prof. Carlos Maurício de B. Mello – Subprocessos são processos criados dentro de uma estrutura hierárquica. – O processo criador é chamado de processo-pai, enquanto o novo processo é chamado de subprocesso ou processo-filho; – Caso o processo-pai deixe de existir, o subprocesso é automaticamente eliminado; – O subprocesso também tem seu próprio PCB; PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 5/24Prof. Carlos Maurício de B. Mello – Estrutura de processos e subprocessos Processo A Processo C Processo B Processo E Processo D PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 6/24Prof. Carlos Maurício de B. Mello – O uso de processos independentes ou de subprocessos demanda consumo de recursos do sistema (alocação do contexto de HW, SW e do espaço de endereçamento) e exige tempo para este processo. – No término dos processos, também há um overhead para desalocar os recursos. – Outro problema é na comunicação entre processos, visto que os espaços de endereçamento são diferentes para cada processo. PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS 17/05/2010 2 SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 7/24Prof. Carlos Maurício de B. Mello – Conceito criado na tentativa de reduzir o tempo gasto em criação, eliminação e troca de contexto de processos nas aplicações concorrentes; – Threads compartilham o processador da mesma maneira que um processo – enquanto uma está fazendo E/S, outra thread pode ser executada. THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 8/24Prof. Carlos Maurício de B. Mello – É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente; – Em um ambiente multithread, um único processo pode suportar múltiplos threads, cada um associado a parte do código da aplicação. THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 9/24Prof. Carlos Maurício de B. Mello – Como as Threads são semelhantes aos processos... – Responda: – Possui Contexto de Hardware? – E Contexto de Software? – E Espaço de Endereçamento? THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 10/24Prof. Carlos Maurício de B. Mello ● Processo monothread – Um processo suporta apenas um programa no seu espaço de endereçamento. Aplicações concorrentes são implementadas apenas com o uso de múltiplos processos independentes. – O problema é que seu uso demanda consumo de diversos recursos do sistema, pois sempre que um novo processo é criado, o sistema deve alocar recursos para ele. THREADS Thread ThreadThread SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 11/24Prof. Carlos Maurício de B. Mello ● Processo multithread Contexto de hardware Contexto de hardware Contexto de hardware Espaço de endereçamento C o n te x to d e so ft w a re Thread 3Thread 2Thread 1 – Como as threads usam o mesmo espaço de endereçamento, a comunicação entre elas pode ser feita de forma simples e rápida. THREADS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 12/24Prof. Carlos Maurício de B. Mello ● Processo multithread Contexto de hardware Contexto de hardware Contexto de hardware Espaço de endereçamento C o n te x to d e so ft w a re Thread 3Thread 2Thread 1 – Os threads possuem seu próprio contexto de HW, porém compartilham o mesmo contexto de SW e espaço de endereçamento com os demais threads do processo. THREADS 17/05/2010 3 SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 13/24Prof. Carlos Maurício de B. Mello EXERCÍCIOS DE FIXAÇÃO – Como pode ser feita a comunicação entre threads? – Qual a vantagem do uso de threads ao invés de subprocessos? – Para que serve o PCB? – Dê exemplos de informações armazenadas no PCB? – Defina processo. – Quais partes compõem um processo? SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 14/24Prof. Carlos Maurício de B. Mello PROCESSOS FOREGROUND E BACKGROUND – Um processo possui, pelo menos, dois canais de comunicação associados a sua estrutura, pelos quais são realizadas todas as operações de entrada e saída de dados; – Estes canais podem estar associadas a terminais, arquivos, impressoras ou até mesmo a outros processos. SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 15/24Prof. Carlos Maurício de B. Mello – Um Processo foregroung é aquele que permite a comunicação direta do usuário com o processo durante o seu processamento. – Um Processo background onde não existe a comunicação com o usuário durante o seu processamento. Neste caso, os canais de comunicação não estão associados a nenhum dispositivo de I/O interativo. (Processamento Batch, por exemplo) PROCESSOS FOREGROUND E BACKGROUND SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 16/24Prof. Carlos Maurício de B. Mello PROCESSOS FOREGROUND E BACKGROUND – Processos foreground e background (a) Processo Foreground (b) Processo Background saída saída arquivo de saída terminalterminal entrada entrada arquivo de entrada SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 17/24Prof. Carlos Maurício de B. Mello – É possível associar o canal de saída de um processo ao canal de entrada de outro processo. – A esta associação, atribui-se o nome de PIPE. – Em geral utiliza-se a terminologia de que há um pipe ligando os dois processos. PROCESSOS FOREGROUND E BACKGROUND SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 18/24Prof. Carlos Maurício de B. Mello – Pipeentrada do Processo A saída do Processo B saída do Processo A entrada do Processo B Processo A Processo B PROCESSOS FOREGROUND E BACKGROUND 17/05/2010 4 SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 19/24Prof. Carlos Maurício de B. Mello PROCESSOS DO SISTEMA – Quando processos são utilizados para implementação de serviços dos sistema, diz-se que foram retirados códigos de seu núcleo, tornando-o menor e mais estável. A seguir alguns serviços que podem ser implementados por processos: Auditoria e segurança; Serviços de rede; Contabilização do uso de recursos; Contabilização de erros; Gerência de impressão; Gerência de jobs batch; Temporização; Comunicação de eventos; Interface de comandos (shell). SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 20/24Prof. Carlos Maurício de B. Mello – Processos podem ser classificados como CPU-BOUND e I/O- BOUND, de acordo com a utilização do processador e dos dispositivosde E/S; – CPU-BOUND (Ligado à CPU): Quando passa a maior parte do tempo no estado de execução, utilizando o processador, ou pronto; ● Realiza poucas operações de leitura e gravação e é facilmente encontrado em aplicações científicas que efetuam muitos cálculos. PROCESSOS CPU E IO BOUND SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 21/24Prof. Carlos Maurício de B. Mello – I/O-BOUND (Ligado à E/S): Quando passa a maior parte do tempo no estado de espera, pois realiza elevado número de operações de E/S; ● Este tipo de processo é encontrado em aplicações comerciais que se baseiam em leitura, processamento e gravação. PROCESSOS CPU E IO BOUND SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 22/24Prof. Carlos Maurício de B. Mello – Processos CPU x IO Bound (a) CPU-bound tempo tempo E/ S E/ S UCP UCP (b) I/ O-bound PROCESSOS CPU E IO BOUND SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 23/24Prof. Carlos Maurício de B. Mello – Mecanismo que permite notificar processos de eventos gerados pelo sistema operacional ou por outros processos. – Exemplo: [ctrl-C] Processo interrupção sinal Sistema Operacional – Um outro exemplo seria um processo que precise ser notificado periodicamente para realizar uma tarefa. Ex: A cada 1s atualizar o relógio na tela. SINAIS SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 24/24Prof. Carlos Maurício de B. Mello – Sinais, interrupções e exceções Hardware Sistema Operacional Interrupções Exceções Sinais Processo Processo SINAIS 17/05/2010 5 SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 25/24Prof. Carlos Maurício de B. Mello EXERCÍCIOS DE FIXAÇÃO – Por que não pode-se utilizar o teclado como uma entrada para um processo background? – Para que serve um pipe? – Quais as vantagens de se utilizar serviços dos sistema como processos ao invés de implementados no núcleo? SISTEMAS OPERACIONAIS – INSTITUTO SUPERIOR FÁTIMA 2010 26/24Prof. Carlos Maurício de B. Mello EXERCÍCIOS DE FIXAÇÃO – Dê exemplos de aplicações onde os programas são tipicamente CPU-BOUND – Dê exemplos de aplicações onde os programas são tipicamente I/O-BOUND
Compartilhar