Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira
|
|
- Aurélia Mendes Bennert
- 8 Há anos
- Visualizações:
Transcrição
1 Sistemas Operacionais Técnicas de Implementação de Exclusão Mútua Aula VI Prof. Rosemary Silveira
2 Tópicos de Apresentação Condições de Corrida Técnicas de Implementação de Exclusão Mútua
3 Condições de Corrida Como o sistema operacional determina, através da política de escalonamento, o processo que vai executar e por quanto tempo, não se sabe a priori em que ordem dois processos ativos irão executar. Situações nas quais dois ou mais processos acessam concorrentemente as mesmas posições de memória ou arquivo compartilhado e o valor final contido nestas posições depende da ordem na qual os processos foram executados são chamadas de condições de corrida (race conditions). A existência de condições de corrida em um sistema pode levar a resultados inesperados, devido ao não-determinísmo inerente a estas condições.
4 Condições de Corrida As condições de corrida levam geralmente a resultados inesperados, por isto, devem ser evitados. É necessário assegurar que outros processos sejam impedidos de usar uma variável compartilhada ou arquivo compartilhado que já estiver em uso por outro processo. A serialização da execução garante que uma porção de código seja executada somente por um processo de cada vez. A exclusividade na execução de partes de código é garantida por mecanismos que implementam a exclusão. A parte do código protegida pelos mecanismos de exclusão é denominada região crítica.
5 Exclusão Mútua Os mecanismos de exclusão devem garantir que jamais dois ou mais processos estejam dentro da mesma região crítica simultaneamente. A implementação da exclusão pode ser feita de duas maneiras: Espera ocupada (busy waiting) O processo espera a permissão de entrada na seção crítica em um loop de teste de permissão: while (vez!= minha) A espera ocupada desperdiça CPU, só é interessante utilizá-la quando se sabe que a espera é pequena. Bloqueio de processos O processo que espera a permissão de entrada na seção crítica executa uma primitiva que causa o seu bloqueio até que a seção crítica seja liberada. if (vez!= minha) sleep(); O bloqueio ocasiona troca de contexto entre processos -> esperas longas.
6 Exclusão Mútua Uma boa solução para o problema de exclusão deve garantir os seguintes requerimentos: 1) exclusão se o processo P1 está executando na seção crítica, nenhum outro processo pode estar executando nesta seção crítica simultaneamente. 2) progresso Se não há processo executando na seção crítica e existem processos querendo entrar nela, somente os processos que desejam executar a seção crítica devem participar na decisão de que processo pode acessála. Caso contrário, pode-se retardar a execução de processos indefinidamente. 3) Espera limitada (bounded waiting) Deve existir um limite no número de vezes que outros processos acessam a região crítica quando um processo está esperando entrar nela.
7 1) Inibição de interrupções O processo que deseja acessar a região crítica desabilita as interrupções logo depois de entrar na sua região crítica e reabilita imediatamente antes de sair dela. Desabilitando as interrupções, não pode ocorrer qualquer interrupção do relógio e assim o processo não pode ser interrompido pelo escalonador. A CPU é alternada de processo em processo somente como um resultado de interrupção do relógio ou de outra interrupção. Uma vez que tenha desabilitado as interrupções, um processo pode verificar e atualizar a memória compartilhada sem temer a intervenção de um outro processo.
8 1) Inibição de interrupções Características do algorítmo: exclusão, progresso e espera limitada. Problemas: Não é prudente dar aos processos dos usuários o poder de desligar as interrupções. Por ser uma função crítica, a inibição de interrupções geralmente só pode ser executada em modo kernel. Esta técnica é inadequada para mecanismo geral de exclusão para processos de usuário. Desabilita_interrupções(); /* executa a região crítica */ x = x + 1; Habilita_interrupções();
9 Implementação de exclusão com Espera Ociosa 2) Alternância obrigatória Neste caso, cada processo tem a sua vez de entrar na região crítica. A vez de entrar na região crítica é controlada pela variável turn (vez). Características do algoritmo: Exclusão. Problemas: O algoritmo só permite entrada alternada de dois processos na região crítica. Se os dois processos possuem velocidades diferentes de execução do loop, pode ocorrer que um dos processos seja bloqueado por um processo que não está em sua região crítica. while (TRUE) {Processo P1 { while (turn!= 0) /* laço */ ; regiao_critica(); turn = 1; regiao_nao_critica(); while (TRUE) {Processo P2 { while (turn!= 1) /* laço */ regiao_critica(); turn = 0; regiao_nao_critica();
10 Implementação de exclusão com Espera Ociosa 3) Solução de Peterson Todo processo p que deseja executar uma região crítica deve fazer: entra_regiao(p); /* região_crítica */ sai_regiao(p) Características do algoritmo: exclusão, progresso e espera limitada. Problemas: Este algoritmo resolve o problema da região crítica somente para dois processos. Apresenta o defeito de precisar de espera ociosa. Pode ocasionar problema da inversão de prioridade. #define N 2 /*número processos */ int turn; int interested[n]; /* valores iniciais iguais a zero */ void enter_region(int process); { int other; other = 1 process; interested[process] = TRUE; turn = process; while (turn== process && interested[other]== TRUE) ; void leave_region(int process) { interested[process] = FALSE;
11 Implementação de exclusão com Espera Ociosa 4) Solução que utiliza hardware adicional Na maioria das máquinas comerciais existem algumas instruções de hardware que auxiliam a implementação da exclusão. Estas instruções testam e setam um valor de maneira indivisível. Características do algoritmo: exclusão, progresso e espera limitada. enter_region TSL REGISTER, LOCK /* copia lock para o registrador e põe lock em 1 */ CMP REGISTER, #0 JNE enter_region RET leave_region MOVE LOCK, #0 RET Problemas: Este algoritmo resolve o problema da região crítica somente para dois processos. Apresenta o defeito de precisar de espera ociosa. Pode ocasionar problema da inversão de prioridade.
12 Implementação de Exclusão Mútua com Bloqueio de Processos Vantagens quanto a implementação de exclusão por espera ociosa: Evitar o desperdício de CPU. Evitar o problema de prioridade invertida Considere um computador com dois processos: H, com alta prioridade L, com baixa prioridade As regras de escalonamento em que H é executado sempre que tiver pronto. Em certo momento, com L em sua região crítica, H torna-se pronto para executar. Agora H inicia uma espera ociosa, mas como L nunca é escalonado enquanto H está executando, L nunca tem oportunidade de deixar sua região crítica, e assim, H fica em um laço infinito.
13 1) Uso de Primitivas (usado para implementar o bloqueio de processos à espera da região crítica): Exemplos: Sleep e Wakeup sleep: bloqueia o processo que a chamou Wakeup: desbloqueia os processos que estão esperando pela região crítica 2) Uso de Semáforo Variável inteira que só admite valores positivos. Duas operações indivisíveis podem ser executadas sobre um semáforo: down - decrementa o valor do semáforo se este for maior que zero. - se o valor do semáforo for zero, o processo que executou a operação é bloqueado. up - incrementa o valor do semáforo e acorda os processos que estiverem bloqueados no semáforo.
14 3) Uso de Monitores Mecanismo de alto nível para a sincronização de processos. Conjunto de procedures e dados agrupados por módulos. Os processos só podem chamar os procedimentos, nunca acessando diretamente os dados. Características importantes: Não pode haver dois processos ativos dentro do monitor simultaneamente. Quem se preocupa em garantir a exclusão é o compilador e não o programador. Problema: o conceito de monitor deve estar contido na linguagem de programação e a maioria das linguagens atuais não suporta este conceito. 3) Uso de Variáveis de Condição Variáveis utilizadas para ordenar a execução de diferentes processos. Permite que um processo se bloqueie esperando uma ação de outro processo. Existem duas operações sobre as variáveis de condição: - wait: bloqueia processo - Signal: acorda processos bloqueados
15 Exemplo de utilização de mecanismos de exclusão Problema: Produtor-Consumidor Neste problema, dois processos compartilham um buffer de tamanho fixo. Um processo escreve dados no buffer e o outro retira dados do buffer. Como o buffer tem tamanho fixo, deve-se ter uma variável que controle o número de mensagens no buffer. Para que o processo produtor não escreva no buffer cheio e o processo consumidor não retire dados do buffer vazio, o número de mensagens no buffer é uma variável compartilhada e o acesso a ela pode levar a condições de corrida.
16 Problema do Produtor-Consumidor 1) Solução utilizando as primitivas Sleep e Wakeup Características do algoritmo: Não garante exclusão, nem progresso e nem espera limitada. Problemas: Acarreta condição disputa, pelo fato de a variável count ter acesso irrestrito. Situação: Escalonador executa inicialmente consumidor com count igual a zero. Em seguida executa produtor com buffer vazio. Quando for executado novamente o consumidor, com count ainda igual a zero, ele irá dormir para sempre. Mais tarde o produtor poderá preencher o buffer inteiro e também dormirá para sempre. #define N 100 int count = 0 void procedurer(void) { int item; while (TRUE) { item = procedure_item(); if (count == N) sleep(); insert_item(item); count = count + 1; if (count == 1) wakeup(consumer); void consumer(void) { int item; while (TRUE) { if (count == 0) sleep(); item = remove_item(); count = count 1 if (count == N-1) wakeup(producer) consume_item(item);
17 Problema do Produtor-Consumidor 2) Solução utilizando semáforo Garante que uma vez iniciada uma operação de semáforo, nenhum outro processo pode ter acesso a este até que a operação tenha terminado ou sido bloqueada. O semáforo mutex é usado para garantir exclusão. Os outros semáforos são voltados para sincronização, ou seja, asseguram que o produtor pare de executar quando o buffer estiver cheio ou quando o buffer estiver vazio. Características do algoritmo: exclusão, progresso e espera limitada. #define N 100 semphore mutex=1; semaphore empty=n; semaphore full=0; void procedurer(void) { int item; while (TRUE) { item = procedure_item(); down(&empty); down(&mutex); insert_item(item); up(&mutex); up(&full); void consumer(void) { int item; while (TRUE) { down(&full); down(&mutex); item = remove_item() up(&mutex); up(&empty); consume_item(item);
18 Problema do Produtor-Consumidor 3) Solução utilizando semáforo Problemas: Deve-se ter cuidado na ordem do uso dos semáforos, pois pode levar a condições de erros como deadlock e condições de disputa. Situação: Suponha que os dois downs no código do produtor sejam invertidos, de modo que o mutex seja decrescido antes do empty. Se o buffer estivesse completamente cheio, o produtor seria bloqueado como mutex em zero. Quando o consumidor tentasse ter acesso ao buffer, faria down em mutex e seria bloqueado também. #define N 100 semphore mutex=1; semaphore empty=n; semaphore full=0; void procedurer(void) { int item; while (TRUE) { item = procedure_item(); down(&empty); down(&mutex); insert_item(item); up(&mutex); up(&full); void consumer(void) { int item; while (TRUE) { down(&full); down(&mutex); item = remove_item() up(&mutex); up(&empty); consume_item(item);
19 Problema do Produtor-Consumidor 4) Solução utilizando Monitores Coleção de procedimentos, variáveis e estruturas de dados, tudo isso agrupado em um tipo especial de módulo (pacote). Processos podem chamar os procedimentos quando quiserem, mas não podem ter acesso direto a parte interna deste. Permite que apenas um processo fique ativo em um monitor em dado momento. É o compilador que providencia a exclusão. Uso de variáveis condicionais, com duas operações sobre ela: wait e signal. Características do algoritmo: exclusão, progresso e espera limitada. Problemas: Em sistemas distribuídos, formado por múltiplas CPUs, cada qual com sua própria memória privada e conectada por uma rede local, essas primitivas tornam-se inaplicáveis. Monitor ProducerConsumer condition full, empty; integer count; procedure insert(item: integer); begin if conunt = N then wait(full); insert_item(item); count := count + 1; if count=1 then signal(empty); end; function remove: integer; begin if (count = 0) then wait(empty); remove = remove_item; count := count 1; if (count = N -1) then signal(full) end monitor;
20 Monitor ProducerConsumer condition full, empty; integer count; procedure insert(item: integer); begin if conunt = N then wait(full); insert_item(item); count := count + 1; if count=1 then signal(empty); end; function remove: integer; begin if (count = 0) then wait(empty); remove = remove_item; count := count 1; if (count = N -1) then signal(full) end monitor; procedure producer; begin while true do begin item = produce_item; ProducerConsumer.insert(item); end; end; produce consumer; begin while true do begin item = ProducerConsumer.remove; consume_item(item); end; end;
21 Problema do Produtor-Consumidor 5) Solução utilizando Troca de Mensagens Usa duas primitivas de comunicação, send e receive (chamadas de sistema) Resolve este problema apenas com troca de mensagem, sem uso de memória compartilhada. Características do algoritmo: Problemas: exclusão, progresso e espera limitada. Apresentam problemas complexos relativos a comunicação. #define N 100 void producer(void); { int item; message m; while (TRUE) { item = produce_item(); void consumer(void) { int item, i; message m; receive(consumer, &m); build_message(&m, item); send(consumer, &m); for (i=0; i<n;i++) send(producer, &m); while (TRUE) { receive(producer, &m); item = extract_item(&m); send(producer, &m); consumer_item(item);
22 Métodos de Sincronização envolvendo vários processos 1) Problema do Jantar dos Filósofos Solução dirigida a grupos de processos, em vez de situações que envolve dois processos. Útil para modelar processos que competem pelo acesso exclusivo a um número limitado de recursos. Descrição : A vida do filósofo consiste em alternar períodos de comer e pensar. Quando um filósofo fica com fome, ele tenta pegar os garfos à sua direita e a sua esquerda. Se o filósofo conseguir pegar, ele comerá e em seguida devolverá. Solução 1: #define N 5 void philodopher(int i) { while(true) { think(); take_fork(i); take_fork((i+1)%n); eat(); put_fork(i); put_fork((i+1)%n); Problemas: Pode ocorrer deadlock, se todos os filósofos tentarem pegar seus garfos simultaneamente. Neste caso, nenhum será capaz de pegar o garfo a sua direita.
23 Métodos de Sincronização envolvendo vários processos 1) Problema do Jantar dos Filósofos Solução para Primeiro Problema: Depois de pegar o garfo esquerdo, verificar se o garfo direito está disponível. Se não tiver, o filósofo devolverá o garfo esquerdo. Problemas: Pode ocorrer que todos os processos continuem executando indefinidamente, mas falhem ao tentar progredir (inanição starvation) Solução 1: #define N 5 void philodopher(int i) { while(true) { think(); take_fork(i); take_fork((i+1)%n); eat(); put_fork(i); put_fork((i+1)%n); Situação: Todos os filósofos podem começar simultaneamente executando, pegando seus garfos esquerdo e vendo que seus direitos não estão disponíveis, neste caso todos devolveriam os garfos e permaneceriam para sempre.
24 Métodos de Sincronização envolvendo vários processos 1) Problema do Jantar dos Filósofos Solução para Segundo Problema: Protege os cinco comandos que seguem a chamada think com um semáforo binário. Não apresenta inanição (starvation) e nem deadlock. Problemas: Apresenta problema de desempenho, pois apenas um filósofo poderá estar comendo a qualquer instante. Solução 2: #define N 5 #define LEFT (I+N-1)%N #define RIGHT (i + 1)%N #define THINKING 0 #define HUNGRY 1 #define EATING 2 int state[n]; semaphore mutex=1; semaphore s[n]; void philosopher(int i) { while (TRUE) { think(); take_forks(i); /* pega dois garfos*/ eat(); put_forks(i);
25 Problemas Clássicos void take_forks(int i) { down(&mutex); state[i] = HUNGRY; test(i); up(&mutex); down(&s[i]); void test(i) { if (state[i]==hungry && state[left]!= EATING && state[right]!= EATING) { state[i] = EATING; up(&s[i]); void put_forks(i) { down(&mutex); state[i] = THINKING; test(left); test(right); up(&mutex);
26 Métodos de Sincronização envolvendo vários processos 2) Problema dos Leitores e Escritores Solução dirigida a grupos de processos, em vez de situações que envolve dois processos. Útil para modelar processos que competem pelo acesso a uma base de dados. Descrição : É aceitável que múltiplos processo leia a base de dados ao mesmo tempo, mas se um processo estiver atualizando na base, nenhum outro processo pode ter acesso a esta, nem mesmo os leitores. O leitor para obter acesso à base de dados, primeiro leitor faz o down no semáforo db. Os leitores subsequentes incrementaram o contador rc, ou decrementaram, caso saiam. O escritor permanecerá suspenso até que nenhum leitor esteja presente. O último a sair permite que um eventual escritor entre. typedef int semaphore; semaphore mutex = 1; semaphore db = 1; int rc=0; void reader(void) { while (TRUE) { down(&mutex); rc = rc +1; if (rc==1) down(&db); up(&mutex); read_data_base(); down(&mutex); rc = rc - 1; if (rc == 0) up(&db); up(&mutex); use_data_read();
27 Métodos de Sincronização envolvendo vários processos 2) Problema dos Leitores e Escritores Problemas : O escritor poderá permanecer suspenso até que nenhum leitor esteja presente. Neste caso, pode ocorrer do escritor nunca conseguir entrar na região crítica. void writer(void) { while (TRUE) { think_up_date(); down(&db); write_data_base(); up(&db); Solução: Se um leitor chegar quando um escritor estiver esperando, o leitor será suspenso logo depois do escritor, em vez de ser admitido de imediato.
28 Métodos de Sincronização envolvendo vários processos 3) Problema do Barbeiro Sonolento Descrição : Na barbearia há um barbeiro, uma cadeira de barbeiro e n cadeiras para clientes esperarem. Quando chega um cliente, ele precisa acordar o barbeiro. Se outros clientes chegarem enquanto o barbeiro estiver cortando o cabelo de um cliente, eles se sentarão ou sairão da barbearia. A razão de se ter a variável waiting é que não há uma maneira de ler o valor atual do semáforo customer.
29 Métodos de Sincronização envolvendo vários processos #define CHAIRS 5 semaphore customers = 0; semaphore barbers = 0; semaphore mutex = 1; int waiting = 0; void barber(void) { while (TRUE) { down(&customers); down(mutex); waiting = waiting 1; up(&barbers); up(&mutex); cut_hair(); void customer(void) { down(&mutex); if (waiting < CHAIRS) { else { waiting = waiting + 1; up(&customers); up(&mutex); down(&barbers); get_haircut(); up(&mutex);
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 maisProgramaçã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 maisProblemas Clássicos de Sincronização
Problemas Clássicos de Sincronização Filósofos Jantando Filósofo i: Solução Óbvia O problema dos filósofos jantando foi introduzido e solucionado por Dijkstra em 1965. Neste problema, 5 filósofos estão
Leia maisProf. 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 maisSistemas 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 maisSistemas 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 maisRevisã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 maisSincronização de Processos (4) Monitores
Sincronização de Processos (4) Monitores Monitores (1) Sugeridos por Dijkstra (1971) e desenvolvidos por Hoare (1974) e Brinch Hansen (1975), são estruturas de sincronização de alto nível, que têm por
Leia maisSistemas 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 maisSincronizaçã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 maisNotas 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 maisMé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 maisSistemas 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 maisDisciplina: 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 mais8 PROBLEMAS CLÁSSICOS
8 PROBLEMAS CLÁSSICOS 8.1.1 FILÓSOFOS GLUTÕES Contexto: temos cinco filósofos, cujas únicas atividades são comer macarrão e pensar. Além disso, o macarrão nunca acaba. Componentes do problema: 5 Filósofos
Leia maisConceito 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 maisSISTEMAS 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 maisSincronizaçã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 maisSistemas Operacionais
Sistemas Operacionais Processos Exclusão Mútua Mecanismos para se Obter Exclusão MútuaM Mecanismos de Hardware: Inibição de Interrupções Instrução TSL (Test and Set Lock) Mecanismos de Software: Com Espera
Leia maisFundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer
Módulo 6: Sincronização de Processos Fundamentos Fundamentos O problema das regiões críticas Hardware de Sincronização Semáforos Problemas Clássicos de Sincronização Regiões Críticas Monitores Sincronização
Leia maisBACHARELADO 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 maisSincronizaçã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 maisO mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.
O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. A multiprogramação tem como objetivo permitir que, a todo instante, haja algum processo
Leia maisBC1518-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 maisSistemas 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 maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,
Leia maisUniversidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aulas 6 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi
Leia maisProcessos 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 maisMonitores. 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 maisMANUAL PABX 412 BATIK
MANUAL PABX 412 BATIK OPERAÇÃO E PROGRAMAÇÃO MODO PROGRAMAÇÃO O Modo Programação é o modo de funcionamento do PABX 412 Batik que permite a execução de comandos de programação protegidos. Todos os comandos
Leia maisALGORITMOS E FLUXOGRAMAS
ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as
Leia maisSistemas Operacionais
Sistemas Operacionais Processos - Parte 2 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 2) 1 / 33 (Processos - Parte 2) 2 / 33 (Processos - Parte 2) 3 / 33 (Processos - Parte 2) 4 / 33 (Processos
Leia maisGABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios
CURSO - TADS TURMA 2008.1 2 PERÍODO 3 MÓDULO AVALIAÇÃO MP2 DATA 02/10/2008 SISTEMAS OPERACIONAIS 2008/2 GABARITO COMENTADO SISTEMAS OPERACIONAIS PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida,
Leia maisFigura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?
Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade
Leia maisSincronização de Processos (5) Troca de Mensagens
Sincronização de Processos (5) Troca de Mensagens Passagem (Troca) de Mensagens Motivação: Semáforos e algoritmos de exclusão mútua são baseados no compartilhamento de variáveis. Isso implica no compartilhamento
Leia maisPermitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;
Software Básico 2008.2 Trabalho Prático 1: programação de E/S, uso de sinais Prática de programação voltada a eventos Trabalho individual ou em dupla Data de entrega: 01/10/2008 1 O Objetivo Utilizando
Leia maisSistemas Operacionais Processos
Sistemas Operacionais Processos Prof. Raimundo Macêdo, DCC/UFBA Processo processo: programa em execução consiste de: código do programa executável dados pilha de execução contador de programa valores de
Leia maisSistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)
Sistemas Operacionais Arquivos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Cin/UFPE Implementação do Sistema de Arquivos Sistemas de arquivos são
Leia mais(Aula 17) Threads em Java
(Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend
Leia maisSistemas Distribuídos Modelo Cliente-Servidor
Sistemas Distribuídos Modelo Cliente-Servidor Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de
Leia maisSISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas
SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS 2º TRIMESTRE Patrícia Lucas O QUE SÃO SISTEMAS OPERACIONAIS? Um sistema operacional é um conjunto de rotinas executado pelo processador, de forma semelhante
Leia mais9 - 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 mais9 Comandos condicionais
9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em
Leia maisPROGRAMAÇÃO II 3. FILA DINÂMICA
3. FILA DINÂMICA PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma fila é um tipo especial de lista na qual todas as inserções são feitas sempre depois do fim e as deleções no início. Por isso também recebe
Leia mais1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.
Aula 14 Redes de Computadores 24/10/07 Universidade do Contestado UnC/Mafra Sistemas de Informação Prof. Carlos Guerber ROTEAMENTO EM UMA REDE DE COMPUTADORES A máscara de sub-rede é utilizada para determinar
Leia maisMODELAGEM E SIMULAÇÃO
MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Leia maisprocesso internamente dadospara serem
Aula 14 Monitores Sincronização e Troca de de Processos Mensagens (5) Monitores Sugeridos Profa. Patrícia Motivação: (1974) sincronização (forçar) concorrentes. (1) por Dijkstra(1971) e desenvolvidos por
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Suporte do Sistema Operacional Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Objetivos
Leia maisCOMO PROGRAMAR SEU TIME
COMO PROGRAMAR SEU TIME 1) INSTALAÇÃO: Instale o simulador da categoria SIMUROSOT da FIRA. O simulador é gratuito e está disponível para download no site da FIRA (www.fira.net) ou no site da competição
Leia maisINTRODUÇÃO À LINGUAGEM C++
INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem
Leia maisProgramando Jogos em Delphi Animação, Lógica e Controle versão orientada à objetos
Programando Jogos em Delphi Animação, Lógica e Controle versão orientada à objetos Antônio Sérgio de S. Vieira 1 Corrigida e Melhorada - 2011 1. Introdução sergiosvieira@hotmail.com Este texto foi escrito
Leia maisComunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)
COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo Comunicação one-to-one Forma mais simples de comunicação entre processos point -to-point, ou unicast Algumas aplicações requerem comunicação envolvendo
Leia maisEvitando conflitos em aplicações multi-thread no Delphi/Kylix
LABORATÓRIO DE ORIENTAÇÃO A OBJETOS - OOLAB Evitando conflitos em aplicações multi-thread no Delphi/Kylix Edmilson dos Santos de Jesus Salvador, março de 2002. ÍNDICE Agradecimentos............ 2 Aplicações
Leia maisAutor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br
Leia maisCarlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br
Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Principais problemas programação concorrente Deadlocks (impasses) Starvation (inanição) Condições de corrida Erros de consistência na
Leia maisCOMO IMUNIZAR SEU PENDRIVE CONTRA VÍRUS. Introdução
COMO IMUNIZAR SEU PENDRIVE CONTRA VÍRUS Introdução Os vírus de computador que infectam os pendrives sempre se infiltram pela raiz do mesmo, que é a primeira área onde o pendrive começa a ser utilizado,
Leia maisvoid echo(); { chin = getchar(); chout = chin; putchar(chout); }
Sincronização Processos (Aula de 10) Concorrência Dificuldades: Profa. Patrícia Ação Compartilhamento Gerência Localização D. Proteger Promover de alocação de recursos. globais. CostaLPRM/DI/UFES programas).
Leia maisCapítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.
Capítulo 8. CICLOS OBJETIVOS DO CAPÍTULO Conceito de ciclo Comandos do FORTRAN: DO END DO, EXIT 8.1 programa8a.f90 Para inicializar as atividades deste capítulo, deve-se executar: 1) Para acessar o programa
Leia maisSistemas Operacionais. Condição de corrida e Região crítica
Sistemas Operacionais Condição de corrida e Região crítica Região Crítica Parte do código que acessa a área compartilhada Condição em que dois processos lêem e escrevem um dado compartilhado e o resultado
Leia maisFilas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário
Filas Fila é um tipo de lista linear onde as inserções são realizadas num extremo (final da Fila) e as remoções restritas ao outro (começo da Fila). O primeiro a entrar é o primeiro a sair e último a entrar
Leia maisNível da Arquitetura do Conjunto das Instruções
Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Fluxo Seqüencial de Controle e Desvios (1) Fluxo de Controle: É a seqüência na qual instruções são dinamicamente executadas Isto
Leia maisUniversidade Federal de São Carlos Departamento de Computação. Sistemas Operacionais. Sincronização de Threads no Windows
Universidade Federal de São Carlos Departamento de Computação Sistemas Operacionais Sincronização de Threads no Windows Padrões de Projeto com Thread Vantagens do uso de padrões no projeto com threads:
Leia maisCOMO COMEÇAR 2016 se organizando?
COMO COMEÇAR 2016 se organizando? Como começar 2016 se organizando? Conheça estratégias simples para iniciar o novo ano com o pé direito Você sabia que, de acordo com o Sebrae, os principais motivos que
Leia maisSistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos
Sistemas Operacionais Capítulo 7 Sincronização e Comunicação entre Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 8ª Aula Comunicação e Sincronismo de Processos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana
Leia maisORGANIZAÇÃO DE COMPUTADORES MÓDULO 1
ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2 1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador
Leia maisSistemas Operativos Colectânea de Exercícios de Sincronização Soluções
Sistemas Operativos LEIC LERCI Colectânea de Exercícios de Sincronização Soluções Outubro 2004 Exercícios de Sincronização A. Competição por um recurso 1. [Banco] a. void levantar(int valor) esperar(mutex);
Leia maisSumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com
Sumário Condições para Ocorrência de Modelagem de Evitando deadlock Algoritmo do banqueiro M. Sc. Luiz Alberto lasf.bel@gmail.com Aula - SO 1 Definição Um conjunto de N processos está em deadlock quando
Leia maisCapí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 maisPROCESSOS. 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 maisUnidade III Gerência de Processos
Sistemas Operacionais Unidade III Gerência de Processos http://www.lncc.br/~lrodrigo Professor: Luis Rodrigo lrodrigo@lncc.br Página: 1 de 34 Unidade III: Gerência de Processos Conceito de Processo Materialização
Leia maisComandos de repetição while
Programação de Computadores I UFOP DECOM 2014 2 Aula prática 6 Comandos de repetição while Resumo Nesta aula vamos trabalhar com problemas cuja solução envolve realizar um cálculo ou tarefa repetidas vezes,
Leia maisSincronização de Processos (2)
Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância
Leia maisUdesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br
Programação Concorrente [Parte 2] Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Alexandre Veloso alexandre.matos@udesc.br Condição de Corrida Uma forma de um processo comunicar-se
Leia maisExercícios Teóricos Resolvidos
Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar
Leia maisResolução de sistemas lineares
Resolução de sistemas lineares J M Martínez A Friedlander 1 Alguns exemplos Comecemos mostrando alguns exemplos de sistemas lineares: 3x + 2y = 5 x 2y = 1 (1) 045x 1 2x 2 + 6x 3 x 4 = 10 x 2 x 5 = 0 (2)
Leia maisConcurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba
Questão 01 Assumindo um registrador de 10 bits e utilizando-se de representação binária, com valores negativos representados em código de 2, os valores em representação decimal 235, -189 possuem, respectivamente,
Leia maisCotagem de dimensões básicas
Cotagem de dimensões básicas Introdução Observe as vistas ortográficas a seguir. Com toda certeza, você já sabe interpretar as formas da peça representada neste desenho. E, você já deve ser capaz de imaginar
Leia maisDeadlocks. 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 Dispositivos e recursos são compartilhados a todo momento: impressora, disco, arquivos,
Leia maisSistemas Operacionais I
Sistemas Operacionais I Material Baseado no Livro Sistemas Operacionais Modernos 2ª. Ed. da Pearson Education 1 Agenda Deadlocks Gerenciamento de Memória 2 1 DEADLOCKS 3 Recursos Exemplos de recursos de
Leia maisRoteamento e Comutação
Roteamento e Comutação Spanning Tree Protocol O STP é executado em bridges e switches compatíveis com 802.1D. O STP foi projetado para contornar os problemas de bridging em redes redundantes. O objetivo
Leia maisProcessos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.
Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um
Leia maisNotas 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 maisSISTEMAS 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 maisSISTEMAS OPERACIONAIS
1 SISTEMAS OPERACIONAIS Profª Josiane T. Ferri Licenciada em Computação prof.jositf@yahoo.com.br facebook.com/josiferri ESTRUTURA DO SISTEMA OPERACIONAL Embora a definição de níveis de privilégio imponha
Leia maisGuia de utilização da notação BPMN
1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação
Leia maisSistemas Operacionais
Sistemas Prof. Ms. Márcio Andrey Teixeira A Caracterização dos Sistemas Funções do S.O Administração de Processos Administração da Memória Principal Administração do Armazenamento Secundário Administração
Leia maisAté o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;
CAPÍTULO VI THREADS 6.1 INTRODUÇÃO Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread; O sistema operacional Toth, em 1979, foi o primeiro a implementar
Leia maisAlgoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em
Leia mais1. A corrida de vetores numa folha de papel.
1. A corrida de vetores numa folha de papel. desenhando a pista. o movimento dos carros. o início da corrida. as regras do jogo. 2. A corrida no computador. o número de jogadores. o teclado numérico. escolhendo
Leia maisGerenciamento de memória
Na memória principal ficam todos os programas e os dados que serão executados pelo processador. Possui menor capacidade e custo maior. S.O buscam minimizar a ocupação da memória e otimizar sua utilização.
Leia maiscompreender a importância de cada estrutura de controle disponível na Linguagem C;
Aula 3 Estruturas de controle Objetivos Esperamos que, ao final desta aula, você seja capaz de: compreender a importância de cada estrutura de controle disponível na Linguagem C; construir programas em
Leia maisLÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br
LÓGICA DE PROGRAMAÇÃO Professor Celso Masotti http://ead.celsomasotti.com.br Ano: 2015 1 HTML & PHP em Ambiente Web PARTE II Sumário I Decisão... 4 Operadores de Comparação... 6 II IF ELSEIF ELSE... 7
Leia maisSistemas 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