• Nenhum resultado encontrado

A6 Alocação de recursos

N/A
N/A
Protected

Academic year: 2021

Share "A6 Alocação de recursos"

Copied!
37
0
0

Texto

(1)

Conteúdo da Aula

•Instruções de Seminários.

•Alocação de recursos.

(2)

Instruções de Seminário 1 25/03

Equipes de até 8 alunos.

Entregar relatório (24/03) e apresentação.

Apresentação 10 minutos.

Armazenamento e multimídia. Armazenamento

em disco magnético. Armazenamento em

disco óptico. Processamento em lote e de

transações

(3)

Instruções de Seminário 2 27/03

Equipes de até 8 alunos.

Entregar relatório (26/03) e apresentação.

Apresentação 10 minutos.

Redes de computadores. Comunicação de

dados. Transmissão de dados. Mídias de

comunicação.

(4)

A primeira coisa que vem na nossa mente é que o SO deve

permitir a execução de programas. Contudo, ele não faz

apenas isso. Ele também fornece serviços para o usuário e

para o próprio sistema. Tipicamente, são eles:

• Interface com usuário

• Execução propriamente dita dos programas • Operações de I/O

• Manipulação do Sistema de Arquivos • Comunicações entre processos

• Detecção de erros • Alocação de recursos • Contabilização

(5)

Alocação de recursos! Uma das funções mais interessante do SO

é alocar recursos de forma compartilhada entre diversos

processos. Por exemplo, os SO's tem políticas/algoritmos de

escalonamento da CPU, ou seja, define qual processo vai usar

a CPU e por quanto tempo vai ficar de posse da CPU.

Outro serviço é a contabilização, ou seja, o SO deve ser capaz de

controlar quantos usuários utilizam o sistema, quais recursos

eles estão utilizando.

(6)
(7)
(8)
(9)

Alocação de recursos: atribuir recursos de

computador a certos programas e processos

para serem usados.

Principais questões relacionadas à alocação de

recursos:

– Compartilhar a Unidade Central de Processamento

– Compartilhar memória

– Compartilhar recursos de armazenamento

– Compartilhar recursos de impressão

(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)

Compartilhamento de recursos entre processos

pode gerar situações indesejáveis.

Mecanismos de sincronização – garantem a

comunicação entre processos concorrentes e

o acesso a recursos compartilhados.

(18)

Problemas de Compartilhamento de Recursos

• Mecanismos de controle devem existir para

evitar problemas.

• Exemplos:

– Atualização de arquivos compartilhados ao

mesmo tempo

(19)

Solução para os Problemas de

Compartilhamento

• Exclusão Mútua (solução mais simples): impedir que dois

ou mais processos acessem um mesmo recurso no

mesmo instante, um deve esperar que o outro termine

para utilizar.

• Região crítica: parte do código onde é feito o acesso ao

recurso compartilhado.

• Usualmente utiliza-se de um protocolo ao entrar em uma

região crítica e ao sair dela.

(20)

Problemas de Sincronização

Problemas introduzidos pela exclusão múltua. • Velocidade de Execução dos Processos:

– Processos com diferenças de velocidade ou maior tempo de processamento • Starvation:

– Situação em que um processo nunca consegue executar sua região crítica e acessar o recurso compartilhado.

– Ocorre quando dois ou mais processos esperam por um mesmo recurso

alocado. Caso o sistema escolha o processo aleatoriamente quando o recurso é liberado, um processo pode nunca ser escolhido

– Quando um processo tem baixa prioridade também pode nunca ser escolhido. – Filas FIFO eliminam esse problema.

(21)

Problemas de Sincronização

• Sincronização Condicional:

– Quando um recurso não se encontra pronto para ser utilizado

pelos processos, o processo deve ser colocado no estado de

espera, até a liberação do recurso.

– Problema de processo produtor/consumidor: exemplo, quando

um processo tenta gravar num buffer e outro tenta ler. Um

processo não poderia gravar de um buffer cheio nem tentar ler

de um buffer vazio.

(22)

Soluções de Hardware

• Desabilitação de Interrupções:

– Desabilitar interrupções externas ao entrar numa região critica e habilitar ao sair.

– Se o processo não habilitar as interrupções ao sair da região crítica, o sistema pode estar comprometido.

• Instrução Test-and-set:

– Instrução especial que permite ler uma variável, armazenar seu conteúdo em uma outra área e atribuir um novo valor a essa variável.

– Executa sem interrupção – É uma instrução invisível

– Assim, dois processos não podem manipular uma variável compartilhada ao mesmo tempo (exclusão múltua).

(23)

Solução de Software

• Fatores para a solução de problemas de sincronização:

– O número de processadores e o tempo de execução

dos processos concorrentes devem ser irrelevantes;

– Um processo, fora de sua região crítica, não pode

impedir que outros processos entrem em suas

próprias regiões críticas;

– Um processo não pode permanecer indefinidamente

esperando para entrar em sua região crítica.

(24)

Semáfaros

• Solução mais geral e simples de ser implementada.

• Variável inteira, não negativa, que só pode ser manipulada por duas instruções: DOWN e UP.

• Mutexes (mutual exclusion semaphores):

– Semáfaros aplicados ao problema da exclusão múltua

– Na exclusão múltua, as instruções DOWN e UP funcionam como protocolos de entrada e saída. Valor > 0, recurso liberado, Valor = 0, processo impedido do acesso.

– Processo entra na região crítica executa DOWN, impedindo outros processos do acesso.

