Programação Concorrente



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

Java Threads. Introdução

THREADS EM JAVA. George Gomes Cabral

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

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

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Programação Concorrente Conceitos Multiprogramação Threads

Sistemas Operacionais

Threads. 8 de janeiro de 2015

Universidade Federal da Paraíba

Programação Orientada a Objetos Threads

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Sistemas Operacionais

Sistemas Operacionais Processos e Threads

Orientação a Objetos

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

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

(Aula 15) Threads e Threads em Java

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

Fundamentos de Programaçã. ção Concorrente

Introdução a Threads Java

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

(Aula 17) Threads em Java

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

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos

Threads. O que é uma Thread? Paralelismo

Processos. Adão de Melo Neto

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Programação Concorrente em java - Exercícios Práticos Abril 2004

Java : Comunicação Cliente-Servidor.

Concorrência em Java. Threads em Java

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

8 Threads. 8.1 Introdução

Programação Concorrente Processos e Threads

Arquitetura de Sistemas Operacionais

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

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

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Introdução à Linguagem Java

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Processos e Threads (partes I e II)

Técnicas de Programação II

Sobre a apresentação (About(

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

Orientação a Objetos com Java

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

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

Sistemas Operacionais

Profº. Enrique Pimentel Leite de Oliveira

Orientação a Objetos

Factory Method. Edeyson Andrade Gomes

Programação Orientada a Objetos em Java

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Exercícios de Java Aula 24 OO Classes e Atributos

Sistemas Operacionais

Sistemas Distribuídos

Processamento de Dados

Sistemas Operacionais

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

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

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

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA. JAVA NA PRÁTICA Volume II. Alcione de Paiva Oliveira Vinícius Valente Maciel

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

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

Programação Orientada a Objetos (DPADF 0063)

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

MC536 Bancos de Dados: Teoria e Prática

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

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com

Sistemas Operacionais I Parte VI Threads

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 OPERACIONAIS

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Servlets e Applets, funcionamento e comparativo.

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Escalonamento no Linux e no Windows NT/2000/XP

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

Introdução aos Sistemas

Processos Prof. João Paulo de Brito Gonçalves

Sistemas Operacionais

Sistemas Operacionais

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

Transcrição:

+ XV Jornada de Cursos CITi Aula 2 Programação Concorrente Benito Fernandes Fernando Castor João Paulo Oliveira Weslley Torres

+ Agenda Conceitos básicos de Threads em Java Benefícios de Thread Estados,Métodos, Prioridades Exercícios

+ Processos Um processo é basicamente um programa em execução... Tanenbaum Contem seu próprio espaço de memória. Contem os recursos que ele terá em Runtime.

+ Thread O conceito de thread está intimamente ligado ao conceito de processo, assim é fundamental entender o que são processos, como eles são representados e colocados em execução pelo Sistema Operacional, para em seguida entender as threads.

+ Thread X Processos Thread Mais Leve Processo Mais Pesado Recursos compartilhados Recursos Próprios(I/O,...) Enderecamento compartilhado Ambiente de execução Compartilhada Existe dentro de um Processo Endereçamento Próprio Ambiente de Execução próprio Possui ao menos um thread

+ Benefícios de Thread A criação e terminação de uma thread nova é em geral mais rápida do que a criação e terminação de um processo novo. A comutação de contexto entre duas threads é mais rápido do que entre dois processos.

+ Benefícios de Thread A comunicação entre threads é mais rápida do que a comunicação entre processos. Multiprogramação usando o modelo de threads é mais simples e mais portável do que multiprogramação usando múltiplos processos.

+ Thread As linguagens modernas como Java e C# possuem funcionalidades MULTITHREADING na própria estrutura da linguagem. C e C++ necessitam de biblioteca especifica para processamento MULTITHREADING

+ Implementação de uma thread Existem duas formas de criar explicitamente um thread em Java: Estendendo a classe Thread e instanciando um objeto desta nova classe. Implementando a interface Runnable e passando um objeto desta nova classe como argumento do construtor da classe Thread. Nos dois casos a tarefa a ser executado pelo thread deverá ser escrita no método run().

+ A Interface Runnable Através da utilização da interface Runnable é possível criar classes que representem um thread sem precisar estender a classe Thread. A criação de uma nova thread é feita através da instanciação de um objeto thread usando o objeto que implementa a interface Runnable.

+ Herdando da Classe Thead

+ Interface Runnable

+ Exemplo

+

+ Possíveis resultados

+ Exemplo

+ Exemplo (cont)

+ Escolhendo uma forma de implementação Herdar de Thread sempre que possível Java não permite herança múltipla Deve ser feito através da implementação da interface Runnable. Applet deve ser sub-classes da classe Applet, assim applets só podem implementar threads através da implementação da interface Runnable.

+ Exercícios Crie um classe ContadorTempo que possui um atributo tick inteiro e um metodo nexttick() Crie um classe Relogio que possui um contadortempo e atraves de uma thread chama o metodo nexttick a cada segundo Crie um classe Cronometro que herda de ContadorTempo e através de uma thread chama o nexttick()

+ Estados de uma thread new Runnable Running Terminated blocked Suspended suspended-blocked

+ Estados de uma thread start() stop() suspend() resume() join() interrupt() sleep() isinterrupted() isalive() isdaemon() setpriority(int) getpriority() setname(string) getname() yield()

+ Ciclo de Vida

+ Escalonamento Mecanismo que determina como os threads irão utilizar tempo de CPU. Somente os threads no estado runnable são escalonados para ser executados. Java permite a atribuição de prioridades para as threads. Threads com menor prioridade são escalonados com menor freqüência.

+ Fonte: Java, Como programar. Deitel, 6ª Edição

+ Constantes de prioridades MAX_PRIORITY MIN_PRIORITY NORM_PRIORITY

+ Exercícios 2 Implemente uma Corrida de Sapos! Crie um Classe sapo que herda de Thread Atributos: distanciapercorrida, distanciapulo... Crie uma Classe Corrida de Sapos Atributos: distanciacorrida, NumSapos

+ Referências www.di.ubi.pt/~operativos/teoricos/capitulo6.ppt http://wiki.sintectus.com/bin/view/grupojava/slidessincronizandoth Sistemas Operacionais Modernos - Andrew S. Tanenbaum