Capítulo 2 Processos e Threads

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

Download "Capítulo 2 Processos e Threads"

Transcrição

1 Capítulo 2 Processos e Threads 1 Processos Escalonamento Threads Comunicação e sincronização interprocesso Problemas clássicos de sincronização e comunicação Processos O Modelo de Processo Considere a multiprogramação de 4 programas: a) O contador de programa (PC) alternadamente assume endereços de cada programa b) Conceitualmente são 4 processos sequenciais independentes c) Somente um programa está ativo a cada momento 2 1

2 4 Criação de Processos Um sistema pode executar um conjunto de processos simultâneos/concorrentes. Principais eventos que levam à criação de processos: 1. Ao iniciar o sistema operacional (o init) 2. Um processo pai cria um novo processo usando fork() Usuário executa comando/ inicia programa através da shell Processo cria um filho para tratar de uma requisição específica (p.ex. Inet cria processo para tratar requisição ftp, rsh, etc.) Início de um programa e em momento prédeterminado (através do cron daemon) Término de Processos Condições que levam ao término de processos: 1. Saída normal (voluntária) através de exit 2. Saída por erro (voluntária) 3. Erro fatal (involuntário) 4. Cancelamento por um outro processo (involuntário), através de um sinal. 5 2

3 Estados de Processos Ao longo de sua execução, um processo pode assumir, os seguintes estados: new: processo foi criado. running: instruções sendo executadas. waiting: Processo aguarda a ocorrência de algum sinal/interrupção. ready: Processo aguarda alocação do processador. terminated: Processo terminou a sua execução. 7 Estados de Processos (um pouco mais proximo da realidade) 8 3

4 Implementação de Processos A cada processo estão associadas informações sobre o seu estado de execução (o seu contexto de execução), Estas ficam armazenadas em uma entrada da Tabela de Processos (e em Process Control Blocks) 10 Fig.: Campos da entrada de uma tabela de processos Process Control Block (PCB) P1 P2 P3 PCB 1 PCB 2 PCB 3 Contém informações que são necessárias para colocar o processo em execução. Para ser capaz de reiniciar um processo interrompido (ou esperando) o estado anterior em que deixou a CPU precisa ser restaurado; Carrega-se a CPU (e MMU) com as variáveis do PCB è Troca de contexto Em sistemas Unix, o PCB é uma estrutura no espaço do usuário que é acessada pelo núclro ( área u) 12 4

5 Tabela de Processos (proc) Além do PCB, o núcleo gerencia uma tabela de processos, com informações adicionais por processo; É uma área no núcleo com informações sobre todos os processos, tais como: PID Endereço do PCB do processo Estado do processo Ponteiros entre processos nas filas de prontos/bloqueados (usados pelo escalonador) Ponteiros para os processos pai, filho e irmão Informação para o tratamento de sinais (máscaras, etc.) Informação para gerenciamento de memória, Informações estatísticas etc. Obs1: Conjuntamente, o PCB e a entrada na Tabela de Processos contém todas as informações necessárias para a gerência dos processos Obs2: No Minix, a entrada TP é uma estrutura em servers/pm/mproc.h O array tem tamanho NR_TASKS+NR_PROCS. 13 Troca de Contexto Consiste de salvar o estado dos recursos em uso (especialmente CPU) do processo interrompido no PCB, e carregar a CPU com um novo estado (PC, registradores, stack pointer, PSW, etc.) Esta troca precisa ser: Completa e consistente Eficiente O núcleo não pode ser interrompido durante o processo, isto é, precisa-se garantir a atomicidade da operação Realizado por um tratador de interrupção genérico, tratador de interrução de primeiro nível 14 5

6 Troca de Contexto Ocorre em todos sistemas multiprogramados. É essencial para a multiplexacão da CPU 15 Filas dos prontos e de espera por E/S 16 6

7 Tratamento de Interrupções Para desviar o controle de execução (para o tratador da interrpção), o contexto precisa ser trocado. Ao receber uma interrupção, o HW empilha novo PC contido na entrada do vetor de interrupção. 17 Tipos de Interrupções Tipos de interrupção reconhecidos pela Intel Architecture IA-32:. Tipo I/O Descrição para cada tipo Iniciados pelo HW, notificam o processador de que o estado do dispositivo de E/S mudou (p.ex. E/S finalizada) Timer evento periódico para agendamento de ações e/ou monitoramento de desempenho Inter-CPU Em sistemas multi-processadores, para comunicação e sincronização entre processadores 19 7