– Processo sai da região crítica executa UP, liberando o acesso para outros processos.

(25)

Semáfaros

• Semáfaros aplicados ao problema de sincronização condicional:

– Em geral, se existe um processo que deve ser notificado sobre a ocorrência de um evento e um outro capaz de detectar sua ocorrência, pode-se utilizar um semáfaro asociado ao evento esperado para sincronizar ambos os processos. – Semáfaros contadores: úteis quando aplicados na alocação de recursos do

(26)

Monitores

• Mecanismos de sincronização de alto nível que tentam tornar mais fácil o desenvolvimento e correção de programas concorrentes.

• Conjunto de procedimentos, variáveis e estrutura de dados definidos dentro de um módulo.

• Somente um processo pode estar executando um dos procedimentos do monitor em um determinado instante.

• Implementação da exclusão mútua nos monitores é realizada pelo compilador. • WAIT – Faz um processo entrar em estado de espera quando uma variável de

condição (estrutura de dados tipo fila) está impedindo a liberação para outros processo.

(27)

Troca de Mensagens

• Mecanismo de comunicação e sincronização entre processos. • SEND – Envia uma mensagem a um processo receptor

– SEND (Receptor, Mensagem)

• RECEIVE – Recebe uma mensagem de um processo transmissor – RECEIVE (Emissor, Mensagem)

• Não ocorre exclusão multua.

• Uma mensagem só pode ser lida apos Ter sido enviada. • Pode ocorrer perda de mensagens

• ACK (acknowledgement) – enviada pelo processo receptor para informar o

recebimento da mensagem. Se o emissor não receber um ACK em determinado tempo, reenvia a mensagem.

(28)

Troca de Mensagens

• Endereçamento direto – só permite a comunicação entre dois processos.

• Endereçamento indireto – utiliza uma área compartilhada (buffer conhecido como mailbox) onde as mensagens podem ser colocadas pelo emissor e retiradas pelo receptor

• Comunicação síncrona (rendezvous):

– Um processo envia uma mensagem e fica esperando até que o receptor leia a mensagem

– Um receptor tenta receber uma mensagem e fica esperando até que o processo transmissor grave alguma mensagem.

– Dispensa necessidade de buffers.

(29)

Troca de Mensagens

• Comunicação assíncrona:

– O transmissor não aguarda o recebimento da mensagem.

– O receptor não aguarda o envio de uma mensagem.

– Necessita de buffers

– Maior paralelismo na execução dos processos em relação a

síncrona.

(30)

Tempo Compartilhado

• Os programas se alternam na utilização da CPU.

• Baseado no tempo.

– A cada usuário é designada uma fatia de tempo (fração de

segundo).

– A CPU trabalha somente nas tarefas desse usuário durante

sua fatia de tempo.

– Tempo de resposta: o tempo entre o pedido digitado e a

resposta do computador.

• Tipicamente, é usado em aplicações com muitos

usuários.

(31)

Compartilhando Memória

• Gerenciamiento de memória.

• Divide a memória em primeiro plano

e segundo plano.

• Usa armazenamento virtual.

(32)

Gerenciamento da Memória

• Divide a memória em partições distintas.

• Aloca memória para programas.

• Mantém os programas mutuamente

separados.

(33)

Primeiro Plano e Segundo Plano

• Primeiro plano: para programas com alta

prioridade, que receberão mais tempo de CPU.

• Segundo plano: para programas com menor

prioridade, que receberão menos tempo de CPU

– Os programas que aguardam para ser executados

são colocados em filas, baseando-se em sua

(34)

Armazenamento Virtual

• Os programas que estão atualmente em execução são

armazenados em disco.

– Partes do programa são levadas para a memória conforme a

necessidade.

– Minimiza a quantidade de memória necessária.

• Pode ser implementado por meio de paginação.

– Divide a memória em páginas pequenas, de tamanho fixo.

(35)

Compartilhando Recursos de Armazenamento

• Controla a localização dos arquivos.

• Responde a comandos para manipular

arquivos.

• Controla pedidos de entrada e saída de

arquivos

(36)

Compartilhando Recursos de Impressão

• Spooling: o programa escreve uma linha em um

arquivo em disco em vez de enviá-la diretamente a

uma impressora.

– Quando o arquivo é concluído, é colocado numa fila.

– O arquivo é impresso quando a impressora se torna

disponível.

• Permite a um programa concluir a execução muito

mais rapidamente.

– Escrever em disco é muito mais rápido do que escrever em

uma impressora.

(37)

Referências

Documentos relacionados

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça

O teste de patogenicidade cruzada possibilitou observar que os isolados oriundos de Presidente Figueiredo, Itacoatiara, Manaquiri e Iranduba apresentaram alta variabilidade

Ocorre o fenômeno da crase diante dos pronomes relativos “a qual” e “as quais”, quando o verbo da oração introduzida por esses pronomes exigir a

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

As questões acima foram a motivação para o desenvolvimento deste artigo, orientar o desenvol- vedor sobre o impacto que as cores podem causar no layout do aplicativo,

A maioria dos casos de doença está associada a ambientes sujeitos a intervenção humana onde temperatura da água é superior, alterando a concentração quer das bactérias quer dos

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

DO CONVENCIONAL AO DIGITAL: E-COMMERCE NO FMCG MOSTRA-SE CRUEL PARA OS RETARDATÁRIOS. Alexandre Nilo da Fonseca, Presidente