Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
Sistemas Operacionais
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Parte 1: Organização de Computadores
Sistemas Operacionais
IC - UFF Sistemas Operacionais Threads. IC - UFF Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade.
Capitulo 6: Entrada e Saída
Sistemas Operacionais
Threads (Linha de execução )
Arquitetura de Sistemas Operacionais
PThreads MO801/MC972.
Chapter 4: Threads.
Sistemas Operacionais
Sistemas Operacionais
April 05 Prof. Ismael H. F. Santos - 1 Sistemas Operacionais UniverCidade - Prof. Ismael H F Santos.
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC SISTEMAS OPERACIONAIS I
SSC SISTEMAS OPERACIONAIS I
Sistemas operacionais
Threads.
Processos Conceitos Básicos.
Threads.
Concorrência em Java Threads em Java.
Concorrência em Java Threads em Java.
Unidade 1-1 Processos e Threads
Concorrência em Java Threads em Java.
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Erivelto TSchoeke 1/12. Cenário Definição de tarefas Processamento em sistemas mono-tarefas Sistemas multi-tarefas Sistemas multi-tarefas com time-sharing.
Programação concorrente:
Linguagem de Programação IV
Concorrência entre Threads Java
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Unidade 2 - Parte 1 Programação Concorrente
IC - UFF Sistemas Operacionais 4. Threads Texto base: capítulo 4 Operating Systems: Internals and Design Principles W. Stallings.
Sistemas Operacionais
Processos.
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 9 Regiane Kawasaki
Programação Paralela.
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Prof. Alexandre Monteiro Recife
Sistemas Operacionais
Escalonamento de Processos e Threads
Processos.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 4: Threads.
SISTEMAS OPERACIONAIS I
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Capítulo 4: Processos.
Infra-Estrutura de Software
Sistemas Distribuídos
SISTEMAS OPERACIONAIS MACH EPOS
Sistemas Operacionais
Sistemas Operacionais Prof. Tales Cabral 1º Módulo Colégio da Imaculada Curso Técnico em Informática.
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Administração de Sistemas Operacionais 1 -Windows
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Sistemas Operacionais Processo
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner FATEC-PB.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
ProgramaçãoConcorrente Glêdson Elias
Transcrição da apresentação:

Sistemas Operacionais 4. Threads Texto base: capítulo 4 Operating Systems: Internals and Design Principles W. Stallings IC - UFF

Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade de recursos: a um processo é alocado um espaço de endereçamento virtual para manter a sua imagem; de tempos em tempos o processo pode ter mais memória, além do controle de arquivos, dispositivos de E/S, ... IC - UFF

Processos e threads (2) unidade de despacho: um processo é uma linha de execução, intercalada com outras linhas de outros processos; cada uma delas tem um estado de execução e uma prioridade; é a entidade que é escalonada e despachada pelo SO IC - UFF

Processos e threads (3) Estas duas características podem ser tratadas de forma independente pelo SO: thread ou processo peso leve (lightweight process): é a unidade de despacho processo ou tarefa: é a unidade de alocação de recursos IC - UFF

uma thread por processo múltiplas threads por processo Multithreading máquina Java MS-DOS um processo uma thread um processo múltiplas threads múltiplos processos uma thread por processo múltiplos processos múltiplas threads por processo Unix Windows NT, Solaris IC - UFF

Assim, ... Em um ambiente multithreaded, um processo: é a unidade de alocação e proteção de recursos tem um espaço de endereçamento virtual que mantém a imagem do processo tem acesso controlado a outros processos, arquivos e outros recursos IC - UFF

e ... Em um processo podem existir uma ou mais threads com um estado de execução (pronta, ...) seu contexto salvo quando não estiver executando sua pilha de execução acesso a variáveis locais próprias acesso compartilhado com outras threads deste processo aos recursos do processo IC - UFF

Modelos de processos Thread única Multithreaded IC - UFF Espaço de ender. do usuário TCB Pilha do núcleo PCB Thread Multithreaded Pilha do usuário núcleo Espaço de ender. do PCB Thread única IC - UFF

