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

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

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

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

Leia mais

Programação Concorrente

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

Leia mais

Problemas Clássicos de Sincronização

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

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

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

Leia mais

Sistemas Operacionais

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

Leia mais

Sistemas Distribuídos

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

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

Sincronização de Processos (4) Monitores

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

Leia mais

Sistemas 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

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

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

Leia mais

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

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

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

8 PROBLEMAS CLÁSSICOS

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

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

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

Leia mais

SISTEMAS OPERACIONAIS

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

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 Operacionais

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

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer

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

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

O 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. 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 mais

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

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

Leia mais

Sistemas Operacionais

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

Leia mais

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 Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

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

Processos e Threads (partes I e II)

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

Leia mais

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

MANUAL PABX 412 BATIK

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

ALGORITMOS E FLUXOGRAMAS

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

Sistemas Operacionais

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

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

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

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

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

Sincronização de Processos (5) Troca de Mensagens

Sincronizaçã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 mais

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

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

Sistemas Operacionais Processos

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

Sistemas 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) 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 (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 mais

Sistemas Distribuídos Modelo Cliente-Servidor

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

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas

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

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

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

Leia mais

9 Comandos condicionais

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

PROGRAMAÇÃO II 3. FILA DINÂMICA

PROGRAMAÇÃ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 mais

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

1. 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 mais

MODELAGEM E SIMULAÇÃO

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

TÉCNICAS DE PROGRAMAÇÃO

TÉ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 mais

processo internamente dadospara serem

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

Arquitetura e Organização de Computadores

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

COMO PROGRAMAR SEU TIME

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

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃ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 mais

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

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Comunicaçã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 mais

Evitando conflitos em aplicações multi-thread no Delphi/Kylix

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

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

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

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

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

COMO IMUNIZAR SEU PENDRIVE CONTRA VÍRUS. Introdução

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

void echo(); { chin = getchar(); chout = chin; putchar(chout); }

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

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Capí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 mais

Sistemas Operacionais. Condição de corrida e Região crítica

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

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário

Filas. 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 mais

Nível da Arquitetura do Conjunto das Instruções

Ní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 mais

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

COMO COMEÇAR 2016 se organizando?

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

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

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

Leia mais

SSC0640 Sistemas Operacionais I

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

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ORGANIZAÇÃ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 mais

Sistemas Operativos Colectânea de Exercícios de Sincronização Soluções

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

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com

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

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

Unidade III Gerência de Processos

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

Comandos de repetição while

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

Sincronização de Processos (2)

Sincronizaçã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 mais

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso alexandre.matos@udesc.br

Udesc/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 mais

Exercícios Teóricos Resolvidos

Exercí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 mais

Resolução de sistemas lineares

Resoluçã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 mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

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

Cotagem de dimensões básicas

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

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

Deadlocks. 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 mais

Sistemas Operacionais I

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

Roteamento e Comutação

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

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.

Processos. 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 mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

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

Leia mais

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

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

Guia de utilização da notação BPMN

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

Sistemas Operacionais

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

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Até 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 mais

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

1. A corrida de vetores numa folha de papel.

1. 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 mais

Gerenciamento de memória

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

compreender a importância de cada estrutura de controle disponível na Linguagem C;

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

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