As Sistemas Operacionais
Por: Sara • 20/12/2018 • 1.852 Palavras (8 Páginas) • 431 Visualizações
...
- Qual a função do contexto de software? Exemplifique cada grupo de informação.
A função do contexto de software é especificar limites e características dos recursos que podem ser alocados pelo processo. Seus grupos são:
Identificação - identificação de processo (PID); identificação de usuário (UID).
Quotas - número máximo de memória principal que o processo pode alocar; número máximo de arquivos abertos simultaneamente.
Privilégios – prioridade de execução; limites alocados na memória principal.
- O que é o espaço de endereçamento de um processo?
Espaço de endereçamento é a área de memória pertencente ao processo onde instruções e dados do programa são armazenados para execução.
- Defina os cinco estados possíveis do processo.
Execução (running) – Sendo processado pela CPU.
Pronto (ready) – Aguardando para ser executado.
Espera (wait) – Aguardando algum evento externo ou recurso para ser prosseguir.
Criação (new) – Esperando para ser colocado na lista de prontos.
Terminado (exit) – Não tem mais programas executando seu contexto.
- Dê um exemplo que apresenta todas as mudanças de estado de um processo, juntamente com o evento associado a cada mudança.
O processo é criado (new), e vai para a fila de prontos (ready), indo para execução (running) quando for sua vez, alternando entre espera (wait), pronto (ready) e voltando a executar (running), em loop, até todo o programa rodar, quando ele é terminado (exit).
- Explique a diferença entre processos foreground e background.
No processo foreground, existe interação com o usuário durante o processamento, via dispositivos de E/S. Já no processo background, o processo ocorre sem nenhuma interação com o usuário.
- O que são aplicações CPU-bound e I/O-bound.
Um processo é definido como CPU-bound quando passa a maior parte do tempo no estado de execução, passando por poucas operações de leitura de E/S.
Já o processo I/O-bound passa a maior parte do tempo no estado de espera, por realizar um número maior de operações de E/S.
---------------------------------------------------------------
- Defina o que é uma aplicação concorrente e dê um exemplo de sua utilização.
Aplicações concorrentes são um conceito que ocorre quando processos precisam se comunicar entre si, fazendo com que sua execução precise ser sincronizada.
Um exemplo é quando dois processos concorrentes compartilham um buffer para trocar informações via dispositivos de E/S. Nesse exempol, um processo só pode usar o buffer se ele não estiver cheio.
- Considere uma aplicação que utilize uma matriz na memória principal para a comunicação entre vários processos concorrentes. Que tipo de problema pode ocorrer quando dois ou mais processos acessam uma mesma posição da matriz?
Se dois processos estiverem usando a mesma posição da matriz, ocorre o risco de um processo alterar o seu valor enquanto o outro estiver consultando a posição. Se o segundo processo fizer alguma outra alteração, a alteração do primeiro processo será descartada.
- O que é exclusão mútua e como é implementada?
Exclusão mútua faz com que, quando um processo estiver usando um determinado recurso, todos os outros processos que queiram acessá-lo tenham que esperar o término do primeiro processo. Para isso, cada processo tem um protocolo de entrada e um protocolo de saída.
- Como seria possível resolver os problemas decorrentes do compartilhamento da matriz, apresentado anteriormente, utilizando o conceito de exclusão mútua?
O problema é resolvido porque agora, quando um processo quiser acessar um recurso, o protocolo de entrada verificará se o recurso estão sendo usado ou não.
- O que é starvation e como podemos solucionar esse problema?
Starvation ocorre quando um processo não consegue executar sua região crítica e acessar seu recurso. Para corrigir isso, são criadas filas de pedido de alocação para cada recurso. Quando um processo solicita um recurso, ele vai para o final da fila de tal recurso.
- O que é espera ocupada e qual o seu problema?
Eu não achei a definição de espera ocupada.]
Seu problema é que ela gasta desnecessariamente tempo de processamento.
---------------------------------------------------------------
- Explique o que é sincronização condicional(Sleep/Wakeup) e dê um exemplo de sua utilização.
Sincronização condicional é a situação que ocorre quando o o acesso ao recurso compartilhado exige a sincronização de processos vinculada à uma condição de acesso. Um exemplo é quando dois processos usam o mesmo buffer, onde um processo consume os dados produzidos por outro processo.
- Explique o que são semáforos e dê um exemplo de sua utilização: um para a solução da exclusão mútua e outro para a sincronização condicional.
Semáforo é uma variável inteira, não negativa, que só pode ser manipulada por duas instruções: DOWN e UP.
Usando exclusão mútua, um processo sabe que um recurso está livre quando seu semáforo etá UP, e ao começar a usar o recurso, ele muda o semáforo para DOWN.
Em sincronização condicional, são utilizados três semáforos. Um para controlar a exclusão mútua, e um para controlar quando cada um dos processos pode usar a região crítica.
- Explique o que são monitores e dê um exemplo de sua utilização?
Monitores são mecanismos de sincronização de alto nível que
...