Benefícios de threads É mais rápido criar uma thread que um processo É mais rápido terminar uma thread que um processo É mais rápido chavear entre threads de um mesmo processo Threads podem se comunicar sem invocar o núcleo já que compartilham memória e arquivos IC - UFF

Contudo, Suspender um processo implica em suspender todas as threads deste processo já que compartilham o mesmo espaço de endereçamento O término de um processo implica no término de todas as threads desse processo IC - UFF

Exemplos de aplicação Trabalho em primeiro e segundo planos: E/S e cálculo em planilhas Processamento assíncrono: salvamento periódico em editores de texto Aumento de velocidade de execução: paralelismo Organização: facilidade de projeto e implementação IC - UFF

Estados de uma thread Estados fundamentais: executando, pronta e bloqueada Faz sentido o estado “suspensa”? O que acontece com as threads de um processo quando uma delas bloqueia? IC - UFF

Exemplo: RPC tempo pedido RPC pedido RPC processo 1 serv serv serv thread A thread B (processo 1) pedido RPC executando bloqueado(a) IC - UFF

Outro exemplo tempo pedido E/S pedido atendido quantum expira thread A (processo 1) thread B (processo 1) quantum expira thread C (processo 2) processo criado pronta executando bloqueada IC - UFF

Exemplo de uso #include <stdio.h> #include <pthread.h> void thr_func(int *id); /* codigo threads 1 e 3 */ void thr_yield(int *id); /* codigo thread 2 */ int main(){ pthread_t thr1,thr2,thr3; /* declara as threads */ int nThrID1,nThrID2,nThrID3; nThrID1 = 1; nThrID2 = 2; nThrID3 = 3; /* cria threads: id, inic, funcao, param funcao */ pthread_create(&thr1,NULL,(void* )thr_func,&nThrID1); pthread_create(&thr2,NULL,(void* )thr_yield,&nThrID2); pthread_create(&thr3,NULL,(void* )thr_func,&nThrID3); /* espera fim das threads: id, status de saida */ pthread_join(thr3,NULL); pthread_join(thr2,NULL); pthread_join(thr1,NULL); } IC - UFF

Exemplo de uso (2) /* codigo das threads 1 e 3 */ void thr_func(int *id){ printf("Eu sou a thread %d\n",*id); } /* codigo da thread 2 */ void thr_yield(int *id){ sched_yield(); printf("Eu sou a thread %d\n",*id); } /* compilacao: gcc -o threads -lthread -lposix4 threads.c */ IC - UFF

Em que nível implementar? Nível do usuário gerenciamento das threads é feito pela aplicação o núcleo desconhece a existência de threads chaveamento entre threads não requer privilégio de modo núcleo; isso elimina o gasto de dois chaveamentos de modo escalonamento é feito pela aplicação IC - UFF

e mais ... implementadas através de bibliotecas: executam em qualquer SO Porém: chamada ao sistema bloqueia todas as threads de um processo não aproveita os benefícios do multiprocessamento (estão em algum processo!) IC - UFF

Ainda o nível Nível do núcleo gerenciamento das threads é feito pelo núcleo núcleo mantém a informação de contexto para processo e threads escalonamento e chaveamento das threads é feito pelo núcleo bloqueio de uma thread não bloqueia as outras IC - UFF

e ainda ... threads podem aproveitar a capacidade de multiprocessamento usuário enxerga uma API para threads do núcleo Porém: a transferência de controle entre threads de um mesmo processo requer chaveamento para modo núcleo IC - UFF

Comparando implementações IC - UFF

Combinando modos ... P P P biblioteca de threads espaço do usuário núcleo thread nível núcleo nível usuário P Processo P P IC - UFF

Leitura suplementar Operating Systems Concepts, A. Silberschatz e P.B. Galvin, Addison-Wesley Modern Operating Systems, A.S. Tanenbaum, Prentice Hall IC - UFF

Threads: nível usuário biblioteca de threads espaço do usuário espaço do núcleo P thread nível usuário P Processo IC - UFF

Threads: nível núcleo P P espaço do usuário núcleo nível usuário Processo IC - UFF