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

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

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

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

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

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

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

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

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

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

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

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

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

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

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

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

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

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

Gerência de Processador

Gerência de Processador Gerência de Processador Prof. Edwar Saliba Júnior Junho de 2009 Unidade 03-003 Gerência de Processador 1 Introdução Com o surgimento dos sistemas multiprogramáveis, onde múltiplos processos poderiam permanecer

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

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

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

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

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

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

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

Monitores. Conceito Sistemas Operacionais II

Monitores. Conceito Sistemas Operacionais II Monitores Conceito Sistemas Operacionais II Monitores Autores Daniel Artur Seelig Fábio Lutz Local Universidade Federal do Rio Grande do Sul Instituto de Informática Sistemas Operacionais II Professor

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

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

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 GERÊNCIA DO PROCESSADOR MACHADO/MAIA: CAPÍTULO 08 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento do Processador A gerência do processador pode ser considerada a atividade

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

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

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

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

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação

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

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

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

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

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

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

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

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos)

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos) 4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos) Para implementar o compartilhamento da CPU entre diversos processos, um sistema operacional multiprogramável deve possuir um critério para determinar,

Leia mais

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor Comunicação em Sistemas Distribuídos Paradigma / Os processos em um SD estão lógica e fisicamente separados. Precisam se comunicar para que possam interagir O desempenho de um SD depende criticamente do

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 04 - Concorrência Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007. Mono x Multiprogramação

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 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO E/S PROGRAMADA QUANDO A CPU FAZ TODO O TRABALHO RELACIONADO A UMA OPERAÇÃO DE E/S, NO CASO DO PROCESSO QUERER IMPRIMIR (NA IMPRESSORA) ABCDEFGH : ESTES CARACTERES SÃO COLOCADOS EM UMA ÁREA DE MEMÓRIA DO

Leia mais

Estruturas do Sistema de Computação

Estruturas do Sistema de Computação Estruturas do Sistema de Computação Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Estruturas do Sistema de

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

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

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano Sistemas Operacionais Marcos Laureano 1/28 Roteiro Tipos de Tarefas Preempção Escalonamento de processos Tipos de escalonamentos 2/28 Tipos de Tarefas (temporal) Tarefas de tempo real Previsibilidade em

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

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

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

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

Introdução aos Sistemas

Introdução aos Sistemas Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas

Leia mais

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim Conceitos de Sistemas Operacionais: Chamadas de Sistema Prof Rafael J. Sandim Conceitos de Sistema Operacional Interface entre o SO e os Programas de usuário é definida pelo conjunto de instruções estendidas

Leia mais

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015 Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres Fundamentos de Sistemas Operacionais UNIP/2015 Disciplinas FUNDAMENTOS DE SISTEMAS OPERACIONAIS Horários Quarta-feira Fundamentos de Sistemas

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito

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

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

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 4.1 Introdução Capítulo 4 Gerência

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

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

ENTRADA E SAÍDA DE DADOS

ENTRADA E SAÍDA DE DADOS ENTRADA E SAÍDA DE DADOS Os dispositivos de um computador compartilham uma única via de comunicação BARRAMENTO. BARRAMENTO Elétrica/Mecânica + Protocolo. GERENCIAMENTO DE E/S O controle da troca de dados

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

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

Sistemas Operacionais

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

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Gerência de Processador

Gerência de Processador Gerência de Processador mbientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Multiprogramação Torna mais eficiente o aproveitamento dos recursos computacionais

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

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador A partir do momento em que diversos processos podem

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

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 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.1 Introdução Tipos de Sistemas Operacionais Sistemas Monoprogramáveis / Monotarefa Voltados tipicamente para a execução de um único programa.

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais