Threads. 8 de janeiro de 2015

Documentos relacionados
Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Sobre a apresentação (About(

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Programação Concorrente Processos e Threads

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistema Operacional Correção - Exercício de Revisão

8 Threads. 8.1 Introdução

Sistemas Operacionais

Estrutura, Processos e Threads

Padrões Arquiteturais e de Integração - Parte 1

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br Roteiro. Componentes do Sistema

Visão Geral de Sistemas Operacionais

Threads Aula 04 2 Quadrimestre

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Sistemas Operacionais I

Programação Concorrente

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

SO: Gerenciamento de Processos

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

(Aula 15) Threads e Threads em Java

GOVERNO DO ESTADO DO RIO DE JANEIRO SECRETARIA DE ESTADO DE CIÊNCIA, TECNOLOGIA E INOVAÇÃO FUNDAÇÃO DE APOIO À ESCOLA TÉCNICA

Sistemas Operacionais

Sistemas Operativos Cap. IV Threads. Prof. José Rogado Universidade Lusófona

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Slide. ! Multiprocessamento! Modelo de processo. Dep. Ciência da Computação. Slide. ! Alternância de processos. ! Relação Programa x Processo

Introdução a Computação 07 Sistemas operacionais. Márcio Daniel Puntel marcio.puntel@ulbra.edu.br

Sistemas Distribuídos

Infra-Estrutura de Software. Introdução. (cont.)

SISTEMAS OPERACIONAIS

Fundamentos de Sistemas Operacionais de Redes

Sistemas Operacionais. Conceitos de um Sistema Operacional

Sistemas Operacionais

PLANO DE ENSINO

Noções básicas de Informática: Software

Proporcionar uma visão geral da metodologia de Sistemas Operacionais.

Sistemas Distribuídos

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Introdução a Threads Java

Sistemas Operacionais

DISCIPLINA: Arquitetura e Organização de Computadores II 2ECOM.027

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais

ESTUDO DE CASO WINDOWS VISTA

da Disciplina Sumário BC Sistemas Operacionais Prof. Marcelo Z. do Nascimento Motivação Apresentação

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

SISTEMAS OPERACIONAIS

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Roteiro. Motivação. Apresentação. Programa e Cronograma. Critérios de avaliação. Referência bibliográfica. Projetos e Seminario

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Programador Web - Pronatec

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

SISTEMAS OPERACIONAIS

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Universidade Salgado de Oliveira

Figura 01 Kernel de um Sistema Operacional

Sistemas Operacionais

Introdução. Sistemas Operacionais

Sistemas Distribuídos

ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1

Arquitetura de Computadores para. Sistemas Operacionais. Sistemas Operacionais. Sumário

É a associação de mais de um fluxo de execução em um único processo.

Introdução à Ciência da Computação

Linguagem de Programação Introdução a Linguagem Java

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais Processos e Threads

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Processos (Threads,Virtualização e Migração de Código)

Escalonamento de CPU 2 Quadrimestre

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

Sistemas Operacionais

Estruturas do Sistema de Computação

Sistemas Operacionais

Sistemas Operacionais

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Processos e Threads (partes I e II)

Tipos de Computadores. Sediane Carmem Lunardi Hernandes

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Programação Concorrente Conceitos Multiprogramação Threads

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

SISTEMAS OPERACIONAIS 2007

SISTEMAS DISTRIBUÍDOS

THREADS EM JAVA. George Gomes Cabral

Imagem retirada de documentações de treinamentos oficiais INTEL

Capítulo 8. Software de Sistema

4 Estrutura do Sistema Operacional Kernel

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Transcrição:

1 / 24 Erick Nilsen Pereira de Souza T002 - Sistemas Operacionais e Org. Computadores Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 8 de janeiro de 2015

2 / 24 Agenda Tópicos Visão Geral Modelos Multithread Exemplo prático: threads em Java

3 / 24 Visão Geral Sumário 1 Visão Geral 2 Modelos Multithread 3 Exemplo prático: threads em Java

4 / 24 Visão Geral Visão Geral Conceito Uma thread pode ser entendida como uma linha de execução em um processo. É uma rotina de um processo em execução que compartilha o mesmo espaço de endereçamento, mas tem seu próprio contexto de hardware e de software. Um processo pode ter várias threads, podendo ser executadas em paralelo.

5 / 24 Visão Geral Processo com uma ou múltiplas threads

6 / 24 Visão Geral Visão Geral Conceito Multiplas tarefas em uma aplicação podem ser executadas por diferentes threads Ex: a verificação ortográfica pode ser realizada em paralelo à entrada de texto de um programa. Vantagens A criação de uma thread é mais leve que a criação de um processo. Se usadas com cuidado, podem simplificar o código e aumentar a eficiência. Há um maior compartilhamento de recursos (economia).

7 / 24 Visão Geral Arquitetura cliente-servidor com threads Conceito Um ou mais clientes solicitam serviços do servidor. Ex: Um servidor WEB aceitando requisições de clientes para páginas WEB. A cada requisição do cliente é criado um novo processo no servidor. É menos custoso criar várias threads dentro do mesmo processo para cada requisição.

8 / 24 Visão Geral Arquitetura cliente-servidor com threads

9 / 24 Visão Geral Benefícios Categorias Responsividade (melhor resposta ao usuário): permite que um programa continue executando mesmo que parte dele esteja realizando uma operação longa (em threads diferentes). Compartilhamento de recursos: as threads compartilham memória e recursos do processo ao qual pertence. Economia: consequência do compartilhamento de recursos; é mais custoso criar processos do que threads. Utilização de arquiteturas multiprocessadas: um processo só pode ser executado em uma CPU, mesmo que haja várias disponíveis; múltiplas threads podem ser executadas em processadores distintos, aumentando o paralelismo.

10 / 24 Visão Geral Execução concorrente em um sistema sigle core

11 / 24 Visão Geral Execução paralela em um sistema multicore

12 / 24 Modelos Multithread Sumário 1 Visão Geral 2 Modelos Multithread 3 Exemplo prático: threads em Java

13 / 24 Modelos Multithread Modelos Multithread Conceito O suporte das threads pode ser fornecido no nível do usuário ou do kernel. As threads do usuário são gerenciadas sem o suporte do kernel. Ex: JVM, As threads do kernel são gerenciadas pelo SO. Ex: Pthreads (API do Linux) e Win32 (API do Windows). Existe uma relação entre as threads do usuário e do kernel. Modelos Many-to-One One-to-One Many-to-Many

14 / 24 Modelos Multithread Modelos Many-to-One Conceito Múltiplas threads do usuário são mapeadas para uma thread do kernel. Somente uma thread do usuário pode acessar o kernel por vez. Várias threads não podem ser executadas em paralelo em multiprocessadores. Implementado no Solaris.

15 / 24 Modelos Multithread Modelo Many-to-One

16 / 24 Modelos Multithread Modelos One-to-One Conceito Cada thread do usuário é mapeada para uma thread do kernel. Permite que várias threads sejam executadas em paralelo em multiprocessadores. Vantagem: aumenta o paralelismo. Desvantagem: custo adicional na criação de threads de kernel prejudica o desempenho das aplicações. Implementado no Windows e Linux.

17 / 24 Modelos Multithread Modelo One-to-One

18 / 24 Modelos Multithread Modelos Many-to-Many Conceito Permite que muitas threads do usuário sejam mapeadas em um número menor ou igual de threads do kernel. PO sistema operacional cria um número suficiente de threads no kernel. Em média, melhora a questão do custo adicional na criação de threads de kernel.

19 / 24 Modelos Multithread Modelo Many-to-Many

20 / 24 Exemplo prático: threads em Java Sumário 1 Visão Geral 2 Modelos Multithread 3 Exemplo prático: threads em Java

21 / 24 Exemplo prático: threads em Java em Java Conceito É possível criar threads programaticamente em Java através da implementação da interface Runnable. Cada thread deve implementar o método Runnable.run(). A chamada a uma thread é feita pelo método start().

22 / 24 Exemplo prático: threads em Java em Java Exercício Criar mais uma thread no exemplo dado. Implementar a seguinte regra: quando a primeira das 3 threads finalizar sua execução, o programa deve suspender a execução das outras duas e mostrar o último valor impresso por cada uma. Teste sua solução para os intervalos de valores [0,10] e [0,1000]. Dica: usar o método interrupt().

23 / 24 Exemplo prático: threads em Java Bibliografia TANENBAUM, Andrew S. Organização estruturada de computadores. Tradução de Arlete Simille Marques. 5. ed. São Paulo: Pearson Prentice Hall, 2007. SILBERSCHATZ, Abraham. Operating system concepts. Colaboração de Peter Baer Galvin. 5. ed. Reading: Addison-Wesley, 1998. TANENBAUM, Andrew S. Sistemas operacionais modernos. Tradução de Ronaldo A. L Goncalves; Luis A Consularo; Luciana do Amaral Teixeira. 3. ed. São Paulo: Pearson Education do Brasil, 2009.

24 / 24 Exemplo prático: threads em Java Erick Nilsen Pereira de Souza T002 - Sistemas Operacionais e Org. Computadores Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 8 de janeiro de 2015