Concorrência e Paralelismo

Tamanho: px
Começar a partir da página:

Download "Concorrência e Paralelismo"

Transcrição

1 Concorrência e Paralelismo 1 Programação Concorrente e Paralela Na programação sequencial todas as instruções de um programa são executadas através de uma única linha de execução Na programação concorrente e paralela um programa pode ser executado através de diversas linhas de execução. 2

2 Programação Concorrente e Paralela fluxo único de execução vários fluxos de execução tarefa 1 tarefa 2 tarefa 1 tarefa 2 tarefa 3 tarefa 3 3 Programação Concorrente e Paralela Os mecanismos para programação concorrente e paralela compreendem as construções que LPs usam para: indicar quais unidades são concorrentes; ativar e controlar o fluxo de execução de unidades concorrentes; possibilitar a interação e sincronização entre unidades concorrentes. 4

3 Porque Usar Programação Concorrente? Ganhos de desempenho em sistemas com múltiplos processadores (paralelismo físico). Ganhos de desempenho através de acesso concorrente a dispositivos de hardware - o acesso a discos ou a dispositvos de rede não precisa bloquear toda a aplicação, mas apenas um thread. Maior responsividade da aplicação - threads com alta prioridade podem ser associadados a tarefas críticas (ex: vídeo). Maior facilidade em capturar e estruturar a lógica de certas aplicações (aplicações iterativas, servidores,, etc). 5 Paralelismo Físico e Lógico A 3 processos 3 processadores B C paralelismo físico tempo 3 processos 1 processador A B C paralelismo lógico tempo 6

4 Processos Um processo é um fluxo de controle sequencial e seu espaço de endereçamento (registradores, memória e arquivos). Informalmente um processo é a execução de um programa junto com os dados usados por ele. A criação, execução e o encerramento de processos são tratados diretamente pelo sistema operacional. 7 Estados de um Processos 1 executando Processo é bloqueado por operação de I/O 2. Escalonador escolhe um novo processo bloqueado pronto 3. Novo processo começa a executar 4 4. Operação de I/O é completada 8

