Conceitos e Implementação de um Sistema Concorrente Orientado a Objeto
|
|
- Gilberto Vilarinho Neto
- 7 Há anos
- Visualizações:
Transcrição
1 Conceitos e Implementação de um Sistema Concorrente Orientado a Objeto Paulo Roberto Gonçalves, Thereza Patrícia P. Padilha Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP) Palmas, TO, Brasil {prg,thereza@ulbra-to.br Resumo. A maioria dos sistemas concorrentes implementados utiliza o paradigma orientado a objeto. Diante disso, este artigo apresenta alguns conceitos da programação de sistemas concorrentes orientados a objetos, bem como descreve a implementação de um ambiente de aprendizado colaborativo usando classes Threads em Java. 1 Introdução Os recentes desenvolvimentos de redes locais de alto desempenho têm despertado grande interesse em sistemas distribuídos, que consistem de diversos computadores que podem operar independentemente, mas interconectados eficientemente. A comunicação em sistemas distribuídos pode ser realizada através da chamada de procedimentos remota (Remote Procedure Call - RPC). A implementação de RPC envolve a transferência de solicitações do cliente para o servidor e dos resultados do servidor para o cliente. A limitação do RPC é a transferência de informações entre dois computadores apenas (cliente e servidor). Diante dessa limitação, surgiu a comunicação em grupo que permite a um usuário enviar uma mensagem para um ou mais membros ao mesmo tempo. Quando um usuário envia uma mensagem para outro usuário a comunicação é chamada de ponto-a-ponto. Quando um usuário envia uma mensagem para vários usuários, a comunicação é chamada de um-paravários [Tanenbaum 1995]. A maioria dos sistemas distribuídos possibilita a existência de múltiplas threads num único processo, sendo neste caso mais conhecido como multithread. Esta habilidade provê alguns benefícios importantes como: a rapidez de resposta para o usuário, o compartilhamento de memória e de outros recursos do processo a qual pertencem e economia com relação à alocação de memória e recursos para a criação de processos. Porém também introduz alguns problemas como: complexidade e a possibilidade de um menor desempenho da máquina, que ocorre quando uma thread que executa freqüentemente, mas realiza poucas tarefas a cada execução [Silberschatz et al. 2000].
2 O objetivo deste trabalho é apresentar os conceitos envolvidos na programação de sistemas concorrentes orientados a objetos, bem como descrever a implementação de um ambiente de aprendizado colaborativo usando as classes Threads em Java. Além do alto grau de recursos oferecidos, a linguagem de programação Java é multiplataforma, permitindo que um mesmo programa possa ser utilizado em máquinas com sistemas operacionais diferentes, garantindo a portabilidade de qualquer aplicação implementada nessa linguagem. Além disso, o Java disponibiliza primitivas de concorrência. Estas foram relevâncias que nos levaram a escolher a linguagem Java. Este artigo está organizado da seguinte forma: na seção 2 é apresentada uma visão geral sobre programação concorrente; na seção 3 são abordados os principais conceitos associados com sistemas contendo threads e multithreads, bem como a sua utilização na linguagem Java; na seção 4 é apresentada, como um estudo de caso, a implementação de um ambiente colaborativo usando classes Threads em Java; e na seção 5 são descritas as considerações finais do trabalho. 2 Programação Concorrente: visão geral Um programa seqüencial é composto por um conjunto de instruções que são executadas seqüencialmente, sendo que a execução dessas instruções é denominada processo. Um programa concorrente especifica dois ou mais programas seqüenciais que podem ser executados concorrentemente como processos paralelos [Santana et al. 1997]. Historicamente, a concorrência foi introduzida nos sistemas de computação como um meio para aumentar a performance. Os primeiros computadores foram máquinas seriais que processavam os dados bit a bit, ou seja, um bit a cada ciclo. Para aumentar o desempenho, os computadores passaram a processar os dados em palavras de diversos bits a cada ciclo. Um novo aumento do desempenho foi obtido ao arranjar as operações de CPU e de entrada e saída em paralelo. Isto imediatamente impulsionou a programação concorrente e o desenvolvimento de mecanismos e sistemas operacionais que suportassem a concorrência e o paralelismo de operações. A programação concorrente pode ser executada em um só processador, explorando o que se chama de pseudoparalelismo, ou em vários processadores, passando a ser chamada de programação paralela, que se caracteriza pela execução de várias tarefas ao mesmo instante. A programação concorrente diferencia-se de programação paralela e distribuída, da seguinte forma: na programação paralela os processos são executados simultaneamente, em um computador com multiprocessadores, que se encarregam dos diversos processos em paralelo, na programação distribuída os processos são executados em vários computadores ligados através de uma rede [Santana et al. 1997]. As linguagens específicas para a programação concorrente apresentam flexibilidade, clareza para ativação e coordenação de processos, ferramentas para depuração e detecção de erros, e alto desempenho. Exemplos dessas linguagens são: Ada e Java.
3 3 Threads e Multithreads em Java Um programa em execução é chamado de processo. Cada processo possui, no mínimo, uma thread, que nada mais é que um fluxo de execução. Os processos também podem ser executados com múltiplas threads, realizando mais de uma tarefa de cada vez (multithread). A figura 1 apresenta a diferença entre um processo de uma única thread e um processo com múltiplas threads [Silberschatz et al. 2000]. Figura 1. Processos com um e múltiplas threads [Silberschatz et al 2000] Um programa multithread é aquele que pode ser descrito como efetuando diversas atividades ao mesmo tempo. Um exemplo de programa multithread seria uma aplicação servidora, pois, tipicamente um servidor atende a vários pedidos de cliente. Utilizar um servidor com uma só thread significa que cada pedido terá que esperar o pedido anterior terminar, isso torna-se lento e ineficiente. Por outro lado, o uso de um servidor multithread atenderia a vários pedidos simultaneamente [Silberschatz et al. 2000]. Em Java, mesmo um programa simples com apenas o método main() é executado como uma thread. Essa linguagem também oferece diversos comandos para a criação e a manipulação de classes do tipo Threads. A maneira mais simples de se declarar uma classe Thread é criar uma subclasse derivada da classe Thread. Nessa nova classe também é preciso gerar um método run(), que vai ser executado quando a thread for instanciada. A criação de uma classe thread e o seu método run() podem ser observados na figura 2, sendo que esta apresenta um programa que instancia duas threads que serão executadas concorrentemente, sem especificar a ordem de execução dessas threads.
4 class testethread extends Thread { private String nome; public testethread (String str){ nome = str; public void run(){ system.out.println( Começar ); system.out.println( Em execução - + nome); sleep(1); system.out.println(nome + - Terminou ); public static void main(string args[]) { testethread um = new testethread( Thread 1 ); testethread dois = new testethread( Thread 2 ); um.start(); dois.start(); Figura 2: Criação de uma classe Thread em Java Uma classe em Java pode herdar métodos e atributos de apenas uma outra classe (herança simples), sendo que não é permitida a herança múltipla. Essa limitação pode ser resolvida com a utilização da interface Runnable, que é semelhante a uma classe abstrata, ou seja, uma classe que não permite instanciar objetos. Nesse caso é preciso implementar e não herdar, sendo que uma classe pode implementar várias interfaces. Um exemplo de criação de threads por meio da interface Runnable pode ser observado na figura 3. Enfim, as formas possíveis de se criar classes threads em Java são: a partir da classe Thread (extends Threads, figura 2) e implementando a interface Runnable (implements Runnable, figura 3).
5 class testethread implements Runnable { private String nome; public testethread (String str){ nome = str; public void run(){ system.out.println( Começar ); system.out.println( Em execução - + nome); sleep(1); system.out.println(nome + - Terminou ); public static void main(string args[]) { testethread um = new testethread( Thread 1 ); testethread dois = new testethread( Thread 2 ); new Thread(um).start(); new Thread(dois).start(); Figura 3: Criação de thread por meio da interface Runnable Uma thread pode estar em um dos quatro estados possíveis, que são: - novo: quando um objeto thread é criado; - executando: quando uma thread está em execução; - bloqueado: quando uma thread fica bloqueada esperando a resposta de algum método, como sleep() ou suspend(), ou quando executa uma operação de I/O a qual é bloqueante; - terminado: quando uma thread termina seu método run() ou quando o método stop() é chamado. Na figura 4 são apresentados os estados possíveis de uma thread, bem como os métodos que provocam a transição de estados. Apresenta também o trajeto que uma determinada thread pode seguir, por exemplo, uma thread só pode ser bloqueada quando estiver executando.
6 Figura 4: Estados de uma thread Java [Silberschatz et al 2000] A linguagem Java fornece vários métodos para o controle dos estados de uma thread, são eles: start(), suspend(), sleep(), resume() e stop(). O método start() inicia a execução de uma thread. O método suspend() suspende a execução de uma thread que estiver processando no momento. O método sleep() suspende a thread em execução durante um determinado período. O método resume() retorna a execução de uma thread que tinha sido suspensa. Por fim, o método stop() interrompe a execução de uma thread. Após ser interrompida, uma thread não poderá ser retomada ou iniciada. Na linguagem Java, toda linha de execução tem uma certa prioridade, que varia entre 1 e 10. Por definição, uma linha de execução herda a prioridade da sua linha de execução progenitora. É possível aumentar ou diminuir a prioridade de qualquer linha de execução por meio do método setpriority(). Quando, o scheduler (conjunto de políticas e de mecanismos incorporados no sistema operacional que determinam a ordem em que as threads executam) selecionar uma nova linha de execução, geralmente a que possui a maior prioridade é escolhida [Horstman & Cornell 2001]. Em geral, as prioridades das threads são alteradas apenas quando existe uma grande necessidade de um fluxo terminar uma execução antes dos demais. Existe concorrência num programa Java quando há mais do que uma thread ativa. Na execução de múltiplos threads, quando uma thread está em execução, as outras estão bloqueadas ou aguardando a liberação do processador. 4 Um Estudo de Caso O ambiente de aprendizado colaborativo via Internet, que está sendo desenvolvido, agrega várias ferramentas de comunicação, que são: editor de edição colaborativa, votação e chat. A implementação deste ambiente utiliza a linguagem Java pelo fato desta possuir uma alta portabilidade, bem como facilidade de suporte à distribuição e concorrência. Em termos de implementação, cada ferramenta foi considerada como uma aplicação separada, mas com o objetivo de propiciar a colaboração como um todo. Cada ferramenta possui um servidor que aguarda as solicitações de clientes, sendo que cada conexão de cliente é transformada em uma thread, tornando-se assim uma aplicação multithread. Na figura 5 é apresentado um trecho de código da criação das threads clientes.
7 public class MultiServerThread extends Thread { private Socket connection; ObjectInputStream input; MultiServerThread(Socket conn) { connection = conn; public void run() { try { Vector vcliente; Vector vservidor = new Vector(); ObjectInputStream input; Input = new ObjectInputStream (connection.getinputstream()); vcliente = (Vector)input.readObject(); vservidor.addelement(vcliente.elementat(0)); vservidor.addelement(vcliente.elementat(1)); vservidor.addelement( new ObjectOutputStream (connection.getoutputstream())); Figura 5: Trecho de código de criação de threads clientes Esse trecho mostra como foi criada a classe MultiServerThread, que herda os atributos e métodos da classe Thread e recebe um objeto do tipo socket para conexão. Vale ressaltar que todas as threads criadas possuem a prioridade padrão, isto é, o valor 5. É implementado também o método run(), o qual será executado quando o objeto dessa classe for instanciado. Esse método possui alguns procedimentos adotados para a implementação da conexão com o servidor e do envio de informações. Como recurso de rede e de comunicação distribuída, foram utilizados sockets, que atuam como uma espécie de ponte que é estabelecida entre os dois processos. Uma vez criada essa ponte, os programas conseguem transmitir e receber informações. Esse modelo de comunicação segue a arquitetura cliente/servidor, na qual existe uma entidade (servidor) que disponibiliza um serviço e uma outra entidade que utiliza este serviço (cliente). No servidor, existe um repositório contendo pastas e arquivos dos usuários do ambiente, nos quais são compartilhados pelas threads. Alguns fatores importantes do compartilhamento são a consistência e a segurança das informações, uma vez que várias threads podem estar trabalhando juntamente.
8 5 Considerações Finais Este artigo apresentou alguns conceitos e a implementação de um sistema concorrente orientado a objeto. Pode-se observar que o uso de threads para a implementação torna a aplicação bem mais eficiente e mais rápida, pelo fato de existirem várias threads trabalhando em paralelo. Pode-se concluir a eficiência da linguagem Java para aplicações voltadas à confecção de ambientes de aprendizado colaborativo, por fornecer recursos que permitam a implementação de técnicas de colaboração. Outro aspecto positivo de uma aplicação construída em Java é o fato da mesma ser orientada a objetos, que proporciona benefícios como: a extensibilidade, reusabilidade, manutenção, entre outros. Além disso, pode-se verificar o poder da linguagem Java para os recursos de sockets (cliente/servidor), construção de múltiplas linhas de execução concorrência (threads) e acesso à banco de dados, devido já existirem várias classes e construtores implementados, o que acelera e facilita a implementação. Uma grande parte do uso da linguagem Java em aplicações concorrentes deve-se ao suporte para threads no nível da linguagem. Todos os programas Java consistem em pelo menos uma thread de controle, sendo fácil criar várias threads de controle no mesmo programa. Além de fornecer um conjunto de APIs para a criação e o gerenciamento de threads. A implementação das ferramentas do ambiente colaborativo usando as classes Threads separadas tem sido satisfatória com o intuito de torná-la mais robusta. Um dos problemas encontrados foi a comunicação dos processos, mais precisamente envio e recebimento de informações do servidor para as threads clientes. Este trabalho também serviu para consolidar e aprimorar os conceitos de programação concorrente vistos. Referências Bibliográficas [Arnold & Gosling 1997] Arnold, K., Gosling, J. Programando em Java, Tradução: Adriana de Almeida Prado Krauss, São Paulo: Makron Books, [Deitel & Deitel 2001] DEITEL, H. M.; DEITEL, P. J. Java como programar, Tradução: Edson Furnankiewicz, Porto Alegre: Bookman, [Horstman & Cornell 2001] Horstman C. S.; Cornell, G. CoreJava 2 Recursos Avançados. Tradução: João Eduardo N. Tortello Revisão Técnica: Álvaro R. Antunes. São Paulo: MAKRON Books, Vol. II, [Santana et al. 1997] Santana, R. H.; Santana, M. J.; Souza, M. A.; Souza, P. S. L.; Piekarski, A. E. T. Computação Paralela. Notas de Aula (no prelo), ICMC-USP, [Silberschatz et al. 2000] Silberschatz, A., Galin, P. and Gagne, G. Sistemas Operacionais: conceitos e aplicações, Tradução: Adriana Rieche, Rio de Janeiro: Campus, 2000.
9 [Tanenbaum 1995] Tanenbaum, A. S. Distributed operating Systems, New Jersey: Prentice-Hall, 1995.
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads Com o conceito de múltiplos threads (multithread) é possível
Leia mais1.1. Definição do Problema
13 1 Introdução Uma das principais preocupações de área de engenharia de software diz respeito à reutilização [1]. Isso porque a reutilização no contexto de desenvolvimetno de software pode contribuir
Leia maisProporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;
Módulo 7 UML Na disciplina de Estrutura de Sistemas de Informação, fizemos uma rápida passagem sobre a UML onde falamos da sua importância na modelagem dos sistemas de informação. Neste capítulo, nos aprofundaremos
Leia maisSistema Operacional. Implementação de Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais
Sistema Operacional Implementação de Processo e Threads O mecanismo básico para a criação de processos no UNIX é a chamada de sistema Fork(). A Figura a seguir ilustra como que o processo e implementado.
Leia maisNum programa em JAVA é possível definir diferentes sequências de execução independente: Threads.
Threads Folha 5-1 Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Uma Thread é similar a um processo no sentido em que corresponde a um conjunto de instruções
Leia maisDocumento de Requisitos do Sistema SISFOTO Sistema de gerenciamento de eventos fotográficos Versão 1.0
SISFOTO Sistema de Gerenciamento de Eventos Fotográficos do Sistema SISFOTO Sistema de gerenciamento de eventos fotográficos Versão 1.0 Histórico de Alterações Data Versão Descrição Autor 17/10/2014 1.0
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Programação Orientada a objetos Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do
Leia maisSistemas Operacionais I Parte VI Threads
Sistemas Operacionais I Parte VI Threads Roteiro Introdução Benefícios Ciclo de Vida Estados Modelos Multithreading Modelo Muitos para Um Modelo Um para Um Modelo Muitos para Muitos Sistemas com Threads
Leia maisSistemas de Objetos DistribuídosRevisão Java e Java ORBs p.1/26
Sistemas de Objetos Distribuídos Revisão Java e Java ORBs Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosRevisão Java e
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 9 Threads Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Threads Uma thread
Leia maisThreads. O que é uma Thread? Paralelismo
Threads em Java 1 O que é uma Thread? Paralelismo Threads Multi- threading é o mecanismo de concorrência suportado explicitamente pela linguagem Java. Os mecanismos de gerenciamento e sincronização de
Leia maisFaculdade Integrada do Ceará FIC Graduação em Redes de Computadores
Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 5 Comunicação em Sistemas Distribuídos Sumário Comunicação
Leia maisExecução concorrente em Java: threads. O que são Threads? Criação e métodos de Threads Sincronização Comunicação entre Threads
Execução concorrente em Java: threads O que são Threads? Criação e métodos de Threads Sincronização Comunicação entre Threads Programação concorrente: introdução O mundo real funciona concorrentemente:
Leia maisProf a Andréa Schwertner Charão DELC/CT/UFSM
Modelos de Computadores Paralelos Prof a Andréa Schwertner Charão DELC/CT/UFSM Sumário Modelos de computadores paralelos Classificações "acadêmicas" Tendências de mercado TOP500 Impacto na programação
Leia maisSistemas Distribuídos Capítulo 4 - Aula 5
Sistemas Distribuídos Capítulo 4 - Aula 5 Aula Passada Clusters de Servidores Migração de Código Comunicação (Cap. 4) Aula de hoje Chamada de Procedimento Remoto - RPC Fundamentos 1 Chamada de Procedimento
Leia maisProgramação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos
Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.
Leia maisBANCO DE DADOS. Professor: André Dutton
BANCO DE DADOS Professor: André Dutton BASES TECNOLÓGICAS Conceito de bases de dados. Modelos conceituais de informações. Modelos de dados: relacional, de redes e hierárquicos. Introdução à teoria relacional:
Leia mais- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula E-mail: fernandohs@ifsp.edu.br
Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula E-mail: fernandohs@ifsp.edu.br Sistemas de Arquivos- Parte 2 Pontos importantes de um sistema de arquivos Vários problemas importantes devem
Leia maisProgramação Orientada a Objetos. Professor Leonardo Cabral - Larback
Programação Orientada a Objetos Professor Leonardo Cabral - Larback Programação Orientada a Objetos O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay (http://pt.wikipedia.org/wiki/alan_kay),
Leia maisEntrada e Saída Transmissão Serial e Paralela
Infra-Estrutura de Hardware Entrada e Saída Transmissão Serial e Paralela Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Introdução Transmissões Serial (síncrona e assíncrona) e Paralela
Leia maisIntrodução à Ciência da Informação
Introdução à Ciência da Informação Prof. Edberto Ferneda Software 1 Software Níveis de Software Hardware Software Aplicativos Software Tipos de Software Softwares Aplicativos de Sistema (Utilitários) Finalidades
Leia maisOrientação a Objetos
Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No
Leia maisAlgoritmos e Programação II
Algoritmos e Programação II Agenda Desenvolver Software Objetos Classes Estudo de algumas Classes da API Estudo de algumas Classes da API Pacotes Criando nossa primeira classe Desenvolver SOFTWARE GAP
Leia maisUtilização de threads em Java
Universidade Federal do Rio de Janeiro IM/DCC Utilização de threads em Java Prof. Austeclynio Pereira e-mail: austeclyniop@posgrad.nce.ufrj.br Ciclo de vida de uma thread nascimento start notify notifyall
Leia maisIntrodução a Banco de Dados. INTRODUÇÃO
INTRODUÇÃO O termo banco de dados é bastante popular em diversas áreas de atuação. Com o aumento da utilização de computadores na manipulação de dados que envolvem diversas aplicações, os bancos de dados
Leia maisINTEGRAÇÃO JAVA COM ARDUINO
INTEGRAÇÃO JAVA COM ARDUINO Alessandro A. M. De Oliveira 3, Alexandre O. Zamberlan 3, Reiner F Perozzo 3, Rafael O. Gomes 1 ;Sergio R. H Righi 2,PecilcesP. Feltrin 2 RESUMO A integração de Linguagem de
Leia mais5 - Qual é a principal vantagem de desenvolvimento de código por pares:
1 - Quais são os atributos essenciais de um bom software: a) Ser baseado numa boa linguagem de programação b) Fácil manutenção, segurança, eficiência e aceitabilidade c) Fácil manutenção e simplicidade
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Herança Prof. Francisco de Assis S. Santos, Dr. São José, 2014. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos Novas classes
Leia maisMontadores e Compiladores
Montadores e Compiladores Prof. Idevar Gonçalves de Souza Júnior Conteúdo Programático Resumido Revisão da Arquitetura de Computadores Introdução a Teoria das Linguagens Compilação e Interpretação Análise
Leia maisPadrões de Projeto. Factory Method
Padrões de Projeto Padrões de Criação Factory Method Prof. Eduardo N F Zagari Prof. Ivan Granja Factory Method Também conhecido como Construtor Virtual Em muitas aplicações OO, um objeto cliente precisa
Leia maisHerança. Prof. Leonardo Barreto Campos 1
Herança Prof. Leonardo Barreto Campos 1 Sumário Introdução; Herança Simples; Tipos de Herança; Classe Abstrata; Conversão de Tipos entre Base e Derivada; Níveis de Herança; Herança Múltipla; Bibliografia;
Leia maisArquitetura de Computadores Sistemas Operacionais I
O que é um Sistema Operacional? Arquitetura de Computadores Sistemas Operacionais I Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4 componentes
Leia maisMúltiplas Linhas de Execução Java (Threads)
Múltiplas Linhas de Execução Java (Threads) SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas
Leia maisIntrodução aos Sistemas Operacionais
Introdução aos Sistemas Operacionais Prof. M.e Helber Wagner da Silva helber.silva@ifrn.edu.br Maio de 2014 Roteiro Introdução Estrutura e Funções do Sistema Operacional Sistemas Operacionais existentes
Leia maisPassagens de Mensagens
Passagens de Mensagens Felipe A. Cavani Caio Scaramucci Orientador: Prof. Norian Marranghello 11/04/2002 1 Sumário 1 Introdução 2 2 Primitivas básicas de comunicação 2 2.1 Serviço de transporte.......................
Leia maisMotivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente
Viabilização da Análise de Interação em um Software Colaborativo para Modelagem de Objetos 3D Eduardo Barrére, Ana Luiza Dias e Claudio Esperança Motivação Este trabalho apresenta o desenvolvimento do
Leia maisProcesso de Desenvolvimento de Software
Processo de Desenvolvimento de Software Programação Orientada a Objetos Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Processo de Desenvolvimento de Software O desenvolvimento de software é uma
Leia maisFundamentos de Arquitetura e Organização de Computadores
Fundamentos de Arquitetura e Organização de Computadores Dois conceitos fundamentais no estudo dos sistemas de computação são o de Arquitetura e Organização de computadores. O termo arquitetura refere-se
Leia maisProgramação em JAVA. Subtítulo
Programação em JAVA Subtítulo Sobre a APTECH A Aptech é uma instituição global, modelo em capacitação profissional, que dispõe de diversos cursos com objetivo de preparar seus alunos para carreiras em
Leia maisNORMA TÉCNICA E PROCEDIMENTOS PARA REALIZAR ALTERAÇÕES NO BANCO DE DADOS CORPORATIVO
NORMA TÉCNICA E PROCEDIMENTOS PARA REALIZAR ALTERAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.03.01 http://www.unesp.br/ai/pdf/nt-ai.04.03.01.pdf Data: 31/07/2000 STATUS: EM VIGOR A Assessoria
Leia mais3 Informações para Coordenação da Execução de Testes
Informações para Coordenação da Execução de Testes 32 3 Informações para Coordenação da Execução de Testes Diversas ferramentas oferecidas na literatura têm auxiliado na coordenação da execução dos testes
Leia maisIntrodução à Ciência da Computação
1 Universidade Federal Fluminense Campus de Rio das Ostras Curso de Ciência da Computação Introdução à Ciência da Computação Professor: Leandro Soares de Sousa e-mail: leandro.uff.puro@gmail.com site:
Leia maisSIG. USANDO A TECNOLOGIA COMO SUPORTE Tecnologias de Apoio
SIG USANDO A TECNOLOGIA COMO SUPORTE Tecnologias de Apoio Os Sistemas de Informações e os Sistemas de Informações Gerenciais (SIG) podem ser manuais e eletrônicos. I parte SIGs eletrônicos Tecnologias
Leia maisRelatório Técnico: Descrição do algoritmo para pesquisa automática dos egressos do curso de Ciência da Computação
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Ciências da Computação Laboratório de Engenharia de Software Relatório Técnico: Descrição do algoritmo
Leia maisEMENTA. Curso de Projetos Microcontrolados utilizando Linguagem C.
EMENTA Curso de Projetos Microcontrolados utilizando Linguagem C. Descrição dos Cursos A Hit Soluções Tecnológicas vem através deste documento apresentar a proposta de dois cursos de projetos baseados
Leia maisUtilizando Threads em Java
Utilizando Threads em Java CCComp - DCE - UESB Resumo sobre os threads em Java Estrutura Geral das Implementações CCComp - DCE - UESB class ProcessoA extends Thread {... }//fim da classe ProcessoA class
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Interconexão do Computador Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Material do prof. Sílvio Fernandes -
Leia maisESTUDO COMPARATIVO ENTRE A FERRAMENTA SMS- (SUPERVISOR MONITOR SCHEDULER) E A FERRAMENTA ECFLOW (FERRAMENTA DE WORK- FLOW) NA OPERAÇÃO DO CPTEC
ESTUDO COMPARATIVO ENTRE A FERRAMENTA SMS- (SUPERVISOR MONITOR SCHEDULER) E A FERRAMENTA ECFLOW (FERRAMENTA DE WORK- FLOW) NA OPERAÇÃO DO CPTEC RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE)
Leia maisOpenPDV: Sistema aberto para gerenciamento de restaurantes
Universidade Federal de Santa Catarina Departamento de Informática e Estatística INE5638 Introdução a Projetos Orientador: José Eduardo de Lucca OpenPDV: Sistema aberto para gerenciamento de restaurantes
Leia maisInterface gráfica em Java: Swing e SWT
Programação Orientada a Objetos Interface gráfica em Java: Swing e SWT UNIFEI 14/06/2012 Componentes gráficos em Java Os componentes gráficos em Java Componentes de desenho 2D e 3D Componentes de interface
Leia maisElementos básico de uma rede Samba - Local Master Browser
Servidor Samba Linux Samba é o protocolo responsável pela integração de máquinas Linux com Windows, permitindo assim a criação de redes mistas utilizando servidores Linux e clientes Windows. Samba, é uma
Leia maisIntrodução. Hardware (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação. joseana@computacao.ufcg.edu.
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação Hardware (Parte III) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br Carga
Leia maisProgramando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD
Leia maisProdução de Vídeos Didáticos: Tábua de Galton
UNICAMP - Universidade Estadual de Campinas; IFGW Instituto de Física Gleb Watagin; Relatório Final de F 809, Instrumentação para ensino: Produção de Vídeos Didáticos: Tábua de Galton André de Ávila Acquaviva,
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETO INTRODUÇÃO
PROGRAMAÇÃO ORIENTADA A OBJETO INTRODUÇÃO A Programação Orientada ao Objeto deu seus primeiros passos ainda na década de 70. A sua origem vem da linguagem Simula (Simula Language) e como o nome indica
Leia maisMULTITHREADING. Prof.: Michele Nasu Tomiyama Bucci
MULTITHREADING Prof.: Michele Nasu Tomiyama Bucci Introdução O corpo humano realiza uma grande variedade de operações paralelamente, ou concorrentemente. Os computadores também realiza operações concorrentemente.
Leia maisUNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação Processamento Paralelo Threads Aluno: Wagner Palacio Turma: 3º período Professor: Giordano Cabral Recife, 29 de maio de 2012
Leia maisHouseManager - Projeto de Automação Residencial
HouseManager - Projeto de Automação Residencial Rodrigo de Moraes UNISINOS Universidade do Vale dos Sinos Av. Unisinos, 950, São Leopoldo, RS, Brasil digao@sinos.net Resumo Neste artigo será apresentada
Leia maisProgramação de Computadores I. Linguagem C Função
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia maisTipos de Software e Ambientes de Processamento
Universidade São Judas Tadeu Prof. André Luis Ribeiro Prof. Jorge Luis Pirolla Introdução à Computação Tipos de Software e Ambientes de Processamento Tópicos Formas de Processamento de Dados Sistema de
Leia maisProgramação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 10 Threads Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno
Leia maisFUNDAMENTOS DE SISTEMAS OPERACIONAIS MÓDULO 4
FUNDAMENTOS DE SISTEMAS OPERACIONAIS MÓDULO 4 Índice 1. Evolução dos Sistemas Operacionais Continuação...3 1.1. Década de 70... 3 1.2. Década de 80... 4 2 1. EVOLUÇÃO DOS SISTEMAS OPERACIONAIS CONTINUAÇÃO
Leia maisUNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO REDE DE COMPUTADORES II Prof. Dr. Adenauer C.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO REDE DE COMPUTADORES II Prof. Dr. Adenauer C. Yamin MRTG Bruno Andretti Duarte¹
Leia maisLINHAS MESTRAS; FASES; DISCIPLINAS; PRINCÍPIOS E MELHORES PRÁTICAS.
INTRODUÇÃO O processo de engenharia de software define quem faz o quê, quando e como para atingir um determinado objetivo. Neste trabalho, iremos dissertar sobre o Rational Unified Process, ou RUP, que
Leia maisApostila de GSO Gestão de Sistemas Operacionais I
Apostila de GSO Gestão de Operacionais I Prof. Jones Artur Gonçalves / Wendell Santos 1 Arquitetura de Operacionais 1. Histórico... 3 2. Sistema Operacional... 4 3. Tipos de Operacionais... 5 2.1 Monoprogramáveis...
Leia maisEstudo de Viabilidade
UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA Estudo de Viabilidade Sistema de Otimização da Análise de Laudos RECIFE, 20 DE JANEIRO DE 2013 UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA
Leia maisGuia para Modelagem de Casos de Uso Metodologia CELEPAR
Guia para Modelagem de Casos de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiamodelagemcasosuso.odt Número de páginas: 14 Versão Data Mudanças Autor 1.0 25/04/07
Leia maisArquitetura TCP/IP. Apresentado por: Ricardo Quintão
Arquitetura TCP/IP Apresentado por: Ricardo Quintão Roteiro Conexões Inter-redes Serviço Universal Rede Virtual (inter-rede ou internet) Protocolos para ligação inter-redes (TCP/IP) Divisão em camadas
Leia maisTUTORIAL SOBRE O GOOGLE DOCS
TUTORIAL SOBRE O GOOGLE DOCS O Google Docs é um recurso do Google que funciona como um HD virtual permitindo criar e compartilhar trabalhos on-line. Ele é uma ferramenta com características da nova tendência
Leia maisImplementação de uma Ferramenta de Edição de Texto Colaborativa
Implementação de uma Ferramenta de Edição de Texto Colaborativa Paulo Roberto Gonçalves, Thereza Patrícia P. Padilha Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP) Palmas,
Leia maisUTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB
UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB Viviani Priscila Piloni VILHEGAS 1 RESUMO: Este trabalho procura mostrar a importância da utilização de um modelo
Leia maisNº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO
ANO: 10.º Curso Profissional Técnico de Informática de Gestão Disciplina: Linguagens de Programação ANO LECTIVO: 2008/2009 p.1/13 Módulo 1 Algoritmia 1 - Introdução à Lógica de Programação Lógica Sequência
Leia maisT écnicas de Obtenção de Requisitos
T écnicas de Obtenção de Requisitos Profa. Rosângela Penteado DC UFSCar rosangel@dc.ufscar.br 1 Roteiro Obtenção de Requisitos T écnicas de levantamento de requisitos Entrevistas Questionários Casos de
Leia maisGuia de desenvolvimento de um aplicativo para o sistema operacional Android
Guia de desenvolvimento de um aplicativo para o sistema operacional Android Introdução Este documento será voltado para o desenvolvimento de um aplicativo na plataforma Android (sistema operacional do
Leia maisINE 5323 Banco de Dados I
UFSC-CTC-INE Curso de Ciências de Computação INE 5323 Banco de Dados I Ronaldo S. Mello 2006/1 http://www.inf.ufsc.br/~ronaldo/ine5323 Horário Atendimento: Quintas-feiras, das 17h30 às 19h Programa da
Leia maisComputadores. Redes de. redes de computadores. Exemplo: Grécia antiga. O problema básico de. Antonio Alfredo Ferreira Loureiro. Exemplo: Grécia antiga
Redes de Computadores Antonio Alfredo Ferreira Loureiro Departamento de Ciência da Computação Universidade Federal de Minas Gerais Exemplo: Grécia antiga Peça Agamemnon, escrita por Aeschylus em 458 A.C.,
Leia maisO SOFTWARE LIVRE COMO FERRAMENTA DE ENSINO
1 O SOFTWARE LIVRE COMO FERRAMENTA DE ENSINO Denise Ester Fonseca de Brito Jefferson Willian Gouveia Monteiro Mariana Vieira Siqueira de Arantes Mateus Palhares Cordeiro Paulo Alfredo Frota Rezeck Thiago
Leia maisMaratona de Programação - Dicas Para Iniciantes
Sumário Maratona de Programação - Dicas Para Iniciantes Prof. Josué Pereira de Castro Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Informática Cascavel, 2009 Sumário Sumário 1 Conceitos
Leia maisTipos de Banco de Dados - Apresentação
Tipos de Banco de Dados - Apresentação Assunto: Tipo de Banco de Dados Professor: Altair Martins de Souza Disciplina: Banco de Dados Colégio Padre Carmelo Perrone 2 Ano - 2015 Tipos de Banco de Dados -
Leia maisRequisitos de Software
Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Descrever requisitos funcionais e não funcionais Explicar como os requisitos de software podem
Leia maisJava RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
Leia maisConfigurando o Network Address Translation: Introdução
Configurando o Network Address Translation: Introdução Índice Introdução Pré-requisitos Requisitos Componentes Usados Convenções Etapas de Início Rápido para Configurar e Implementar o NAT Definindo Interfaces
Leia maisLinguagens de Programação:
Capítulo I : Noções Gerais 11 Linguagens de Programação: Como comunicar com o computador? Linguagem Máquina: Conjunto básico de instruções, em código binário, características de cada computador, correspondentes
Leia maisGabriel de Oliveira Ramos Roland Teodorowitsch - Orientador
THREADS EM JAVA Gabriel de Oliveira Ramos Roland Teodorowitsch - Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência da Computação Campus
Leia maisThreads. Leonardo Gresta Paulino Murta
Threads Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aula de hoje Estudaremos a execução em paralelo de programas em Java por meio de Threads Leonardo Murta Threads 2 Por que usar Threads? Threads
Leia maisProgramação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Leia maisANÁLISE DE FALHAS DE COMPUTADORES
UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS EXATAS DANIELE APARECIDA DE OLIVEIRA VERANICE POLATO ANÁLISE DE FALHAS DE COMPUTADORES LINHA DE PESQUISA: Projeto de Pesquisa apresentado à disciplina de
Leia maisIntrodução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.
Introdução Software Básico Aula 3 Prof. Dr. Rogério Vargas http://rogerio.in Provocação Você já se perguntou como é que os programas que você escreve são traduzidos em instruções executáveis pelas estruturas
Leia maisMANUAL SERVIÇOS E AGENDAMENTO
MANUAL SERVIÇOS E AGENDAMENTO Versão 1.0 Novembro 2013 ÍNDICE 1 SERVIÇOS NO AUTOSYSTEM...3 2 CRIAR SERVIÇO E AGENDAR TAREFA...3 2.1 Criar Serviço e Agendar Tarefas no Ubuntu-LINUX...4 2.1.1 Como Usar o
Leia maisRede Local - Administração Gestão de Objetos da Rede: Active Directory
Rede Local - Administração Gestão de Objetos da Rede: Active Directory Formador: Miguel Neto (migasn@gmailcom) Covilhã - Novembro 10, 2015 Internet VS Intranet Miguel Neto Rede Local - Administração Novembro
Leia maisUSANDO O PYTHON PARA ESCREVER PLUG-INS PARA O GIMP
QUINTO RELATÓRIO DE ESTUDOS 01 DE FEVEREIRO DE 2012 Aluno: Francisco Gerson Amorim de Meneses Orientadores: Helena C. G. Leitão / Marcos Lage Tema sugerido: Comparação de Técnicas para Segmentação de Imagens
Leia maisSIMULADO A - COBIT 5 PORTUGUES
SIMULADO A - COBIT 5 PORTUGUES 1. Que atributo está associado a um processo já estabelecido? a. Definição do Processo b. Medida do Processo c. Otimização do Processo d. Gerenciamento de Desempenho 2. Que
Leia maisGerenciamento de Memória Minix 3.1.7
Gerenciamento de Memória Minix 3.1.7 Prof. Alexandre Beletti Introdução Não utiliza paginação Não faz swapping (está disponível, mas inativo) PM = gerencia processos e memória Chamadas de sistemas: Memória
Leia mais6 CONCEPÇÃO BÁSICA DO SISTEMA DE APOIO À DECISÃO
78 6 CONCEPÇÃO BÁSICA DO SISTEMA DE APOIO À DECISÃO Neste capítulo serão apresentados: o sistema proposto, o procedimento de solução para utilização do sistema e a interface gráfica, onde é ilustrada a
Leia maisMANUAL DO SISTEMA TRT-5 PRESTADOR MÉDICO
Tribunal Regional do Trabalho 5ª Região MANUAL DO SISTEMA TRT-5 PRESTADOR MÉDICO Manual do Sistema TRT5-Saúde para Prestador Médico Baseado no modelo fornecido pelo TST-SAÙDE Versão 1.0 7/outubro/2014
Leia mais[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.
Cap. IV - Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and
Leia mais