8 Tratamento de Interrupções Dispositivo -> I/O Interrupt Segmentation Fault -> Error System Call -> Trap send message -> Trap Clock Interrupt First Level Int. Handler (FLIH), em Assembly - desabilita interrupções - salva contexto em tabela de processos/pcb - Cria nova pilha temporária no kernel - carrega no PC o end. do Vetor de Interrupções - habilita interrupções Tratador de interrupção específico(): - trata a interrupção (p.ex. Escreve/le dados de buffer do driver) - se algum processo foi desbloqueado então - retorna Dispatcher, em Assembly: - desabilita interrupções - carrega o contexto na CPU & mapeamento de memória do processo a ser executado - habilita interrupções Scheduler(): - insere o processo desbloqueado na fila de prontos - Escolhe próximo processo - retorna 20 Tratamento de Interrupções Etapas executadas quando ocorre uma interrupção Vetor de Interrupção: Localizado em endereço baixo de memória (núcleo) Uma entrada para cada tipo de interrupção (trap, clock, E/S) Cada entrada contém endereço para um procedimento tratador da interrupção (serviço de tratamento da interrupção) que identificará de qual dispositivo veio a interrupção. 21 8

9 Escalonamento Em sistemas multiprograma (multi-tarefa), a cada instante um ou mais processos podem estar no estado pronto, e.g.: Processos do sistema e de usuários Processos de vários usuários (sistema time-sharing) Mix de processos interativos e batch (simulação, folha de pagamento) Escalonador é responsável por gerenciar a fila de prontos, e escolher qual dos processos prontos vai ser o próximo a usar CPU (de acordo com as prioridades dos processos) Também é responsável por ajustar (aumentar/ diminuir) a prioridade dos processos 25 Objetivos do Escalonamento Não existe um algoritmo ideal, cada algoritmo persegue um objetivo. Por exemplo: Garantir justiça (fairness): cada processo ganha fatia igual da CPU Aumentar eficiência: manter utilização de CPU alta (próxima a 100%) Minimizar tempo de resposta (para processos interativos) Minimizar de tempo médio de permanência no sistema (Δt entre início-fim de processos batch) Maximizar vazão: maior número possível de processos processados por unidade de tempo Sempre que beneficia uma classe de processos, prejudica-se outras classes. 26 9

10 Escalonamento 1. Escalonamento de longo prazo ao ser criado, processo recebe uma prioridade (vai para uma fila dos prontos) 2. escalonamento de curto prazo ( dispatching ) Escolhe um dos processos da/s lista/s de prontos para executar Usa-se o termo Escolanamento para ambos Geralmente, o escalonamento de curto prazo dá um quantum de tempo (Δt) de CPU para cada processo. 27 Politica de Escalonamento Deve ser independente do mecanismo de troca de contexto da CPU Têm parâmetros que precisam ser ajustados para maximizar a satisfação média de todos os usuários e garantir execução eficiente das tarefas essenciais ao sistema (processos do sistema) Principal problema: o comportamento futuro de um processo não é previsível (quando fará uso intensivo da CPU, e quando fará E/S frequente) 29 10

11 Escalonamento de Curto Prazo ações e eventos que fazem um processo entrar na fila dos prontos 30 Formas de implementar o escalonador embutido na execução do processo Ao final do tratamento da interrupção, o procedimento para escalonamento é chamado Executa como parte do fluxo de controle do processo que estava em execução modo autónomo - executa como um processo independente (servidor PM do Minix) Pode estar dedicado a uma CPU em uma arquitetura multicore Em máquinas com 1 processador, é executado periodicamente Há uma alternância entre o processo escalonador e os demais processos 31 11

12 Tipos de Escalonamento Com relação: ao momento da invocação do escalonador: preemptivo: a cada clock tick escalonador verifica se processo corrente já expriou seu quantum de tempo, e se sim, interrompe-o, e escolhendo outro processo para executar não-preemptivo: escalonador só é chamado quando processo é bloqueado (chamda de sistema), ou termina ao método de seleção do processo mais prioritário: Uso da função P = Priority(p) Regra de desempate (para processos de mesma prioridade) Escolha randômica Cronológica (FIFO) Cíclica (Round Robin) 32 Escalonamento com prioridades Prioridade estática: não muda ao longo da execução de Processo; Prioridade dinâmica: muda em tempo de execução: Escalonador aumenta ou diminui dependendo do recente consumo de CPU Chamada nice (renice) pode diminuir a prioridade (root pode aumentar a prioridade) Implementando niveis de Prioridades: Implementado através de filas de pronto multi-nível (e.g. várias Ready Queue RQs). Sejam processos P e Q: P em RQ i executa antes de Q em RQ j se i>j Ordenação de P, Q na mesma RQ segue critério específico 33 12

13 Possíveis Parâmetros da Função Prioridade Internos (do sistema) Tipo do processo (sistema vs usuário) Quantidade de memória usada Tempo total de CPU requisitado Tempo de serviço obtido / alcançado Tempo total de permanência no sistema Externos Prazo para término de ação (Deadline) Prioridade do usuário: root vs normal (função na empresa, valor desembolsado) 37 First In First Out (FIFO) Execução por ordem de chegada (não preemtivo) Job A B C Tempo de CPU A B C Tempo médio de espera ( ) / 3 =

14 Shortest Job First (SJF) (Escalonamento não preemtivo para Job A B C processamento em lote) Tempo de CPU 8 B C A Tempo médio de espera ótimo: ( ) / 3 = Escolha Circular - Round Robin Processos prontos ficam eum uma fila de prontos Cada processo recebe um quantum de tempo de CPU. Após esgotar o tempo, é interrompido e posto no final da fila. Objetivo: justiça no atendimento de muitos processos centrados em E/S 42 14

