Python Threads e Socket

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais Gerência de Processador
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Processos e Threads Processos.
Profa. Priscila Facciolli
Ir p/ primeira página Cliente/Servidor Modelo usado para construir aplicações Servidor em número de porta conhecido – Aceita requisições e executa serviços.
Comunicação Distribuída
Monitores.
Chapter 4: Threads.
Programação Concorrente
Arquitetura. Transferência de Arquivos – FTP Transferência de arquivos em sistemas remotos Utiliza o protocolo FTP sobre uma conexão TCP Estabelece conexão.
Arquitetura de Sistemas Operacionais
Claudio de Oliveira – Gerência do Processador 09/03/10 20:13 Claudio de Oliveira –
Mobilidade Cláudia Ribeiro.
Obtenção de IP TCP UDP.
Concorrência em Java Threads em Java.
Monitores.
Concorrência em Java Threads em Java.
Unidade 1-1 Processos e Threads
Concorrência em Java Threads em Java.
Aula prática 13 Orientação a Objetos – C++ Parte 1
Programação Avançada Processos, Threads e IPC
Sistemas Operacionais
Gerência de Recursos Processador
Concorrência entre Threads Java
Unidade 2 - Parte 1 Programação Concorrente
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Conteúdo Processos e threads Partes do processo
Comunicação entre Processos - Sockets. Conceitos Básicos Sockets são uma forma de IPC ( InterProcess Communication ) fornecida pela 4.3 BSD que fornecem.
SISTEMAS OPERACIONAIS I
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Computação L1: Infra-Estrutura Básica
Programação com Threads
Escalonamento de Processos e Threads
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Processos.
Troca de Mensagens Programação concorrente
Sistemas Operacionais
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Desenvolvimento de Aplicações TCP/IP com Sockets Márcio de Sousa Dias
Escalonamento de Processos
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Arquitetura de Redes de Computadores – Luiz Paulo Maia Camada de Transporte1 Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Transporte.
Capítulo 4: Processos.
Abr-17 Projetar Processos Projetar distribuição.
Comunicação Cliente-Servidor Linguagem para Internet II Prof. Marcelo da Silveira Siedler SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL.
Programação Distribuída em Java Aula Na aula passada vimos: I/O Streams Filtros Readers and Writers.
Execícios de Revisão Redes de Computadores Edgard Jamhour
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
Métodos e Classes para Sincronização no JDK 5.0 Vitor Hugo Becker
Programação com Threads Threads Java como um Estudo de Caso.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Programação Distribuída em Java Aula Na aula passada vimos Domain Name Server –Funcionamento básico O pacote java.net –Sua finalidade A classe InetAddress.
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Sistemas Operacionais
Sistemas Operacionais Distribuídos
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando.
Projetar Processos. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar distribuição | 2 Descrição do Projeto.
Sistemas Operacionais
Gerência de Memória. Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Aula Prática: Demo de Sistemas Distribuídos
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Curso Superior em Redes de Computadores FTP Prof. Sales Filho.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Python Threads e Socket Marcel Pinheiro Caraciolo Python Aula 06

Threading ... Criando suas Threads... Python Aula 06

Thread - Básico threading - módulo responsável por criar e controlar threads Comunicação facilitada entre nós de um mesmo processo Não precisa troca de contexto Compartilham o tempo de CPU igual ao de um processo Dependendo da tarefa, comportam-se muito melhor que processos. Processamento em paralelo é uma das áreas mais pesquisadas como saída para o limite tecnológico. Python Aula 06

Criando objetos thread Usa-se o módulo threading o qual contem o objeto Thread Pode-se estender o objeto Thread e implementar o método run Python Aula 06

Criando objetos thread Para definir a execução de um método em thread pode-se usar o conceito de uso pythônico. Usa-se diretamente o construtor indicando um target. Basta usar o decorator. Python Aula 06

Mas o que é decorator ?? Decorator é um artifício desenvolvido para surprir algumas dificuldades com relação ao controle de chamada de funções. Podem receber parâmetros. Python Aula 06

Decorator - exemplo http://wiki.python.org/moin/PythonDecoratorLibrary Python Aula 06

Decorator Criação de métodos estáticos staticmethod Python Aula 06

Thread Pythônica Método que roda em background Basta usar o Decorator Python Aula 06

Controlando Threads Eventos são utilizados para controlar e sincronizar Threads. Existem outras estruturas que facilitam o uso de threads como Lock, RLock e Semáforos (Ver documentação !) Python Aula 06

Finalizando objetos thread Não existe nenhum comando que finalize diretamente uma thread. Basta terminar o método run do objeto Thread No caso de execução de alguma função em thread, a execução é finalizada quando a função termina. Para finalizar eficientemente e elegantemente uma thread, usamos objetos Event que respondem rapidamente à thread o que está ocorrendo Python Aula 06

Finalizando objetos thread Python Aula 06

Threads - Filas (Queue) FIFO - First In First Out! Queue é uma classe de listas sincronizadas para comunicar threads. Quando cheia, lança a exceção Full e quando vazia lança a exceção Empty Métodos importantes: Put - injeta dados na fila Get - retira dados da fila Python Aula 06

Threads - Filas (Queue) Python Aula 06

Exercício 01 Python Aula 06

Comunicando Programas... Socket Comunicando Programas... Python Aula 06

Socket Módulo socket Conexão virtual entre processos Um dos mais populares meios de comunicação de processos em rede Segue a idéia da arquitetura cliente-servidor Módulo socket Permite o uso de vários protocolos, os mais usados são: TCP (Transmission Control Protocol) UDP (User Datagram Protocol) Python Aula 06

Socket Básico Cliente Servidor Se conecta a um servidor que aguarda conexões Servidor Libera conexões para serem usadas (bind) Aceita ou rejeita conexões Python Aula 06

Socket Servidor Cria o socket TCP UDP Dá um bind no socket Precisa explicitamente aceitar conexões, o cliente tem que se conectar com o servidor UDP O Cliente não precisa se conectar ao servidor Dá um bind no socket Espera conexões Python Aula 06

Socket Servidor Aceita conexões Servidor UDP Python Aula 06

Socket Servidor Servidor TCP Python Aula 06

Socket Cliente Cria o socket No TCP tem que se conectar ao servidor Cliente UDP Python Aula 06

Socket Cliente Cliente TCP Python Aula 06

Socket Podemos deparar com o problema de alocação de porta durante o desenvolvimento de módulo que usem certas portas NEM TODAS PORTAS ESTÃO LIVRES PARA USO!! Pode-se usar livremente portas acima de 1024 Para podermos usar a mesma porta durante o tempo todo sem problemas, usar a seguinte configuração: Python Aula 06

Exercício 02 Python Aula 06

Exercício 02 DICA Python Aula 06

Logging Python facilita o uso de logs. Existe o módulo chamado logging pronto para o uso! Python Aula 06

Exercício 03 Python Aula 06

Referências Python Aula 06

Python Threads e Socket Marcel Pinheiro Caraciolo Python Aula 06