Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Aula 3 Conceito de Concorrência Claudio de Oliveira Organização da Aula Conceito de Concorrência. Sistemas Monoprogramáveis x Multiprogramáveis. Técnica de Concorrência Conceito de Processos Conceito de Threads. FIM Concorrência •Sistemas Operacionais podem ser vistos como um conjunto de rotinas executadas de forma concorrente e ordenada. (Pinkert, 1990). Monoprogramável x Multiprogramável 2 (a) Sistema Monoprogramável tempo tempo E/ S E/ S UCP UCPlivre 11 1 (b) Sistema Multiprogramável Quais as principais técnicas que permitem a implementação da concorrência em sistemas multiprogramáveis? Interrupções e Exceções •Interrupção: é sempre gerada por algum evento externo ao programa, exemplo uma operação de E/S. •Exceção: é gerada por um evento síncrono direto do programa concorrente. Controladores Memória Principal UCP Controlador Dispositivos de E/ S Canais de entrada e saída Memória Principal UCP Canal de E/ S Controlador Dispositivos de E/ S Controlador Dispositivos de E/ S Buffering Memória Principal UCP Buffer gravação gravação leitura leitura Controlador Spooling Programa ImpressoraArquivo de Spool Sistema OperacionalSistema Operacional Reentrância Memória Principal código reentrante área de dados do usuário A usuário A usuário C usuário B usuário D área de dados do usuário B área de dados do usuário C área de dados do usuário D Técnica de DMA Acesso direto a memória: Técnica que permite a transferência de dados direto da memória para o dispositivo de saída sem passar pelo processador. FIM O que é um processo? Conceito de processo? Um processo pode ser entendido inicialmente como um programa em execução, só que seu conceito é mais abrangente. [MACHADO, 1997]. Características da Estrutura de um Processo Programa Contexto de Software prioridade de execução registrador PC data/ hora de criação tempo de processador registrador SP quotas privilégios endereços de memória principal alocados registrador de status owner (UID) PID nome registradores gerais Contexto de Hardware Espaço de Endereçamento Troca de contexto entre processo Tipos de processos Foreground x Background (a) Processo Foreground (b) Processo Background saída saída arquivo de saída terminalterminal entrada entrada arquivo de entrada Tipos de processos CPU- Bound x I/O-Bound (a) CPU-bound tempo tempo E/ S E/ S UCP UCP (b) I/ O-bound Comunicação entre processos [ctrl-C] Processo interrupção sinal Sistema Operacional Hardware Sistema Operacional Interrupções Exceções Sinais Processo Processo A gerência de processos no Windows. Visualizando o gerenciador de processos no modo gráfico. O que é uma thread? Conceituando... Processos: São programas em execução que contém um único fluxo de execução. Processos possuem seu espaço de endereçamento de memória individual. Acumulam recursos como: arquivos abertos, processos filhos, etc. O que é uma thread então? É uma das maneiras utilizadas por um processo para dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente, em geral, em arquiteturas multiprocessadas. Vantagens para utilização de thread São mais fáceis de criar e destruir que os processos. Compartilham espaço físico de memória, disco, periféricos e outros recursos. Apresentam melhor performance do que os processos. Utilização de thread O sistema operacional deverá ter suporte a thread.- API CreateThread do Windows; A ferramenta de programação (linguagem) também deverá ter suporte para threads. (JAVA) Síntese Concorrência As técnicas de concorrência podem ser a nível de hardware ou de software e sempre tem a função de liberar o processador das tarefas de E/S. Gerência de processos Processo é uma parte do programa em execução. Os processos de uma mesma aplicação concorrem entre si. Cada processo possui seu contexto de hardware, software e endereço de memória. Threads Também chamadas de processos leves (lightweight process). Principais vantagens em relação ao uso de processo é a performance e o compartilhamento de recursos. Referências de Apoio • TANENBAUM. Sistemas Operacionais Modernos. (biblioteca virtual) • DEITEL. Sistemas operacionais. (biblioteca virtual) • MACHADO. Arquitetura de Sistemas Operacionais
Compartilhar