Processos Concorrentes

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

Sistemas Distribuídos e Paralelos

Sistemas Operacionais. Conceito de Processos

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Sistemas Operacionais

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

Ferramentas para Programação em Processadores Multi-Core

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

Prof. Kleber R. Rovai

Sistemas Operacionais

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Programação Concorrente. Prof. Hugo Vieira Neto

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Gerenciamento de Memória

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

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

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

Arquitetura de Computadores. Processamento Paralelo

LINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE

OpenMP: Variáveis de Ambiente

SISTEMAS OPERACIONAIS

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

Programação concorrente (processos e threads)

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

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

Arquitetura do 8086/8088

Figura 01 Programa e Processo

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

Computadores e Programação (DCC/UFRJ)

Sistemas de Computação. Processos e escalonamento

SISTEMAS EMBARCADOS. Programação Concorrente e CMSIS RTOS. Prof. André Schneider de Oliveira

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Introdução OpenMP. Nielsen Castelo Damasceno

Sistemas Distribuídos Aula 3

Barramento. Prof. Leonardo Barreto Campos 1

Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização

Técnicas Avançadas de Programação

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

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

Sistemas Operacionais

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

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

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

Instrumentos Analógicos e Digitais

Fundamentos de Sistemas Operacionais

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

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

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

Organização e Arquitetura de Computadores I

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Escalonamento em Sistemas de Tempo Real

Sistemas Distribuídos

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

Sistemas de Informação. Sistemas Operacionais

Arquitetura e Organização de Computadores

Gerência de Dispositivos. Adão de Melo Neto

Introdução à Computação: Sistemas de Computação

Transcrição:

Processos Concorrentes Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright (c) Walter Fetter Lages p.1/15

Introdução Sistemas de tempo real são inerentemente concorrentes Programas concorrentes podem ser vistos como um conjunto de programa sequenciais executados em paralelo Linguagens de programação concorrente incorporam a noção de processo Um processo possui apenas um fluxo de controle Copyright (c) Walter Fetter Lages p.2/15

Execução de Processos Multiplexados em uma única CPU Pseudoparalelismo Multiplexados em diversas CPUs com memória compartilhada Paralelismo espacial Multiplexados em diversas CPUs sem memória compartilhada Sistemas distribuídos Execução de instruções em pipeline Paralelismo temporal Copyright (c) Walter Fetter Lages p.3/15

Estados de um Processo Pronto Esperando que a CPU fique livre Estado inicial Executando Bloqueado Esperando algum evento externo Copyright (c) Walter Fetter Lages p.4/15

Implementação de Processos Contexto do processo Registradores da CPU Contador de programa Ponteiro de pilha Alocação de memória Arquivos abertos Etc... Cada processo tem seus segmentos Código Dados Pilha Copyright (c) Walter Fetter Lages p.5/15

Chaveamento de Processos Realizado pelo sistema operacional O contexto do processo é salvo na tabela de processos Suporte de hardware em alguns casos É selecionado um novo processo entre os que estão no estado de pronto (scheduling) O contexto do novo processo é obtido da tabela de processos e carregado na CPU Do ponto de vista do processo é como se ele nunca tivesse deixado de executar Copyright (c) Walter Fetter Lages p.6/15

Suporte à Concorrência Linguagens concorrentes Mais legível e mais fácil de manter Torna o programa mais portável Dispensa o uso de sistema operacional O compilador pode fazer verificações Sistemas operacionais Possibilita o uso de diversas linguagens em um único sistema Implementar a noção de concorrência de determinadas linguagens pode ser difícil em certos sistemas operacionais Copyright (c) Walter Fetter Lages p.7/15

Programação Concorrente Facilidades necessárias Expressão da concorrência através da noção de processos Sincronização de processos Comunicação entre processos Tipos de interação entre processos Independentes Cooperantes Competidores Copyright (c) Walter Fetter Lages p.8/15

Modelos de Concorrência Estrutura Estática Número de processos fixo Dinânica Número de processos variável Nível Aninhado Pode ser definida uma hierarquia de processos Plano Copyright (c) Walter Fetter Lages p.9/15

Modelos de Concorrência Granularidade Grossa ou Fina Inicialização Parâmetros passados na inicialização Parâmetros comunicados após a inicialização Terminação Ao completar o corpo do processo Suicídio Aborto Erro Nunca Quando não for mais necessário Copyright (c) Walter Fetter Lages p.10/15

Representação de Concorrência Co-rotinas Transferência explícita do controle através de resume Copyright (c) Walter Fetter Lages p.11/15

Representação de Concorrência Fork/join Fork dispara um processo em paralelo (filho) Join força o sincronismo entre os processos Copyright (c) Walter Fetter Lages p.12/15

Representação de Concorrência cobegin/coend Forma estruturada de explicitar o paralelismo Copyright (c) Walter Fetter Lages p.13/15

Representação de Concorrência Declaração explícita de processos Copyright (c) Walter Fetter Lages p.14/15

Threads Semelhantes a processos, no entanto compartilham o mesmo segmento de dados No POSIX threads podem existir dentro de processos Copyright (c) Walter Fetter Lages p.15/15