(Aula 15) Threads e Threads em Java



Documentos relacionados
(Aula 17) Threads em Java

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Sistemas Operacionais I

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

Threads Aula 04 2 Quadrimestre

Sobre a apresentação (About(

PROCESSOS. Prof. Maicon A. Sartin

Programação Concorrente Processos e Threads

Sistemas Operacionais

Introdução à Computação: Sistemas de Computação

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

8 Threads. 8.1 Introdução

SISTEMAS OPERACIONAIS

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

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

Programação Concorrente Conceitos Multiprogramação Threads

Sistemas Operacionais

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

SO: Gerenciamento de Processos

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

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

Processos e Threads (partes I e II)

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

THREADS EM JAVA. George Gomes Cabral

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

Introdução a Computação

Sistemas Distribuídos

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

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

Sistemas Operacionais. Prof. André Y. Kusumoto

SISTEMAS OPERACIONAIS

Threads. 8 de janeiro de 2015

Java Threads. Introdução

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

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

Introdução à Linguagem Java

Threads e Concorrência em Java (Material de Apoio)

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

Sistemas Operacionais

Aspectos de Sistemas Operativos

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Sistemas Operacionais

O que é o Android? O que é o Android

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Processos. Adão de Melo Neto

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Sistemas Operacionais

Estrutura, Processos e Threads

Sistemas Operacionais

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

Introdução à Informática

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

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

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Sistemas Operacionais

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

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

Arquitetura dos Sistemas Operacionais

Nível do Sistema Operacional

Gerenciamento de memória

Programação Concorrente

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

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

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

2 Modelos de Implementação

Arquitetura e Organização de Computadores

Implementando uma Classe e Criando Objetos a partir dela

Edeyson Andrade Gomes.

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

Classificação Quanto. Sistemas de Lotes (2) Sistemas de Lotes (3)

Programador Web - Pronatec

SISTEMAS OPERACIONAIS. George Gomes Cabral

Desenvolvimento Web TCC Turma A-1

Conceitos Básicos sobre Sistemas Operacionais

Um retrospecto da aula passada... Um retrospecto da aula passada... Principais Aspectos de Sistemas Operacionais. Gerência de E/S

Arquitetura de Computadores II

Sistemas Operacionais. Conceitos de um Sistema Operacional

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

Programação de Computadores II TCC Turma A-1

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Linguagens de. Aula 02. Profa Cristiane Koehler

4 Estrutura do Sistema Operacional Kernel

Transcrição:

(Aula 15) Threads e Threads em Java

Um fluxo computacional. A programa maioria de execução, dos seqüencial programas o qual simples consiste realiza tem uma de essa um certa único tarefa Grande característica: só possuem um único fluxo de execução. Profa. Patrícia D. escrito Por conseguinte, não executam dois trechos de código simultaneamente. CostaLPRM/DI/UFES execução. hoje parte em do dia software faz uso de maior complexidade 2 de mais de Sistemas uma Operacionais linha 2008/1 Fluxos de Execução

Navegador Consegue mesmo tempo, (browser) fazer gerenciando o downloadde diferentes vários arquivos velocidades ao Editor de cada servidor e, ainda assim, permitindo que o Permite usuário enquanto continue arquivos interagindo, estão sendo mudando carregados. de página Profa. Patrícia D. Processamento CostaLPRM/DI/UFES ainda de está que textos sendo o usuário assíncrono carregado edite o arquivo enquanto ele 3(salvamento do disco. periódico) Sistemas Operacionais 2008/1 Exemplos de Programas

Threads= linha, fluxos de fio. execução que rodam dentro de um processo. Threadé Seqüência de instruções a serem executadas dentro de aplicação um programa. Profa. Patrícia D. (ex: = lightweight process Processos uma abstração que permite que uma CostaLPRM/DI/UFES aplicação mais execute de ao permitem um mesmo método) mais ao tempo. S.O. de um trecho de código 4simultaneamente. executar mais Sistemas de uma Operacionais 2008/1 Threads

Existem usualmente duas tratadas características de forma fundamentais independente que pelo são Propriedade S.O.: Propriedadede Escalonamento( scheduling/ Trata recursos( resourceownership ); necessários dispatching ). Profa. Patrícia D. CostaLPRM/DI/UFES Ex: de recursos: memória, dos De de recursos controlar tempos para a em sua arquivos, alocadosaos tempos, execução. processos, e que são 5requerer o processo dispositivos pode Sistemas requerer de Operacionais E/S, mais etc. 2008/1 Threads e Processos (1)

Escalonamento: Tradicionalmente Relacionado à unidade de despachodo S.O. processo Determina o fluxo de execução (trecho código) que é executado pela CPU. um programa conjunto está de associado em recursos o execução a: Profa. Patrícia D. CostaLPRM/DI/UFES 6 Sistemas Operacionais 2008/1 Threads e Processos (2)

Em Processos recursos, (3) threadsconstituem um S.O. e estão threadsàs multi-threads associados unidades atividades somenteà de de despacho). execução propriedade (i.e., de Threads e Processos Profa. Patrícia D. CostaLPRM/DI/UFES 7 Sistemas Operacionais 2008/1

Multithreadingrefere-se múltiplas threadsde DOSexecução àhabilidade em um do mesmo S.O. em processo. suportar JVM UNIX Vários Sys Windows, Solaris, Linux Profa. Patrícia D. CostaLPRM/DI/UFES 8 Sistemas Operacionais 2008/1 Threads e Processos (4)

S.O.s MS-DOS: multithreading permitem múltiplas threads Unix de execução uma em única um thread. único processo. Profa. Patrícia Windows Suporta standard : D. Suportam processo. múltiplos processos mas apenas uma thread CostaLPRM/DI/UFES2000, múltiplas Linux, threads Solaris,OS/2, 9 por processo. Mach: Sistemas Operacionais 2008/1 Multithreading (1)

10 é a unidade de alocação e proteção de tem recursos; mantém Profa. Patrícia D. CostaLPRM/DI/UFES arquivos um acesso espaço a e imagem outros controlado de recursos. endereçamento processo; virtual que 10a outros processos, Sistemas Operacionais 2008/1 Multithreading (2) Em um ambiente multithreaded, um processo:

11 uma estado de execução (pronta, bloqueada,...). executando. contexto salvo quando não estiver Profa. Patrícia D. acesso CostaLPRM/DI/UFES processo pilha compartilhado a variáveis aos de recursos execução. locais próprias. 11com do mesmo. outras threadsdo Sistemas Operacionais 2008/1 Multithreading (3) Já uma thread apresenta:

12 Multithreading (4) Profa. Patrícia D. CostaLPRM/DI/UFES 12 Sistemas Operacionais 2008/1

13 Mono Processos Mono e Multithreaded-Exemplo Multi serv2 Profa. Patrícia D. CostaLPRM/DI/UFES 13 Sistemas Operacionais 2008/1 thread A processo 1 (processo 1) thread B HTTP request HTTP request HTTP request serv1 serv1 HTTP request serv2 tempo executando bloqueado(a) HTTP req. bloqueado(a) - processador

14 criar uma threaddo um É terminar uma threadque Threadspodem processo. mais rápido chavear entre threadsde um Profa. Patrícia Permite mesmo D. núcleo processo do que entre processos. organização CostaLPRM/DI/UFES já paralelismo que do compartilham programa. se comunicar de sem invocar o 14 atividades memória e melhor e Sistemas arquivos. Operacionais 2008/1 Benefícios das Threads

15 Estados fundamentais: executando, (1) pronta e bloqueada de uma Thread Profa. Patrícia D. CostaLPRM/DI/UFES 15 Sistemas Operacionais 2008/1

16 Thread Suspenderum mesmo threadsdeste pode processo? bloquear processo sem (considerando implica bloquear em suspender as que outras todas threads todas as do O endereçamento)? compartilham o mesmo espaço Profa. Patrícia D. threadsdo Swapping término CostaLPRM/DI/UFESprocesso. um processo implica no término de todas as 16 Sistemas Operacionais 2008/1 Estados de uma Thread (2)

17 Nível Apenas de usuário: kernel: em S.O.s kernel-levelthreads user-levelthreads(ults) c/ suporte a multithreading (KLTs) Profa. Patrícia D. CostaLPRM/DI/UFES 17 Sistemas Operacionais 2008/1 Tipos de Threads A implementação de threads pode ser feita em um dos seguintes níveis:

18 O aplicação gerenciamento núcleo desconhece das a threadsé existência feito de pela threads. O privilégio Isso chaveamento entre threadsnão requer Profa. Patrícia D. Um modo kernel CostaLPRM/DI/UFES escalonamento processo elimina o pode gasto entre é aplicar feito de threads dois pela chaveamentos aplicaçãode modo. 18sua própria política Sistemas de Operacionais 2008/1 User-level Threads (1)

19 São Chamada implementadas através de bibliotecas Não (executam ao sistema qualquer bloqueia S.O.). todas threadsde Exemplos: um multiprocessamento. processo. Profa. Patrícia D. POSIX aproveita CostaLPRM/DI/UFES Pthreads, os Mach benefícios C-threads do 19 esolaris Sistemas threads. Operacionais 2008/1 User-level Threads (2)

20 User-level Threads (3) biblioteca Profa. Patrícia D. CostaLPRM/DI/UFES de threads P espaço do 20 Sistemas Operacionais 2008/1 P thread nível usuário usuário espaço do núcleo P Processo

21 gerenciamento das threadsé feito pelo kernel. O processo kernelmantém a informação de contexto para (escalonamento e threads. O chaveamento das threadsé feito pelo kernel Profa. Patrícia D. As CostaLPRM/DI/UFES outras thread-basis ). multiprocessamento bloqueio threadspodem threadsdo de uma processo aproveitar threadnão implica no bloqueio das 21 a capacidade Sistemas de Operacionais 2008/1 Kernel-level Threads (1)

22 O usuário enxerga uma API para threadsdo... núcleo Não aplicação há código de gerenciamento de na área da Profa. Patrícia Windows de modo porém a transferência de controle entre threads abordagem. um kernel. mesmo processo requer chaveamento para D. CostaLPRM/DI/UFES 2K, Linux, e OS/2 22são exemplos Sistemas desta Operacionais 2008/1 Kernel-level Threads (2)

23 API-threads Profa. Patrícia D. CostaLPRM/DI/UFES Kernel-level Threads (3) P thread nível usuário thread nível núcleo Processo espaço do usuário 23 Sistemas Operacionais 2008/1 P espaço do núcleo

24 API-threads Profa. Patrícia D. CostaLPRM/DI/UFES P Combinando Modos (Solaris) thread nível usuário thread nível núcleo Processo biblioteca de threads P espaço do usuário 24 Sistemas Operacionais 2008/1 P espaço do núcleo

User-levele Kernel-levelThreads 25 Profa. Patrícia D. CostaLPRM/DI/UFES 25 Sistemas Operacionais 2008/1

26 Muitasuser-level threads Modelousado mapeadasem umaúnica kernel emsistemasque nãosuportam thread. kernel threads. Profa. Patrícia D. CostaLPRM/DI/UFES Modelo Muitos-para-Um 26 Sistemas Operacionais 2008/1

27 Cadauser-level Exemplos: únicakernel Windows thread. threadé 95/98/NT/2000 mapeadaemuma e OS/2 Modelo Um-para-Um Profa. Patrícia D. CostaLPRM/DI/UFES 27 Sistemas Operacionais 2008/1

28 Permite diferentes threadsde que user-level um Permite threadsdistintas. processo mapeadas possam em kernel Profa. Exemplos: um de número ao S.O. suficiente criar Patrícia Tru64UNIX'sWindows NT/2000com kernelthreads. ThreadFiberpackage. D. CostaLPRM/DI/UFES Solaris2, o Modelo Muitos-para-Muitos 28 Sistemas Operacionais 2008/1

29 API e sincronizaçãode padrão POSIX (IEEE threads(user-level 1003.1c) paraa threads). criação ComumemsistemasoperacionaisUNIX. API especificao comportamentodabiblioteca Ex: threads (a implementaçãoé tarefado Profa. Patrícia D. padrãopthreadshttp://pauillac.inria.fr/~xleroy/linuxthreads/ pacotelinuxthreads, queimplementao desenvolvedordabiblioteca). CostaLPRM/DI/UFES 29 Sistemas Operacionais 2008/1 Pthreads

30 Windows Implementao Cadathreadcontém: um. 2000 Threads modelode mapeamentoum-para- -um -áreasseparadasparauser id -áreaparaarmazenamentode register set stacke dados kernel privados. stack Profa. Patrícia D. CostaLPRM/DI/UFES 30 Sistemas Operacionais 2008/1

31 No Implementao A (tarefas). Linux as threadssãoreferenciadascomotasks Clone()permiteà sistema) modelode mapeamentoum-para-um. espaçode criaçãode threads é feitaatravésdasvc (chamadaao Na clone(). tarefafilhacompartilharo mesmo Profa. Patrícia D. O CostaLPRM/DI/UFES cópia, novo verdade, comono processoapontap/ endereçamentoquea é criadoum fork(); novo as processo, tarefapai(processo). masnãoé feitauma 31estruturasde dados Sistemas do Operacionais 2008/1 Linux Threads

32 Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend Implementandoa D. Criarum CostaLPRM/DI/UFES JVM daclassethread. nova sósuportaum JVM novo p/ rodaro processoemjava interface novo Runnable. 32processo implicaemcriaruma Sistemas Operacionais 2008/1 Java Threads

33 Especificação API JVM: Java MáquinaVirtual da linguagem Javade programação Java Componentes: Profa. Patrícia JVM: D. CostaLPRM/DI/UFES 33 Sistemas Operacionais 2008/1

34 Programas A independentes JVM Java compilados são bytecodes Carregador plataforma de execução da Verificador Interpretador JVM consiste de runtime classes de: (Class (Runtime verifier) loader) interpreter) Profa. Patrícia D. CostaLPRM/DI/UFES 34 Sistemas Operacionais 2008/1 JVM

35 Toda Do thread aplicação (sem considerar Java tem o pelo system menos thread) uma A começa thread. main ponto thread com de vista uma cria thread, do novas desenvolvedor, threads. chamada de o main programa Profa. Patrícia D. CostaLPRM/DI/UFES 35 Sistemas Operacionais 2008/1 Java Threads

36 Cada Duas classe thread: thread é associada com uma instância da Instanciando Thread. Delegando estratégicas possíveis para criar uma executor (high-level criação/gerência a classe Thread; concurrency da thread objects) para Profa. Patrícia D. CostaLPRM/DI/UFES 36 Sistemas Operacionais 2008/1 Java Threads (2)

37 A Passando fornecer aplicação o um código que objeto cria a ser instância Runnable executado de para Thread na o thread. construtor deve Exemplo de criação de Thread em Java da classe Thread: public class HelloRunnable implements Runnable { Profa. Patrícia D. CostaLPRM/DI/UFES 37 Sistemas Operacionais 2008/1 System.out.println("Hello from a thread!"); public void run() { } } } public static void main(string args[]) { (new Thread(new HelloRunnable())).start();

38 Fazendo subclass de Thread (que também Exemplo de criação de em Java (2) implementa Runnable) public class HelloThread extends Thread { Profa. Patrícia D. CostaLPRM/DI/UFES System.out.println("Hello 38 from a thread!"); Sistemas Operacionais 2008/1 } public void run() { } public static void main(string args[]) { } (new HelloThread()).start();

39 Thread.sleep(t) Thread.interrupted() Faz com que a thread suspenda a execução por um período. t.join() Interrompe Faz terminar a execução corrente da thread (para para com que ou a thread para fazer que t execute esteja outra (até coisa) executando terminar). suspenda Profa. Patrícia D. CostaLPRM/DI/UFES 39 Sistemas Operacionais 2008/1 Manipulando Threads em Java

40 Sincronização Segundo trabalho de threads de programação em Java Próxima aula Profa. Patrícia D. CostaLPRM/DI/UFES 40 Sistemas Operacionais 2008/1