15 Escolha Circular - Round Robin Sejam processos na fila com seus tempos de rajada: P1: 20 P2: 12 P3: 8 P4: 16 P5: 4 O Diagrama de Gannt e tempo médio de espera 43 Escalonamento com múltiplas filas (ML) Para sistemas com mix de processos interativos e em lote Processos são classificados segundo prioridade, e cada classe tem sua própria fila de prontos. Priority 1 Priority 2 Priority 3 Processos sistema Processos interativos Processos lote Seleciona todos de prioridade 1; a seguir, todos de prioriade 2, etc. Para evitar o problema de inanição (= alguns processos nunca ganham a vez), pode-se definir períodos de tempo máximos para cada categoria: por exemplo, 70% para 1, 20% para

16 ML Princípio Geral O ML é uma adaptação do escalonamento SJF para processos interativos, considerando o tempo efetivo de CPU entre requisições de E/S P1 P2 Ideia: Aumenta-se a prioridade de processos que devem fazer requisição de E/S antes de completar o quantum de tempo Principal problema: como descobrir qual dos processos prontos requisitará a CPU por menor período de tempo. 45 ML Princípio Geral Princípio adotado: Ajustar o próximo quantum de tempo, de acordo com o uso de quantums no passado. Exemplo: Seja T0 a estimativa anterior de tempo CPU necessário e T1 o tempo de CPU efetivamente usado na última vez. Então, a estimativa do próximo quantum, T2, deve ser ajustado por média ponderada: T2 = α*t1 + (1-α)*T0. Se α > 0.5 dá-se mais importância para o comportamento mais recente, e α < 0.5 maior importância para o comportamento mais no passado 46 16

17 Algorítmos de escalonamento Multiplos níveis com feedback - MLF (Multilevel with feedback): Similar ao ML, mas com uma prioridade que muda dinamicamente Todo processo começa no nível de prioridade mais alto n Cada nível de prioridade P prescreve um tempo máximo (fatia de tempo) t P t P aumenta à medida que P diminui geralmente: t n = Δt (constante) t P-1 = 2 t P 47 Filas em múltiplos níveis com feedback Idéia: Maior prioridade para processos que precisam de fatia (ou quantum) de tempo (Δt) menor. Se um processo repetidamente gasta todo seu quantum Δt, cai para o nível de prioridade abaixo. Priority 1 Queue 1x Δt Priority 2 Queue 2x Δt Priority 3 Queue 4x Δt Problema: processos longos, p.ex. que precisam de 100x Δt Percorrem 7 prioridades: 1, 2, 4, 8, 16, 32, 64 Grande vantagem para processos (I/O-bound) com alta frequência de E/S 48 17