5 Threads Um processo tem duas partes: O fluxo de controle; O espaço de endereçamento (memória e outros recursos como I\O). I Um thread consiste somente no fluxo de controle e numa pilha de memória independente. O escalonamento de um thread é uma operação mais simples, já que não envolve a mudança integral do espaço de endereçamento. 9 Criação de Processos A criação de novos processos sempre é controlada pelo SO Um processo é uma abstração do SO. Em Unix processos podem ser criados explicitamente através do comando fork(): pid = fork(); if ( pid < 0 ) { printf(``cannot fork!!n''); exit(1); if ( pid == 0 ) { /* Child process */... else { /* Parent process pid is child's pid */... 10

6 Criação de Threads O suporte a threads pode acontecer através da semântica básica da LP ou através de bibliotecas e pacotes específicos. Alguns SOs oferecem suporte a threads (Windows XP, Linux) mas nem todos (diversas implementações de Unix). Exemplos de LPs com suporte explícito a concorrência são Algol, Ada, Modula 3, Occam, Java e C#. Exemplos de pacotes e bibliotecas para programação concorrente e paralela são PVM e MPI (Fortran, C/C++) e pthreads (C/C++). 11 Criação de Threads Os principais mecanismos de criação de threads são: Co-begin; Loops paralelos; Instanciação na elaboração; Instanciação explícita. 12

7 Co-begin Blocos de código que podem ser executados de forma concorrente são delimitados por uma declaração especial (par( par). Em Algol temos: par begin # comandos neste bloco são concorrentes # p(a) begin # comandos neste bloco são sequenciais # b: = x + y; c:= f (b, d) end p(f) end 13 Loops Paralelos Em algumas LPs as iterações de um loop podem ser executadas de forma concorrente através de uma construção específica. Em Occam temos: co (i:= 1 to 10) -> f(a, b, i) oc # são criados 10 threads# 14

8 Instanciação na Elaboração Em Ada e SR o código de um thread pode ser definido de forma semelhante a uma subrotina. Quando a subrotina é invocada, o thread é criado automaticamente e começa a executar. procedure P is task T is... end T; begin - corpo de P... end P; 15 Instanciação Explícita Normalmente bibliotecas e pacotes com suporte a threads permitem apenas a criação explícita de threads. Em pthreads um novo thread é criado explicitamente através do comando pthread_create() que recebe como parâmetro a rotina a ser executada pelo novo thread. Em Java um thread é criado através da instanciação de um objeto de uma classe que representa um novo thread. 16

9 Instanciação Explícita Exemplo C pthreads: int main(int argc, char *argv[]) {... for (i=0; i< n_workers; i++){ erro = pthread_create(&tid[i], NULL, worker,(void *) i); if (erro){ printf("erro na criacao do thread!!"); exit(1); void *worker(void *arg) { int id = (int) arg; printf("sou o worker %d\n",id); Sincronizacão Aplicações multi-threads threads precisam usar mecanismos específicos para controlar a iteração entre os diferentes threads. A sincronização entre threads pode ser feita através de dois mecanismos básicos: memória compartilhada e troca de mensagens. Os dois principais mecanismos de sincronização com memória compartilhada são semáforos e monitores. 18

10 Semáforos Semáforos são estruturas de dados especiais que podem assumir apenas valores inteiros, sendo manipulados através das funções P ( ou down) ) e V ( ou up). Para um semáforo s temos: P(s) se se s>0 então s= s -1 senão supender a execução do thread corrente V(s) se se existe algum thread suspenso então escolher um qualquer e executá-lo senão s=s+1 19 Mutex Mutex são semáforos binários que podem assumir apenas os valores 0 e 1. São utilizados para permitir o acesso exclusivo a recursos ou para definir regiões críticas do programa (trechos de código que não podem ser executados concomitantemente): sem mutex = 1 process CS [i=1 to n]{ while (true){ P(mutex); região crítica; V(mutex); região não crítica 20

11 Problema do Produtor\Consumidor produtores put buffer get consumidores capacidade = n O buffer possui tamanho limitado (n). Só podem ser inseridos produtos se o buffer não estiver cheio. Só podem ser retirados produtos se o buffer não estiver vazio. 21 Problema do Produtor\Consumidor Solução utiliza três semáforos: Full: : conta o número de slots no buffer que estão ocupados; Empty: : conta o número de slots no buffer que estão vazios; Mutex: : garante que os processos produtor e consumidor não acessam o buffer ao mesmo tempo; 22

12 # include prototypes.h # define N 100 typedef int semaphore; semaphore mutex = 1; semaphore empty = N; semaphore full = 0; void producer (void){ int item; while (TRUE){ produce_item(&item); P(&empty); P(&mutex); enter_item(item); V(&mutex); V(&full); void consumer (void){ int item; while (TRUE){ P(&full); P(&mutex); remove_item(item); V(&mutex); V(&empty); consume_item(item); 23 Deadlock O uso inadequado de mecanismos de sincronização pode levar a situações em que todos os threads de uma aplicação ficam bloqueados a espera de uma condição que nunca ocorre. O deadlock é um dos erros mais comuns em aplicações multi-threads. threads. 24

13 Jantar dos Filósofos process filosos [1=0 to 4]{ while (true){ pensar; pegar_garfos; comer; soltar_garfos; deadlock 25 Jantar dos Filósofos Solução usando semáforos sem garfo[5] = {1, 1, 1, 1, 1 process filosofo [1=0 to 3]{ while (true){ P(garfo[i]);P(garfo[i+1]); comer; V(garfo[i]);V(garfo[i+1]); pensar; process filosofo [4]{ while (true){ P(garfo[0]);P(garfo[4]); comer; V(garfo[0]);V(garfo[4]); pensar; 26

14 Monitores Monitores são construções utilizadas para a sincronização de threads que encapsulam um conjunto de procedimentos e variáveis. Somente um thread pode estar ativo dentro do monitor em qualquer instante. Outros threads interessados em executar rotinas de um monitor ficam bloqueados até que o thread ativo termine de executar o código do monitor. 27 Monitores monitor example int i; condition c; procedure producer();. end; procedure consumer();. end; end monitor; 28

15 Monitores Monitores utilizam variáveis condicionais que permitem que o thread em execução seja suspenso se uma determinada condição não for observada. O bloqueio do thread ocorre através de uma chamada do tipo wait(variável condicional). Quando um thread é bloqueado em uma variável condicional, um novo thread pode entrar no monitor. Threads bloqueados por variáveis condicionais podem ser acordados através de uma chamada do tipo signal(variável condicional) executada por outro thread. O thread bloqueado só é ativado quando o thread ativo no monitor sai do monitor. 29 Produtor\consumidor usando monitores monitor Bounded_Buffer { typet buf[n]; int front = 0, rear = 0, count = 0; cond not_full, not_empty; procedure deposit (typet data){ while (count == n) wait (not_full); buf[rear] = data; rear = (rear+1) % n; count++; signal(not_empty); end; procedure fetch(typet &result){ while (count == 0) wait (not_empty); result = buf[front]; fornt = (fornt+1) % n; count-- --; signal(not_full); 30

16 Troca de Mensagens Uma segunda alternativa pra a sincronização entre processos e threads é a troca de mensagens. É a única alternativa de sincronização em sistemas distribuídos. A troca de mensagens é geralmente implementada através de duas primitivas: send (destination,message) - envia para um determinado destino uma mensagem. receive (source,message) - recebe a mensagem de uma determinada fonte. 31 Troca de Mensagens As chamadas send e receive podem ser síncronas ou assíncronas. Em um send síncrono o thread que fez a invocação pode ficar bloqueado até a mensagem ser recebida pela dispositivo de rede, ou mesmo até o recebimento de uma resposta. No caso do receive síncrono o thread que fez a invocação pode ficar bloqueado até que a mensagem desejada seja recebida. Nas chamadas assíncronas o thread que fez a invocação nunca fica bloqueado. 32

17 RPC A chamada de procedimento remoto (remote procedure call) é um modelo de nível mais alto para a troca de mensagens entre processos. Permite a invocação de subrotinas entre processos que estão sendo executados em diferentes computadores de uma rede. A semântica de uma chamada remota é semelhante a de uma chamada local. 33 RPC cliente servidor processo cliente 1 10 processo servidor 6 5 stub do cliente stub do servidor 2 9 interface de rede interface de rede 34

18 RPC 1. O processo cliente chama (chamada local) o stub do cliente, com os parâmetros apropriados; 2. O stub organiza os parâmetros e monta uma mensagem, endereçada ao servidor, que é passada a interface de rede; 3. A mensagem é enviada da máquina cliente para a máquina servidor; 4. A interface de rede do servidor passa a mensagem ao stub do servidor; 5. O stub do servidor desmonta a mensagem, recupera os parâmetros, e chama (chamada local) o programa servidor, passando os parâmetros; 6. Após sua execução, o programa envia os eventuais resultados para o stub do servidor; 7. O stub do servidor monta uma mensagem, endereçada ao stub do cliente, com a indicação do fim da execução e com os resultados, e passa a mensagem à interface de rede; 8. A mensagem é enviada da máquina servidor para a máquina cliente; 9. A interface de rede do cliente passa a mensagem ao stub do cliente; 10. O stub do cliente desmonta a mensagem, recuperando a indicação do fim da execução e os resultados, e retorna da chamada local, passando o controle e os resultados ao cliente. 35 RMI A invocação remota de métodos (remote method invocation) é semelhante à RPC, oferecendo um modelo de alto nível para a invocação de métodos de objetos remoto. É necessário que o programa cliente possua uma referência remota para o objeto cujo método deseja invocar. Isso é possível através de um servidor de nomes. O cliente envia ao servidor de nomes o nome de um objeto, e recebe como resposta uma referência remota para o mesmo. 36

19 Problemas na Utilização de Threads A necessidade de utilização de mecanismos de sincronização para o acesso a recursos compartilhados. A possibilidade de deadlock como resultado da utilização de mecanismos de sincronização. Uma maior dificuldade no processo de debug de um programa em decorrência da forma quase que aleatória com que os threads são ativados pelo escalonador. Uma degradação do desempenho do sistema em função do aumento do número de threads ou da granularidade com que são empregados os mecanismos de sincronização. 37 Programação Orientado a Eventos Muitas aplicações são naturalmente estruturadas a partir da ocorrência de eventos externos. Sistemas interativos com interfaces gráficas, como um processador de textos, executam funções quase que exclusivamente como resposta a ações de usuários. A cada evento é associada uma reação, representada por uma rotina ou handler,, e o fluxo de processamento consiste num encadeamento de reações. 38

20 Programação Orientado a Eventos Aplicações baseadas em eventos geralmente são compostas por um loop contínuo que aguarda pela ocorrência de eventos. Assim que um evento é registrado um coletor de eventos insere um objeto associado ao evento em uma fila. Um processador de eventos retira os objetos da fila e executa as reações (rotinas) correspondentes. 39 Programação Orientado a Eventos componente 1 componente 2 coletor de eventos fila de eventos eventos processador de eventos componente 3 40

21 Programação Orientado a Eventos Os sistemas orientados a eventos podem ser divididos em dois modelos. No modelo preemptivo cada tipo de evento possui uma prioridade, e a execução de uma reação associada a um evento é suspensa sempre que um evento de maior prioridade for recebido. No modelo não preemptivo as reações são executadas de forma atômica, e novos eventos só são tratados após ser completado o tratamento de eventos anteriores. 41 Programação Orientado a Eventos No modelo preemptivo não existe portanto a necessidade de utilização de mecanismos como semáforos ou monitores para o controle de acesso a recursos compartilhados. A invocação das funções potencialmente bloqueantes segue sempre uma disciplina assíncrona, e os resultados são tratados através de handlers passados como parâmetros das chamadas. O maior problema da programação orientada a eventos é a necessidade de quebrar o programa em blocos separados, o que pode dificultar a compreensão da linha de execução. 42

22 Programação Orientado a Eventos void main (){ do{ receive(msg); print(msg); while(msg) usando orientação a eventos void function print_msg (string msg){ if (msg){ print(msg); receive (print_msg); void main() { receive (print_msg); 43 Continuações Uma continuação pode ser entendida como o que falta a ser computado em um programa. Considere o programa: x = 10; y =15; x = x+y; print (x); Após a instrução x=10 a continuação é y=15; x = x+y; print (x); Após a instrução y = 15 a continuação é y=15; x = x+y; print (x); 44

23 Continuações Algumas LPs, como C e Scheme, permitem a captura e representação explícita de uma continuação. Em Scheme uma continuação pode ser criada com a função call/cc. Em C continuações podem ser usadas através das funções setjmp e longjmp. Ao invocar uma continuação o programa abandona a execução corrente e retoma a execução representada pela continuação. 45 Exemplo #include <setjmp.h> jmp_buf env; void int teste(){ int i; i = setjmp(env); // retorna 0 quando a continuação // é criada, ou o argumento de longjmp if (i=0){... /* Faz alguma coisa*/ if (erro) longjmp(env, erro); // chama a continuação... else { printf( Erro: %d/n,i) 46

24 Corotinas Corotinas são construções que permitem que rotinas de um programa possam ser executadas de forma alternada, em intervalos intercalados no tempo. Enquanto threads são escalonados de forma preemptiva, corotinas são escalonadas manualmente pelo programa através de chamadas específicas (resume,( yield, transfer, etc). Não existe portanto a necessidade de utilização de mecanismos como semáforos ou monitores para o controle de acesso a recursos compartilhados. Poucas LPs suportam corotinas. Exemplos são Simula, Modula 2 e Lua a partir da versão program exemplo; var i:item; coroutine produtor; begin loop produzir(i); resume consumidor; end; end; coroutine consumidor; begin loop consumir(i); resume produtor; end; end; begin resume produtor; end. 48

25 Corotinas - Implementação No modelo tradicional de invocação de subrotinas uma subrotina sempre está subordinada a outra. Neste caso pode-se usar uma única pilha para representar a execução de cada subrotina. Corotinas executam de forma cooperativa e não subordinada. Não existe portanto uma hierarquia natural entre elas. Para cada corotina é necessário uma pilha independente, já que sua linha de execução pode incluir a invocação de subrotinas. 49 Corotinas Árvore de pilhas ou stack cactus 50

S.O.: Conceitos Básicos

S.O.: Conceitos Básicos S.O.: Conceitos Básicos Camada de software localizada entre o hardware e os programas que executam tarefas para o usuário; Acessa os periféricos Entrada e Saída Esconde os detalhes do hardware para o programador

Leia mais

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 08: Sincronização de Processos Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o problema da seção crítica, cujas soluções podem ser usadas

Leia mais

Programação Concorrente

Programação Concorrente Programação Concorrente Monitores e Troca de Mensagens Monitores Considere que, no projeto da solução do produtor-consumidor com semáforos, os 2 downs tenham sido trocados Se o buffer estiver cheio deadlock

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Comunicação e Sincronismo entre processos Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO 1 Comunicação entre Processos Processos

Leia mais

P5 P3. interrupçãocorrespondente. Sistemas Operacionais 2008/1 Profa. Patricia D. CostaLPRM/DI/UFES 3 Sistemas Operacionais 2008/1

P5 P3. interrupçãocorrespondente. Sistemas Operacionais 2008/1 Profa. Patricia D. CostaLPRM/DI/UFES 3 Sistemas Operacionais 2008/1 Conceitos Processos Básicos (Aula 4) Profa. É Provoca Constitui Mecanismo Patricia informa evento controle, a multiprogramação. Ex: rotina um a base de Interrupção de um (1) sistema de D. CostaLPRM/DI/UFES

Leia mais

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br BC1518-Sistemas Operacionais Sincronização de Processos (aula 5 Parte 2) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Semáforos Monitores Passagem de Mensagem Exemplos em S.O.

Leia mais

Revisão Ultima aula [1/2]

Revisão Ultima aula [1/2] SOP - TADS Comunicação Interprocessos - 2 IPC Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Sistemas Operacionais. Processos. Edeyson Andrade Gomes. edeyson@uol.com.br

Sistemas Operacionais. Processos. Edeyson Andrade Gomes. edeyson@uol.com.br Sistemas Operacionais Processos Edeyson Andrade Gomes edeyson@uol.com.br Roteiro da Aula Conceitos Estados do Processo Controle de Processo Escalonamento Criação e Término de Processos 2 Definição Processo

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS MACHADO/MAIA: CAPÍTULO 07, PÁGINA 101 Prof. Pedro Luís Antonelli Anhanguera Educacional sistemas multiprogramáveis Os sistemas multiprogramáveis

Leia mais

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo

Módulo 4: Processos. Conceito de Processo. Diagrama de Estados de Processos. Estados de Processo Módulo 4: Processos Conceito de Processo Conceito de Processo Escalonamento de Processos Operações com Processos Processos Cooperativos Comunicação entre Processos Um sistema operacional executa uma variedade

Leia mais

Computação Concorrente (MAB-117) Monitores

Computação Concorrente (MAB-117) Monitores Computação Concorrente (MAB-117) Monitores Prof. Silvana Rossetto 1 Departamento de Ciência da Computação (DCC) Instituto de Matemática (IM) Universidade Federal do Rio de Janeiro (UFRJ) Maio de 2012 1.

Leia mais

Sistemas Operacionais Sincronização e Comunicação entre Processos

Sistemas Operacionais Sincronização e Comunicação entre Processos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Sincronização e Comunicação entre Processos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos e Threads Gustavo Reis gustavo.reis@ifsudestemg.edu.br - O que são Processos? Uma abstração de um programa em execução. Mantêm a capacidade de operações (pseudo)concorrentes,

Leia mais

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1 Remote Procedure Call Programação distribuída e paralela (C. Geyer) RPC 1 Autoria Autores C. Geyer Local II-UFRGS Versão V11.4 2014-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC

Leia mais

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Capítulo 2 Processos e Threads Prof. Fernando Freitas slide 1 Capítulo 2 Processos e Threads Prof. Fernando Freitas Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br slide

Leia mais

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

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado Threads em Java Sistemas Operacionais - Laboratório Professor Machado 1 Conceitos de Programação Concorrente Uma unidade concorrente é um componente de um programa que não exige a execução seqüencial,

Leia mais

Programação distribuída e paralela (C. Geyer) RPC 1

Programação distribuída e paralela (C. Geyer) RPC 1 Programação distribuída e paralela (C. Geyer) RPC 1 Autores C. Geyer Local II-UFRGS Versão v6 2008-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC 2 Bibliografia base original dos

Leia mais

Sistemas Operacionais: Threads

Sistemas Operacionais: Threads Sistemas Operacionais: Threads Threads Única linha de execução x múltiplas linhas de execução Benefícios Tempo de resposta Compartilhamento de recursos Economia de recursos Desempenho em arquiteturas multiprocessadas

Leia mais

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Sistemas Distribuídos 59. Sistemas Distribuídos 61. Receive não-bloqueante: Comunicação entre processos! Memória Compartilhada: " os processo compartilham variáveis e trocam informações através do uso dessas variáveis compartilhadas COMUNICAÇÃO ENTRE PROCESSOS P1 Área Compartilhda!

Leia mais

Sincronização. Cooperação entre Processos

Sincronização. Cooperação entre Processos Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência

Leia mais

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerencia de Processos 4.1 Introdução aos Processos Gerenciamento de Processos Processo -Definição: É uma abstração do sistema

Leia mais

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.

Capítulo 2 Processos e Threads. 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2. Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento 1 Processos O Modelo de Processo Multiprogramação de quatro programas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos

Módulo 4: Processos. Conceito de Processo. Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos Módulo 4: Processos Conceito de Processo Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos 4.1 Conceito de Processo Um Sistema Operacional executa uma

Leia mais

Sistemas Operacionais Aula 04: Processos (Parte B) Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 04: Processos (Parte B) Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 04: Processos (Parte B) Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Descrever as diversas características dos processos, inclusive o scheduling, a

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Modelagem e implementação de programas concorrentes

Modelagem e implementação de programas concorrentes Modelagem e implementação de programas concorrentes Aula 10 DCC-UFMG 2010 Bibliograa Andrews + Ben Ari Da aula passada Se não posso adquirir o lock... Continuar tentando: Spinning, Busy wait (espera ocupada)

Leia mais

9 - Sincronização e Comunicação entre Processos

9 - Sincronização e Comunicação entre Processos 1 9 - Sincronização e Comunicação entre Processos 91 Introdução Em um sistema multitarefa, seja com um único processador ou com mais de um processador ou ainda com vários núcleos por processador, os processos

Leia mais

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 06: Threads Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o conceito de thread Discutir as APIs das bibliotecas de threads Pthreads, Win32

Leia mais

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

Infra-Estrutura de Software. Introdução. (cont.) Infra-Estrutura de Software Introdução (cont.) O que vimos Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como

Leia mais

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos Sistemas Operacionais Capítulo 7 Sincronização e Comunicação entre Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Processos I: Threads, virtualização e comunicação via protocolos Prof. MSc. Hugo Souza Nesta primeira parte sobre os Processos Distribuídos iremos abordar: Processos e a comunicação

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - Threads 24/04/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Threads Processos Threads Conceituação Descrição e Imagem de uma Thread Tipos de thread

Leia mais

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Processo cooperativo é aquele que pode afetar outros processos em execução no sistema Ou ser por eles afetado Processos

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais 1. Monitores Notas da Aula 6 - Fundamentos de Sistemas Operacionais Embora os semáforos sejam uma boa solução para o problema da exclusão mútua, sua utilização não é trivial. O programador é obrigado a

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Processos e Threads Andreza Leite andreza.leite@univasf.edu.br Plano de Aula 2 Gerenciamento de Processos Threads Aplicações com múltiplas Threads Concorrência e Compartilhamento

Leia mais

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração: 1945-1955 O que vimos Infraestrutura de Software Introdução (cont.) Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma

Leia mais

2 Modelos de Implementação

2 Modelos de Implementação 2 Modelos de Implementação Os modelos de concorrência definem como uma aplicação atende às requisições concorrentes. Os modelos de sandboxes definem como o ambiente das aplicações são criados. Os modelos

Leia mais

E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro. Programação Concorrente em Linux

E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro. Programação Concorrente em Linux E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro Programação Concorrente em Linux O Conceito de Processo no Linux O conceito de processo é fundamental para qualquer sistema operacional

Leia mais

ALua. asynchronous communication in Lua

ALua. asynchronous communication in Lua ALua asynchronous communication in Lua o que é modelo de programação troca de mensagens Lua assincronismo modelo de concorrência cada evento tratado até o final estrutura da rede daemons intermediando

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Sincronização de Processos (4) Monitores

Sincronização de Processos (4) Monitores Sincronização de Processos (4) Monitores Monitores (1) Sugeridos por Dijkstra (1971) e desenvolvidos por Hoare (1974) e Brinch Hansen (1975), são estruturas de sincronização de alto nível, que têm por

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Sistemas Operacionais

Sistemas Operacionais Unix: Processos e o Kernel O Kernel É um programa especial, uma parte privilegiada do sistema operacional, que roda diretamente sobre o hardware. É ele quem implementa o modelo de processos do sistema.

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira Sistemas Operacionais Técnicas de Implementação de Exclusão Mútua Aula VI Prof. Rosemary Silveira Tópicos de Apresentação Condições de Corrida Técnicas de Implementação de Exclusão Mútua Condições de Corrida

Leia mais

Sistemas Operacionais 2014 Gerência de Processos. Alexandre Augusto Giron

Sistemas Operacionais 2014 Gerência de Processos. Alexandre Augusto Giron Sistemas Operacionais 2014 Gerência de Processos Alexandre Augusto Giron ROTEIRO Revisão Processos Escalonamento de processos Operações de processos Comunicação Cooperação Threads Escalonamento de CPU

Leia mais

Exemplos práticos do uso de RMI em sistemas distribuídos

Exemplos práticos do uso de RMI em sistemas distribuídos Exemplos práticos do uso de RMI em sistemas distribuídos Elder de Macedo Rodrigues, Guilherme Montez Guindani, Leonardo Albernaz Amaral 1 Fábio Delamare 2 Pontifícia Universidade Católica do Rio Grande

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Ciclo de Vida de um Processo

Ciclo de Vida de um Processo Nas aulas anteriores Ciclo de Vida de um Processo Marcelo Johann Conceito de Processo Mecanismo de Programação em C/UNIX Continuando Interrupções TRAP Chaveamento de Contexto Chamadas de Sistema INF01142

Leia mais

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

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Chamadas Remotas de Procedimentos (RPC)

Chamadas Remotas de Procedimentos (RPC) Chamadas Remotas de Procedimentos (RPC) Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos

Leia mais

III - Processos e Threads

III - Processos e Threads III - Processos e Threads P rocesso é geralmente entendido como um programa em execução porém, na realidade, trata-se de uma estrutura mais complexa que contém, além do programa no seu formato executável,

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Introdução a Threads Java

Introdução a Threads Java Introdução a Threads Java Prof. Gerson Geraldo Homrich Cavalheiro Universidade Federal de Pelotas Departamento de Informática Instituto de Física e Matemática Pelotas RS Brasil http://gersonc.anahy.org

Leia mais

Sistemas Operativos I

Sistemas Operativos I Componentes de um Sistema Operativo Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sistema Operativo Um Sistema Operativo pode ser visto como um programa de grande complexidade, responsável

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Processos. Adão de Melo Neto

Processos. Adão de Melo Neto Processos Adão de Melo Neto 1 EXECUTE O SEGUINTE Baixa a aula dos dias 20 MAR 15 e 08 MAI 15 e salve no computador. Feche o browser Inicialize o vmware player e inicialize a máquina virtual ubuntu Inicialize

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

Chamadas de Sistema e Processo

Chamadas de Sistema e Processo Andrique Amorim www.andrix.com.br professor@andrix.com.br Chamadas de Sistema e Processo Estrutura do Computador Sistemas Operacionais Estrutura do Computador Sistemas Operacionais Modos de Acesso ao S.O.

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Arquitectura dos Sistemas Operativos Programação de Sistemas Arquitectura : 1/25 Introdução (1) Um sistema operativo de uso geral é formado por diversas componentes: Gestor de processos

Leia mais

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC Prof. Almeida Jr Processos Conceitos Básicos Nomes Tipos Batch: jobs CPU-bound T.Sharing: Tarefas/Processos

Leia mais

Capítulo 2. Charm++ 16

Capítulo 2. Charm++ 16 2 Charm++ O Charm++ é uma linguagem orientada a objetos para programação paralela baseada em C++ (34). Ela possui uma biblioteca de execução para suporte a computação paralela que se chama Kernel do Charm

Leia mais

Parte 1 Processos e Threads (20%)

Parte 1 Processos e Threads (20%) INE 5645 Programação Paralela e Distribuída 2011.1 Turma 0238B Prof. Bosco Nome: BOSCO Matrícula: Parte 1 Processos e Threads (20%) 1.1 Explique, resumidamente, o que é um processo em Sistema Operacional.

Leia mais

Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação

Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação Sistemas Operativos 2015-2016 O que construímos até agora... A abstração de processo 2 A possibilidade

Leia mais

Um processo sob UNIX ocupa uma área de memória formada basicamente por 3 partes:

Um processo sob UNIX ocupa uma área de memória formada basicamente por 3 partes: Processos O UNIX é um sistema operacional multitarefa (suporta multiprogramação). Isso significa que ele é capaz de gerenciar a execução simultânea de vários programas. O termo processo é usado para caracterizar

Leia mais

Fundamentos de Programaçã. ção Concorrente

Fundamentos de Programaçã. ção Concorrente Java 2 Standard Edition Fundamentos de Programaçã ção Concorrente Helder da Rocha www.argonavis.com.br 1 Programação concorrente O objetivo deste módulo é oferecer uma introdução a Threads que permita

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Software Sistema de Entrada/Saída Princípios de Software Tratadores (Manipuladores) de Interrupções Acionadores de Dispositivos (Device Drivers)

Leia mais

Universidade Federal da Paraíba

Universidade Federal da Paraíba Universidade Federal da Paraíba Mestrado em Informática Fora de Sede Universidade Tiradentes Aracaju - Sergipe Disciplina Sistemas Operacionais Professor Jacques Philippe Sauvé Aluno José Maria Rodrigues

Leia mais

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,

Leia mais

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 PROCESSOS 1. INTRODUÇÃO Em sistemas distribuídos é importante examinar os diferentes tipos de processos e como eles desempenham seu papel. O conceito de um processo é originário do campo de sistemas

Leia mais

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Sistemas Operacionais Aula 03: Estruturas dos SOs Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com OBJETIVOS Descrever os serviços que um sistema operacional oferece aos usuários e outros sistemas

Leia mais

Sistemas Operacionais Distribuídos e Multiprocessados

Sistemas Operacionais Distribuídos e Multiprocessados Tópicos em Sistemas Operacionais Sistemas Operacionais Distribuídos e Multiprocessados Por André Macedo, Marcelo Moraes, Thaís Fernandes Sumário Teoria: Sistemas Multiprocessados Estudo de caso:k42 Teoria:

Leia mais

Chamadas de Sistema e Processo

Chamadas de Sistema e Processo Andrique Amorim www.andrix.com.br professor@andrix.com.br Chamadas de Sistema e Processo Estrutura do Computador Sistemas Operacionais Estrutura do Computador Sistemas Operacionais Modos de Acesso ao S.O.

Leia mais

Sistemas Operacionais

Sistemas Operacionais AULA 09 Sincronização de Processos - II Monitores Conforme comentamos, o uso equivocado dos semáforos pode levar a uma situação de deadlock, por isso devemos tomar cuidado ao programar utilizando este

Leia mais

Programação Orientada a Objetos Threads

Programação Orientada a Objetos Threads Threads Prof. Edwar Saliba Júnior Janeiro de 2013 1 Introdução Multithreading: fornece múltiplas threads de execução para a aplicação; permite que programas realizem tarefas concorrentemente; às vezes

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Máquina de estados UNIX O

Máquina de estados UNIX O Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

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

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 Estruturas Processos de Controle (Aula 5) Aula Interrupções Profa. Patricia Gerência fluxo, execução D. O Abstração passada Criação podendo de gerar hw e transição sw (mudança de CostaLPRM/DI/UFES que

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos Comunicação Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Roteiro da Aula Comunicação entre Processos Protocolos Modelo OSI Modelo Cliente Servidor 3 Comunicação entre

Leia mais

Sistemas Operativos: Concorrência (Parte 2)

Sistemas Operativos: Concorrência (Parte 2) Sistemas Operativos: Concorrência (Parte 2) Pedro F. Souto (pfs@fe.up.pt) March 23, 2012 Sumário Instruções read-modify-write Atómicas. Problema do Lost Wakeup Semáforos Monitores Variáveis de Condição

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional O conteúdo deste documento tem por objetivo apresentar uma visão geral

Leia mais

Threads Aula 04 2 Quadrimestre

Threads Aula 04 2 Quadrimestre BC1518 - Sistemas Operacionais Threads Aula 04 2 Quadrimestre de 2010 Prof. Marcelo Z. do Nascimento Email: marcelo.nascimento@ufabc.edu.br Roteiro Threads: Visão Geral Benefícios Tipos Modelos de multithread

Leia mais

PROGRAMAÇÃO PARALELA EM C# Notas de Aula Prof. Marcos E Barreto

PROGRAMAÇÃO PARALELA EM C# Notas de Aula Prof. Marcos E Barreto PROGRAMAÇÃO PARALELA EM C# Notas de Aula Prof. Marcos E Barreto Referências: - Programming C#. Jesse Liberty, O Reilly, 2001. - Threading in Java and C#: a focused language comparison. Shannon Hardt -

Leia mais

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de 2007. Unidade 02-002 Processos

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de 2007. Unidade 02-002 Processos Processos Prof. Edwar Saliba Júnior Março de 2007 1 Processos Programa em execução: processos do próprio sistema (SYSTEM no gerenciador de tarefas); processos do usuário; Sistemas multiprogramáveis: muitos

Leia mais

Cálculo Aproximado do número PI utilizando Programação Paralela

Cálculo Aproximado do número PI utilizando Programação Paralela Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Cálculo Aproximado do número PI utilizando Programação Paralela Grupo 17 Raphael Ferras Renan Pagaiane Yule Vaz SSC-0143 Programação

Leia mais

Sistemas Distribuídos e Redes de Sensores

Sistemas Distribuídos e Redes de Sensores Aula 5: abril de 2013 sobre nosso exemplo cliente-servidor servidor espera pedido e passa a tratá-lo e pedidos que cheguem durante tratamento? cliente envia pedido de leitura... pode ou não receber resposta?

Leia mais