Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Documentos relacionados
SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

Processos em Sistemas Distribuídos e Comunicação entre Processos

Sistemas Distribuídos

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Sistemas Distribuídos Capítulo 3 - Aula 3

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

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

Sistemas Operacionais

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Processos ca 3 pítulo

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Operacionais

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Computadores e Programação (DCC/UFRJ)

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Processos em Sistemas Distribuídos: Comunicação entre Processos, Nomeação e Sincronização

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Barramento. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Fundamentos de Sistemas Operacionais

Arquitetura de Computadores. Processamento Paralelo

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Figura 01 Programa e Processo

Arquitetura e organização de computadores

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Organização e Arquitetura de Computadores I

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Sistemas de Informação. Sistemas Operacionais

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.

Estruturas de Sistemas Operacionais

Processos Concorrentes

SISTEMAS OPERACIONAIS

Fundamentos de Sistemas Operacionais

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Fundamentos de Sistemas Operacionais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Caracterização de Sistemas Distribuídos

Sistemas Operacionais

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Introdução aos Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Introdução a Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Sistemas Multiprogramáveis/Multitarefa

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

Sistemas Operacionais

Organização e Arquitetura de Computadores INTRODUÇÃO

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

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

LINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Programação Concorrente

Capítulo 2 Processos e Threads

Programação Paralela e Distribuída

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Sistemas Operacionais. Conceito de Processos

Parte I Multiprocessamento

Soluções em tecnologia da informação que viabilizam implementar uma arquitetura computacional escalável, sólida e confiável em nuvem distribuída.

Transcrição:

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar os processadores virtuais o sistema operacional tem uma tabela de processos que contem entradas para armazenar valores de registradores de CPU, mapas de memoria, arquivos abertos, etc

Papel do Sistema Operacional É responsável por assegurar que processos independentes não afetem (modos intencional, malicioso ou acidental) o comportamento dos outros processos sendo executados. Transparência no compartilhamento da mesma CPU e outros recursos de hardware.

Transparência implica em custo Criação de espaço de endereços completamente independente. Chavear a CPU entre dois processos Salvar o contexto da CPU Troca de informacoes entre disco e memoria principal

Sistemas tradicionais Cada processo possui o seu próprio espaço de endereçamento e um único fluxo de execução

Problemas relacionados a um único fluxo. Um servidor de arquivos deve esperar por requisições feitas ao disco. O fluxo de execução que fez a requisição é bloqueado e espera a aguarda a resposta

Vários Fluxos de Execução Se o servidor de arquivos e implementado usando diferentes fluxos de execução, outras requisições de clientes podem ser processadas, enquanto o primeiro fluxo aguarda a resposta do disco.

Threads Cada um dos fluxos de execução de um processo é chamado de thread Threads podem ser vistas como mini-processos Cada thread executa sua própria porção de código Threads compartilham a CPU do mesmo modo que diferentes processos (timesharing)

Threads em sistemas não distribuídos Threads que fazem parte de um mesmo processo não são independentes como o caso de diferentes processos. TODOS threads em um mesmo processo possuem mesma região de memoria, compartilhando as mesmas variáveis globais. Um determinado thread pode ler, escrever ou mudar a pilha de dados de um outro thread. Protecao deve ser feita pela 'aplicacao'

Estados das Threads Threads podem estar em diferentes estados: executando bloqueado pronto finalizado

Principais Vantagens: Explorar paralelismo ao executar um programa em um sistema multiprocessador. Cada thread e designado a uma CPU, enquanto dados compartilhados são armazenados em memoria compartilhada.

Threads em Sistemas Distribuídos Threads são particularmente atraentes para utilização em sistemas distribuídos Facilitam muito expressar comunicação na forma de manter múltiplas conexões logicas ao mesmo tempo.

Threads em Sistemas Distribuídos Sistemas distribuídos que operam em redes de longa distancia Escondem longos tempos de propagação de mensagens entre processos. Uma maneira de ocultar latências de comunicação é iniciar a comunicação e imediatamente prosseguir com outra atividade.

Clientes Multithreads Browsers Web Documento Web consiste em: texto, imagens, icones, etc. A cada elemento, browser estabelece uma conexao TCP/IP, para ler os dados e passar ao monitor do usuário Operações bloqueadoras: estabelecimento da conexão, leitura de dados. Browsers começam a exibir dados enquanto a medida em que novas informações chegam.

Clientes Multithreads Browsers Web Caso o servidor esteja em sobrecarga, ter um cliente multithread possibilita estabelecer conexões com diferentes servidores, permitindo transmissão dos dados em paralelo

Servidores Multithreads Exemplo servidor de arquivos. Servidor de arquivos normalmente espera pela entrada de uma requisição para uma operação de arquivo e, na sequencia, executa a requisição e então devolve a resposta. Problemas: Estados de bloqueio. Como aumentar o desempenho?

Funcionamento de servidores multithreads: Requisições são enviadas por clientes para uma porta no servidor Thread despachante lê requisições que entram para uma operação de arquivo Servidor escolhe um thread operário Se o thread escolhido estiver suspenso, outro thread e selecionado para ser executado:

Servidores Multithreads

Atividade Prática. 1. Fazer um servidor(socket TCP JAVA) que atenda aos clientes invertendo a string recebida. 2. Modifique o arquivo do servidor do exercício um para tratar as requisições dos clientes de forma concorrente. Utilize threads. 3. Modifique o arquivo do servidor exercício 2 para garantir que apenas 8 threads sejam executadas por vez.