18 Algorítmos de escalonamento Rate Monotonic (RM): Usado para processos periódicos (em sistemas de tempo real) Preemtivo Prioridade maior para menor período: P = d Earliest Deadline First (EDF): Usado para processos periódicos (tempo real) Preemtivo Prioridade maior para aquele com menor tempo até a próxima deadline: r % d d r % d P = (d r % d) tempo executado no período atual tempo residual no perídodo atual 50 Sistemas em lote FIFO, SJF, SRT: Comparação FIFO é o mais simples SJF/SRT possuem tempos médios de turnaround (# processos/tempo) menores Sistemas time-sharing Tempo de resposta é crítico RR puro ou MLF (c/ RR por nível) são apropriados A escolha do quantum de tempo q determina o overhead Quando q, RR se aproxima de FIFO Quando q 0, overhead de troca de contexto (TC) 100% Quando q >> overhead de TC, n processos executam desempenho 1/n CPU velocidade 51 18

19 Escalonamento no Minix 3 Algoritmo de escalonamento mul1- nível (16 níveis). Tarefas são escalonadas sem preempção. Demais processos com Round- Robin Adaptado: se processo desbloqueado ainda 1ver parte de seu quantum, é posicionado no começo da fila. Processos servidores tem quantum de tempo maior. Níveis de prioridade: Task_Q 1. Tarefas Sistema e Relógio 2. Tarefa Tty 3. Tarefas Disco, log e mem 4. Servidores RS e PM 5. Servidor FS User_Q 6. Processos usuário 7. Idle_Q 16. IDLE vetores rdy_head[16] e rdy_tail[16], apontam para o começo e final de cada fila Leitura: seção no livro do Tanenbaum e Woodhull Limitações do Modelo de Processos 1. Várias aplicações precisam executar funções inerentemente concorrentes, compartilhando estruturas de dados internas. Ex: servidores, monitores de transacões, protocolos de rede, etc. 2. Mas processos são entidades concorrentes que ocupam espaços de memória distintos 3. Arquiteturas multi-core permitem que se tenha paralelismo com compartilhamento de memória 75 19

20 Threads Thread = linha de execução independente dentro de um mesmo processo Multiplas threads são necessárias quando >1 pedidos de E/ S devem ser tratados concorrentemente, é necessário compartilhar alguns dados do processo (e.g. uma cache em um servidor de arquivos, ou conexões em um servidor Web; buffers internos) 76 Processos com 1 ou mais threads 77 20

21 Principais Características Cada thread tem a sua pilha própria, mas compartinha o mesmo espaço de memória do processo em que foi criada; Se duas threads executam o mesmo procedimento/método, cada uma terá a sua própria cópia das variáveis locais; As threads podem acessar todas os dados globais do programa, e o heap (memória alocada dinamicamente) Nesse acesso a dados globais, threads precisam ter acesso em regime de exclusão mútua (p.ex. usando locks()), pois não se sabe como as execuções de threads serão intercaladas 78 Exemplo de uso de threads Fig.: Um Editor de texto com três threads 79 21

22 Exemplo: Um servidor web com múltiplas threads 80 Pool de threads Cada thread executa um procedimento que consome um request R, processa-o e gera uma resposta 81 22

23 Programação com Threads Programação concorrente é mais complexa, pois o programador: não sabe em que ordem as threads irão executar mas precisa controlar o acesso concorrente a variáveis e/ou estruturas de dado compartilhadas/globais 82 Sincronização entre Threads int pthread_join( pthread_t tid, void* status ) // a thread invocadora é bloqueada até que a thread tid termina tid A threadid pela qual deseja-se esperar; status O valor de retorno da thread execurando o exit(), será copiada para s void main() { pthread_t tid; int status; pthread_create(&tid,null,thread_main,null);. pthread_join(tid, (void*) &status); } printf( Return value is: %d\n, status); } void *thread_main( ){ int result;... Pthread_exit((void*) result); 84 23

24 Exemplo de Uso de Threads #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 void *PrintHello(void *threadid) { printf("\n%d: Hello World!\n", threadid); /* do other things */ pthread_exit(null); /*not necessary*/ } int main() { pthread_t threads[num_threads]; int t; for(t=0;t < NUM_THREADS;t++) { printf("creating thread %d\n", t); pthread_create(&threads[t], NULL, PrintHello, (void *)t); } } for(t=0; t < NUM_THREADS; t++) pthread_join(threads[t],null); /* wait for all the threads to terminate*/ 85 Diagrama de estados de threads A1vo new ThreadExample(); Executando while ( ) { } New Thread thread.start(); Runnable Dead Thread Método run() retorna Blocked Object.wait() Thread.sleep() blocking IO call wai1ng on a monitor 86 24

25 Gerenciamento de Threads Ao contrário de processos, threads compartilham a mesma região de memória Cada thread possui sua própria pilha e contexto de CPU (conteúdo de PC, SP, registradores, PSW, etc.) Uma tread pode estar nos estados: running, blocked & ready 87 Gerenciamento processos vs threads 88 25

26 O Descritor de Thread Para cada thread, o kernel (ou biblioteca de threads) mantém a seguinte informação, que é mantida independente dos descritores de processos (PCBs) Contexto: program counter (PC) /* próxima instrução */ process status word (PSW) /* resultado da operação, ex: carry-bit */ stack pointer (SP) /* pilha de execução do thread */ registers /* conteúdo dos registradores da CPU */ state /* blocked, running, ready */ priority host_process /* processo hospedeiro ou kernel */ thread_id /* identificador do thread */ processid /* processo ao qual a thread pertence */ 89 Formas de Implementar Threads Kernel-level threads (1 para 1): thread é a unidade de escalonamento do núcleo A biblioteca de chamadas de sistema inclui operações para criar/ controlar threads Algoritmo de escalonamento é o implementado pelo núcleo Exemplos: Windows NT/XP/2000 Solaris (anterior à vers. 9) Linux: LinuxThreads ou "Native Posix Thread Library (NPTL) Apple: Multiprocessing Services Unix: NetBSD, FreeBSD User-level threads (N para 1): todas as threads do processo são mapeadas para única unidade escalonável do núcleo Se qualquer thread do processo fizer system-call, todo processo é bloqueado (não aproveita paralelismo de arquiteturas multi-core) políticas de escalonamento são implementadas na biblioteca de threads Exemplos: GNU Portable threads, Thread manager (Apple), Netscape Portable Runtime, State Threads, LWP (SunOS) POSIX P-threads, C-threads 26

27 Threads em Modo Usuário biblioteca de threads, com: - tabela de threads e - escalonador próprio 92 Biblioteca de threads em nível usuário: Escalonamento das threads de acordo com as necessidades do programa de aplicação. Quando uma thread requisita E/S, bloqueia todo o processo. Exemplos: POSIX P-threads, C-threads 93 Threads em modo Kernel (Lightweight Process) Kernel chaveia entre threads, independente do processo ao qual pertencem: Vantagens: As proprias funções do kernel podem ser concorrentes; Principais problemas: Troca de contexto entre threads precisa considerar proteção de memória (limites de processo) Cada troca de contexto (entre os LWP) requer um TRAP para o núcleo (troca modo usuário para modo supervisor) Fig.: Threads gerenciadas pelo núcleo 27

28 Tipos de Threads Threading híbrido (N-para-M): N theads de um processo são mapeadas em M threads do núcleo Mais difícil de implementar (pois os escalonadores do modo usuário e do modo kernel precisam se coordenar) troca de contexto entre threads intraprocesso não requer troca de contexto no inter-processo Exemplos: Microsoft Windows7, IRIX HP-UX Tru64 UNIX Solaris 8 Exemplo de 3 para 2 Mais informações em: Algumas Implementações POSIX Threads (P-threads) POSIX Threads = modelo de programação, coleção de interfaces que permitem criar, controlar e efetuar o escalonamento, a comunicação e a sincronização entre threads. Threads em modo kernel: Native POSIX Threading Library (NPTL) LinuxThreads (para Linux) Win32 Phtreads Threads em modo usuário: FSU Pthreads (SunOS 4.1.x, Solaris 2.x, SCO UNIX, FreeBSD and Linux) LPW (SunOS 3/4, mips-ultrix, 386BSD, HP-UX and Linux) PCthreads PThreads Mais informações em:

29 Prós e contras Threads implementados pelo núcleo: VANTAGENS: threads nível usuário não permitem E/S (ou chamadas de sistema) concorrentes è se uma thread bloqueia, todo o processo é bloqueado DESVANTAGENS: Troca de contexto é menos eficiente (requer troca entre modos: usuário kernel usuário) Kernel fica mais complexo (precisa implementar tabelas de threads e de processos) Desenvolvedor de aplicação tem menos controle sobre o escalonamento das threads de seu processo 97 Outras questões de projeto Implementação de threads precisa estar coerente com semântica de algumas system-calls. Por exemplo: O que ocorre se processo com >1 threads executa um FORK?, O processo filho deverá ter o mesmo número de threads do pai? E quando a thread do pai está esperando por E/S, e aparece interrupção sinalizando o término da E/S. As threads no processo pai e no filho recebem o dado? O que acontece se uma thread executa um close(fd) e arquivo fd ainda está em uso por outra thread? Em algumas bibliotecas malloc não é reentrante (possui estado). Portanto, pode haver problemas se >1 thread executam esta chamada concorrentemente. O que acontece se uma thread faz chamda de sistema, e antes que seja capaz de ler variável global errno, outra thread faz outra chamada a sistema e sobre escreve errno incial? Conclusão: quando suporte a threads é incluido no núcleo, a semântica de algumas chamadas de sistema precisa ser re-definida (e bibliotecas re-implementadas)

30 Comunicação Inter-processos (IPC) Existem inúmeras situações em que processos do sistema (ou do usuário) precisam interagir para se comunicar ou sincronizar as suas ações, por exemplo, no acesso compartilhado a dados ou recursos. Comunicação Inter-processos envolve: Sincronização entre execuções Transferência/compartilhamento de dados/ estado 100 Comunicação Inter-processos (IPC) è Processos e threads são entidades independentes, que podem ser executados em qualquer ordem. è A ordem de escalonamento é imprevisível. è Precisa-se de mecanismos para evitar problemas de consistência dos dados compartilhados decorrentes da execução concorrente. recurso compartilhado IPC entre processos Dado compart. IPC entre threads

31 Comunicação e Sincronização entre Processos: Duas Abordagens 1. Baseada em memória compartilhada Assume que processos/threads conseguem escrever & ler em memória compartilhada Comunicação é implícita (através do comparilhamento) mas Sincronização precisa ser explicita 2. Baseada em troca de mensagens Comunicação é explicita; Sincronização é impícita (processos bloqueiam nas primitivas) Dados thread thread process data process send(msg) receive(msg) Na comunicação entre processos (Inter-Process Communication - IPC), o principal problema são as condições de corrida. 102 Condição de Corrida Os problemas de consistência decorrentes do indeterminismo da ordem de execução de processos. Dois processos querem acessar uma memória compartilhada de forma concorrente. Exemplo: processo A lê memória compartilhada in=7, e logo depois é interrompido, Processo B faz o mesmo e adiciona um novo arquivo no diretório de spool de impressão Quando A re-inicia, sobre-escreve o slot 7 com seu arquivo

32 Condição de Corrida Ocorre sempre que: existem dois ou mais processos concorrentes Cada processo precisa executar um conjunto de ações (a 1,..a N ) que envolvem mais de um dado/recurso compartilhado, e os dados/recursos precisam manter um estado consistente entre sí; antes que complete a execução de todo o conjunto de ações, um dos processos é interrompido pelo outro Processo A: A1 A2 A3 w x w Dado1 Recurso1 Dado2 r x Processo B: B1 B2 B3 104 Condição de Corrida Problemas associados 1. Ausência de atomicidade das ações feitas em dados compartilhados (requer exclusão mútua ou bloqueio) 2. Processos tentam acessar dados compartilhados que ainda não estão prontos para serem acessados 3. Operações simultâneas (não previstas) se bloqueiam mutuamente è Para permitir uma cooperação correta entre processos é preciso: Fazer um processo esperar pelo outro (sincronizar) Garantir que algumas seq. de operações ocorram de forma atômica (indivisível)

33 Região Crítica Região crítica (ou Sessão crítica) = parte do programa em que estão as ações (sobre recursos compartilhados) precisam ser em exclusão mútua Para solucionar o problema das regiões críticas alguns requisitos precisam ser satisfeitos: Exclusão Mútua: Se um processo P i está executando sua região crítica nenhum outro poderá executar a sua região crítica Progresso: Nenhum processo fora de sua região crítica pode bloquear outro processo Espera Limitada: Um processo não pode esperar indefinidamente para entrar em sua região crítica 108 Usando Regiões Críticas Process {!!!Enter-Region()!!copy file to Spooler[in];!!in = (in+1)%slots;!!exit-region()!! }!! Spooler {! while(1) {!!Enter-Region();!!print Spooler[out];!!out = (out+1)%slots;!!enter-region();! }! }!

34 Região Crítica Para implementar uma região crítica deve haver um mecanismo/protocolo para garantir a entrada e saida segura (sincronizada, coordenada) desta desta parte do código. Código em um processo: Enter_region; // bloqueia se outro processoe estiver dentro A1; A2; A3; Exit_region; // sai da região, e libera outros processos esperando Veremos agora algumas possíveis abordagens e mecanismos 110 Região Crítica Exclusão mútua usando Regiões Críticas

35 Exclusão Mútua com Espera ocupada (Busy Waiting) Possibilidades: 1. Desabilitar interrupções: è Pode ser usado em modo supervisor, mas não em modo usuário 2. Usar uma flag lock compartilhada: se lock=0, trocar valor para 1 e processo entra RC, senão processo espera è Se leitura & atribuição do lock não for atômica, então o problema permanece 3. Alternância regular de acesso por dois processos (PID= 0; PID= 1) è É um problema, se os processos alternantes requisitam o recurso com alta frequência 112 Região Crítica com Espera Ocupada Solução de Peterson: turn e vetor interested[] são variáveis compartilhadas Se dois processos PID = {0,1} executam simultaneamente enter_region, o primeiro valor de turn será sobreescrito (e o processo correspondente vai entrar), mas interested[first] vai manter o registro do interêsse do segundo processo

36 Exclusão Mútua com Espera Ocupada TSL (Test-and-Set-Lock) = instrução de máquina atômica para leitura de um lock para um registrador e atribuição de um valor diferente de zero ( 0) Processos que desejam entrar RC executam TSL: se registrador (e lock=0), então ntram na RC, senão esperam em loop 114 Espera Ocupada vs. Bloqueamento Solução de Peterson e TSL apresentam o problema que o loop de espera consome ciclos de processamento. Outro possível Problema: Inversão de prioridades Se um processo com baixa prioridade estiver na RC, demorará mais a ser escalonado (e a sair da RC), pois os processos de alta prioridade que esperam pela RC estarão em espera ocupada. A alternativa: Primitivas que bloqueiam o processo e o fazem esperar por um sinal de outro processo: Por exemplo: sleep :: suspende o processo até que seja acordado wakeup(pid) :: envia sinal para acordar o processo PID

37 Espera Ocupada vs. Bloqueamento P1 P2 P1 P2 Enter()! Enter()! Enter()! Enter()! Critical region Critical region Exit()! Exit()! Exit()! Exit()! Espera Ocupada: funciona para arquiteturas multi-core kernel Bloqueamento:.o núcleo garante atomicidade 116 Problema do Produtor e Consumidor Sincronização de 2 processos que compartilham um buffer (um produz itens, o outro consome itens do buffer), e que usam uma variável compartilhada count para controlar o fluxo de controle. se count=n, produtor deve esperar, e se count=0 consumidor deve esperar, Qualquer processo deve acordar o outro quando estado do buffer permite prosseguimento do processamento 4 count Produtor buffer Consumidor Esse tipo de sincronização está relacionada ao estado do recurso è Sincronização de condição

38 Problema do Produtor e Consumidor Condição de corrida: consumidor verifica que count=0, mas antes que execute sleep, o produtor é escalonado, acrescenta item e executa wakeup. Mas como consumidor ainda não executou sleep, este não receberá o aviso de prosseguir. Consumidor ficará bloqueado para sempre, e sistema entrará em um impasse. 118 Semáforos Em 1965 E.W. Dijkstra (1965) propôs o conceito de semáforos como mecanismo básico para sincronização entre processos. A inspiração: sinais de trens

39 Semáforos Um semáforo é uma variável inteira não negativa que pode ser manipulada por duas instruções P (Down) e V (Up) As modificações feitas no valor do semáforo usando Down e Up são atômicas No caso da exclusão mútua as instruções Down e Up funcionam como protocolos de entrada e saída das regiões críticas. Down é executada quando o processo deseja entrar na região crítica. Decrementa o semáforo de 1 Up é executada quando o processo sai da sua região crítica. Incrementa o semáforo de Semáforos - Operações Um semáforo é um objeto do núcleo. Para cada semáforo s existem duas operações (P/V, Down/Up ou wait/signal): Down(&s) :: verifica se pode entrar na Região crítica, e se não puder, bloqueia; Up(&s) :: avisa que deixou região crítica, e causa o desbloqueio de um úncio processo bloqueado no semáforo;

40 Semáforo - Implementação Trata-se de um contador que representa o número de processsos que podem entrar em uma Região Crítica. A cada semáforo está associado uma lista de processos bloqueados. Semântica das operacões: Down(s) :: se s=0 processo invocador bloqueia nesta chamada. Se s 0, decrementa s e continua execução Up(s) :: incrementa s, desbloqueia um dos processos bloqueados (se houver) e continua execução p2 p6 up(s) down(s) s.val s.list p1 p4 p3 p5 Fila de Processos bloqueados Operações Down e Up geralmente são implementadas como chamadas do núcleo (system call), e durante a sua execução o núcleo desabilita temporariamente as interrupções (para garantir a atomicidade) 122 Semáforos - Implementação

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

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

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

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. Processos e Threads. Processos e threads

Capítulo 2. Processos e Threads. Processos e threads Capítulo 2 Processos e Threads 1 Processos e threads 1. Processos 2. Threads 3. Comunicação inter processos (IPC) 4. Problemas clássicos de IPC 5. Escalonamento (Scheduling) 2 1 Processos: O modelo de

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

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

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

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Multiprogramação Permite a execução de diversos processos concorrentemente Maior

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

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 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 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

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

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

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

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

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

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

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

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

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

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

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron alexandre.a.giron@gmail.com Sistemas Operacionais 2014 Introdução Alexandre Augusto Giron alexandre.a.giron@gmail.com Roteiro Sistemas Operacionais Histórico Estrutura de SO Principais Funções do SO Interrupções Chamadas de Sistema

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

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

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

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

Gerência do Processador

Gerência do Processador Andrique Amorim www.andrix.com.br professor@andrix.com.br Gerência do Processador Desenvolvimento web II IMPORTANTE SABER Desenvolvimento web II DEADLOCK (interbloqueio, blocagem, impasse) Situação em

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência do processador 2 a edição Capítulo 4 Revisão: Fev/2003 Sumário Implementação do conceito de processos e threads Escalonamento Escalonadores não -preemptivos Escalonamento

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sumário 2 a edição Revisão: Fev/2003 Sistemas Operacionais Gerência do processador Capítulo 4 Implementação do conceito de processos e threads Escalonamento Escalonadores não -preemptivos Escalonamento

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: 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 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

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

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

7 Processos. 7.1 Introdução

7 Processos. 7.1 Introdução 1 7 Processos 7.1 Introdução O conceito de processo é a base para a implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não se importando com qual programa

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 Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

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

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

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

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo. gerenciamento de processos Objetivo Compreender a maneira como o sistema operacional controla o gerenciamento dos programas em execução por meio do gerenciamento de processos no qual cada processo representa

Leia mais

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Escalonamento de Processo Prof. Dr. Márcio Andrey Teixeira Quando um computador é multiprogramado, ele muitas vezes tem variados processos que competem pela CPU ao mesmo tempo; Essa

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

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

sockets interprocess communication Taisy Weber

sockets interprocess communication Taisy Weber sockets interprocess communication Taisy Weber Comunicação entre processos Mecanismos Pipes, FIFO (named pipes), semáforos, message queues. Memória compartilhada. Sockets Definição, chamadas de sistemas,

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

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

Escalonamento no Linux e no Windows NT/2000/XP

Escalonamento no Linux e no Windows NT/2000/XP Escalonamento no Linux e no Windows NT/2000/XP 1 Escalonamento no Linux Os requisitos do escalonador do Linux eram: Apresentar boa performance em programas interativos, mesmo com carga elevada; Distribuir

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

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux System API Máquinas virtuais System ISA (Instruction Set Architecture) Aplicações Chamadas ao sistema Sistema de Operação Hardware User ISA (Instruction Set Architecture) Uma máquina virtual executa software

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

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

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

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola SO - Conceitos Básicos Introdução ao Computador 2010/01 Renan Manola Definição de SO É uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. É uma estrutura

Leia mais

Gerência de processos Requisitos fundamentais

Gerência de processos Requisitos fundamentais Requisitos fundamentais Implementar um modelo de processo. Implementar facilidades para criação e destruição de processos por usuários Alocar recursos a processos Intercalar a execução de um número de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

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 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

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas Apoio à Programação Distribuída bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas flexibilidade de programação disponibilidade da ferramenta facilidade de desenvolvimento e reuso

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

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

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software Resumo até aqui Complexidade do computador moderno, do ponto de vista do hardware Necessidade de abstrações software Sistema computacional em camadas SO como uma máquina estendida abstrações SO como um

Leia mais

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos A diferença mais importante entre os Sistemas Distribuídos e os Sistemas Uniprocessadores é a comunicação inter-processo. Nos uniprocessadores esta comunicação é feita

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Sincronização entre Processos Andreza Leite andreza.leite@univasf.edu.br Sincronização Freqüentemente, os processos precisam se comunicar com outros processos. Isto ocorre quando

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

Redes de Computadores (PPGI/UFRJ)

Redes de Computadores (PPGI/UFRJ) Redes de Computadores (PPGI/UFRJ) Aula 1: Apresentação do curso e revisão de interface de sockets 03 de março de 2010 1 2 O que é a Internet 3 4 Objetivos e página do curso Objetivos Apresentar a motivação,

Leia mais

Sincronização de Processos (1) Mecanismos de busy wait

Sincronização de Processos (1) Mecanismos de busy wait Sincronização de Processos (1) Mecanismos de busy wait Condições de Corrida Exemplo: Fila de impressão. Qualquer processo que queira imprimir precisa colocar o seu documento na fila de impressão (compartilhada).

Leia mais

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013 MC714 Sistemas Distribuídos 2 semestre, 2013 Tipos de comunicação Middleware: serviço intermediário na comunicação de nível de aplicação. Fig. 67 Ex.: correio eletrônico Comunicação é persistente. Middleware

Leia mais

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc.

Usuários. Aplicativos e programas dos usuários. Kernel gerenciamento de processos, memória, sistema de arquivos, I/O, etc. 1 1.0 Kernel O kernel (núcleo) representa o coração do Sistema Operacional. Atribuições do kernel: - gerenciamento dos arquivos em disco; - inicializar programas e executá-los; - alocar e gerenciar memória

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Módulo 4 - ENTRADAS E SAIDAS Uma das principais funções dos sistemas operacionais é controlar os dispositivos de entrada e saída (E/S ou I/O). O Sistema Operacional deve ser capaz de enviar comandos

Leia mais

Métodos de Sincronização do Kernel

Métodos de Sincronização do Kernel Métodos de Sincronização do Kernel Linux Kernel Development Second Edition By Robert Love Tiago Souza Azevedo Operações Atômicas Operações atômicas são instruções que executam atomicamente sem interrupçã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

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

Concorrência e Paralelismo

Concorrência e Paralelismo Concorrência e Paralelismo mleal@inf.puc-rio.br 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

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

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 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

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br TI Básico Sistemas Operacionais Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br Objetivos dos Sistemas Operacionais Esconder a Complexidade do Hardware. Devido a grande

Leia mais

Revisão geral SO 09/10

Revisão geral SO 09/10 Revisão geral SO 09/10 Histórico (de acordo com Tanenbaum) Primeira geração (1945-55) Máquinas com tubo à vácuo e plugboards Perfuradoras de cartão Cálculos numéricos simples Nenhuma linguagem ou SO presentes

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia Processo Profº Antonio Carlos dos S. Souza Estrutura do Processo Contexto de Software Contexto de Hardware Programa Espaço

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Módulo 1 - GERÊNCIA DE PROCESSOS Antes de abordarmos os temas específicos relacionados a Sistemas Operacionais Abertos é necessário revisarmos a teoria da disciplina Sistemas Operacionais, onde o Universitário

Leia mais

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br

Sistemas Operacionais. Alexandre Meslin meslin@inf.puc-rio.br Sistemas Operacionais Alexandre Meslin meslin@inf.puc-rio.br Ementa Apresentação do curso Cap1 - Visão Geral Cap2 - Conceitos de Hardware e Software Cap3 - Concorrência Cap4 - Estrutura do Sistema Operacional

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

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

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

É a associação de mais de um fluxo de execução em um único processo.

É a associação de mais de um fluxo de execução em um único processo. Profa. Rita Rodorigo Threads Um processo é uma abstração que reúne uma série de atributos como espaço de endereçamento descritores de arquivos abertos, quotas, etc. Um processo possui ainda uma área de

Leia mais

Tipos de sistemas operacionais

Tipos de sistemas operacionais Tipos de sistemas operacionais Sistemas Operacionais de Computadores de Grande Porte Sistemas Operacionais para Servidores Sistemas Operacionais de Multiprocessadores Sistemas Operacionais para Computadores

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Introdução Os sistemas operativos implementam mecanismos que asseguram independência entre processos (i.e., a execução de um processo

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

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

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress. Sistemas Operacionais Aula 3 Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.com Nunca cone em um computador que você não pode jogar pela janela.

Leia mais

Sobre a apresentação (About(

Sobre a apresentação (About( Capítulo 4: Threads Sobre a apresentação (About( the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2005. Esse apresentação foi modificada por Cristiaino

Leia mais

Mecanismo de Interrupção

Mecanismo de Interrupção Mecanismo de Interrupção Paralelismo de Operação Num sistema multiprogramado a CPU está sempre apta a compartilhar o seu tempo entre os vários programas e os diferentes dispositivos periféricos que necessitam

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

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