Você está na página 1de 5

Universidade Federal do Piauí – UFPI

Centro de Educação Aberta e a Distância – CEAD


Curso de Licenciatura em Computação
Disciplina: Sistemas Operacionais
Professor (a): Alan Rafael Ferreira dos Santos
Aluno (a): ANTONIEL RODRIGUES DA SILVA
Polo: UNIÃO-PI 10/06/2018

AVALIAÇÃO DE SISTEMAS OPERACIONAIS

1. Descreva os principais tipos de sistemas operacionais existentes (1,0).


SISTEMAS MONOPROGRAMÁVEIS OU MONOTAREFAS- se caracterizam por
permitir que o processador, a memória, e os periféricos fiquem dedicados a um único
usuário (monousuário). Nesses sistemas, enquanto o programa aguarda por um evento,
como a digitação de um dado, o processador ficará ocioso sem realizar qualquer tarefa.
SISTEMAS COM MULTIPLOS PROCESSADORES - são arquiteturas que possuem
duas ou mais UCPs interligadas e que funcionam em conjunto na execução de tarefas
independentes ou no processamento simultâneo de uma mesma tarefa.

SISTEMAS MULTIPROGRAMÁVEIS OU MULTITAREFAS – Constituindo-se uma


evolução dos sistemas monoprogramáveis, neste tipo de sistema os recursos
computacionais são compartilhados entre os diversos usuários e aplicações: enquanto um
programa espera por um evento, outros programas podem estar processando neste mesmo
intervalo de tempo. Neste caso, podemos observar o compartilhamento da memória e do
processador. O sistema operacional se incumbe de gerenciar o acesso concorrente aos seus
diversos recursos, como processador, memória e periféricos, de forma ordenada e
protegida, entre os diversos programas.
2. Explique por que os conceitos de processo são tão importantes para os sistemas
operacionais multiprogramados (0,5).
Todo programa executável é organizado em um número de processos sequências; • O
processo é uma abstração do programa, ou seja, a sua execução, incluindo os valores do
contador de programas atual, registradores variáveis; • A diferença entre processo e
programa é fundamental para o modelo de processos. A analogia da receita de bolo facilita
o entendimento: O processo consiste em toda atividade de preparação do bolo (leitura da
receita, busca dos ingredientes, mistura, etc.), sendo que: Um conjunto de processos forma
um programa; O confeiteiro é o processador (CPU).
3. Considere uma aplicação que utiliza um vetor na memória principal para a
comunicação entre seus processos. Em um dado momento, dois processos tentaram
acessar simultaneamente a mesma posição de um vetor. Que problema foi gerado?
Descreva uma possível solução (1,0).
Temos aí um problema de Race Condition (Condições de Corrida). Para impedir que esse
problema ocorra, é necessário a implantação de um gerenciamento e controle desses
acessos à memória, aplicando alguma política que determine quando e quem terá o acesso
ao dado local.
Por exemplo, pode-se usar a técnica do semáforo, cujo intuito é administrar o
compartilhamento de recursos. Neste caso, o uso da memória.

4. Cite uma situação que proporcione um problema de starvation, dando uma possível
solução (0,5).
Sistema de gerenciamento da CPU dê sempre prioridade para os processos de menor
duração. Você tem um processo que dura 10 segundos, mas a cada meio segundo chega
um processo com tempo entre 1 e 9 segundos. Desta forma há um problema crítico, pois,
os processos de menor tempo receberão prioridade e o de 10 segundos pode nunca ser
colocado em execução. Uma forma de resolver isto é mudar o tipo de regra do
escalonador. Uma das opções é usar o método de Loteria, que sorteia fichas pros processos
e os sorteia ou mesmo um sistema mais simples como o FIFO. Desta forma tem-se
garantia de que o processo de 10 segundos, que antes não era executado, fará uso da CPU.

5. Quais as condições para se obter um deadlock? Quais as suas possíveis soluções (0,5)?
Deadlock é a situação em que um processo aguarda por um recurso que nunca estará
disponível ou um evento que não ocorrerá. Para que ocorra a situação de deadlock, quatro
condições são necessárias simultaneamente: exclusão mútua: cada recurso só pode estar
alocado a um único processo em um determinado instante; espera por recurso: um
processo, além dos recursos já alocados, pode estar esperando por outros recursos;
não preempção: um recurso não pode ser liberado de um processo só porque outros
processos desejam o mesmo recurso; espera circular: um processo pode ter de esperar por
um recurso alocado a outro processo e vice-versa. Para prevenir a ocorrência de deadlock,
é preciso garantir que uma das quatro condições apresentadas, necessárias para sua
existência, nunca se satisfaça. A prevenção de deadlock evitando-se a ocorrência de
qualquer uma das quatro condições é bastante limitada e, por isso, na prática não é
utilizada. Uma solução conhecida como Algoritmo do Banqueiro (implementada com a
presença das quatro condições) também possui várias limitações. A maior delas é a
necessidade de um número fixo de processos ativos e de recursos disponíveis no sistema.
Essa limitação impede que a solução seja implementada na prática, pois é muito difícil
prever o número de usuários no sistema e o número de recursos disponíveis.

6. Explique o que é espera ocupada e qual o seu problema (1,0).


A espera ocupada é a verificação do processo antes de entrar na região crítica, ou seja, se
essa entrada não for permitida, o processo ficará em um laço ocupado até que seja
permitida a entrada.
Na espera ocupada toda vez que um processo não consegue entrar em sua região crítica,
por já existir outro processo acessando o recurso, o processo permanece em looping,
testando uma condição, até lhe seja permitido o acesso. Dessa forma, o processo em
looping consome tempo do processador desnecessariamente podendo ocasionar problemas
ao desempenho do sistema.
7. Considerando um sistema que possua as seguintes áreas de memória livres,
ordenadas de forma crescente: 10 KB, 4KB, 20KB, 18KB, 7KB, 9KB, 12KB e 15KB.
Para cada programa abaixo, qual seria a partição alocada utilizando-se as estratégias
first-fit, best-fit e worst-fit (0,5).
a) 12 KB - Worst-fit
b) 10 KB - First-fit
c) 9 KB - Best-fit

8. Escalone os seguintes processos utilizando política FIFO, supondo que os processos


chegam nas seguintes ordens e calcule o tempo médio de espera (obs.: são necessários
os cálculos) (1,0).

Processos Tempo de
CPU
P1 12
P2 4
P3 5
P4 8

a) Ordem de chagada: P1 – P2 – P3 – P4:

P1 P2 P3 P4
0 12 16 21
29
(0 + 12 + 16 + 21) / 4 = 12,25

b) Ordem de chagada: P2 – P3 – P1 – P4:

P2 P3 P1 P4
0 4 9 21
29
(21 + 0 + 4 + 9) / 4 = 8,5
9. Um computador que utiliza memória virtual possui um espaço de endereçamento de
32 bits. Os endereços virtuais são divididos em um campo de 20 bits e o resto de
deslocamento. Qual é o tamanho das páginas e quantas páginas existem no espaço de
endereçamento virtual (1,0).
O tamanho do endereço virtual é 220 = 1048576. O restante corresponde ao numero de
páginas que é de 1212 = 4096 isso totaliza então o espaço de endereçamento de 32bits
(232).
10. Explique como um endereço virtual é traduzido para um endereço real na memória
principal (0,5).
No momento da execução de uma instrução, o endereço virtual referenciado é traduzido
para o endereço físico, pois o processo manipula apenas posições da memória principal. O
mecanismo de tradução de um endereço virtual para um endereço físico é denominado
mapeamento.
11. Um determinado sistema de memória virtual implementa a paginação, sendo que o
limite da sua moldura é igual a três. Descreva o número de page fauts para as
estratégias de realocação FIFO e LRU no referido sistema, seguindo as sequências de
página nos itens a seguir (1,0).

a) 1, 2, 3, 1, 4, 2, 5, 3, 4, 3 - FIFO
b) 1, 2, 3, 1, 4, 1, 3, 2, 3, 3 - LRU

12. Um sistema possui quatro molduras, sendo que a tabela a seguir representa para
cada página o momento da carga, o momento do último acesso, o bit de referência e o bit
de modificação.

Moldura Carga Referência Bit de Bit de


Referência Modificação
0 126 279 0 0
1 230 260 1 0
2 120 272 1 1
3 160 280 1 1

A partir dos dados apresentados, determine qual será a moldura de página a ser
substituída utilizando os algoritmos (1,0):

a) FIFO - 2
b) LRU - 1
c) NRU - 0

13. Descreva os principais métodos de implementar arquivos, além das suas vantagens e
desvantagens (0,5).
•Alocação contígua - O método de alocação contígua exige que cada arquivo ocupe um
conjunto de setores contíguos no disco. Para localizar um arquivo basta saber o número do
setor inicial e o tamanho do arquivo, em blocos.
Vantagens: Simplicidade de implementação. Rapidez de acesso aos arquivos: todos os blocos
do arquivo estão próximos. Facilidade de acesso sequencial e aleatório: sequencial: basta ler
os blocos consecutivos aleatórios: posições internas podem ser facilmente calculadas a partir
da posição do bloco inicial. Alocação contígua
Desvantagens: Pouca flexibilidade no crescimento dos arquivos. Tamanho máximo do
arquivo deve ser conhecido no momento da alocação. Ocorrência de fragmentação externa.
Necessidade de desfragmentação periódica.
• Alocação por Lista Encadeada – Neste método será utilizada uma lista simples, onde cada
nó conterá o endereço do bloco e um ponteiro para o bloco seguinte.
Vantagens: Evita desperdício em disco e só é preciso armazenar o endereço de disco do
primeiro bloco;
Desvantagens: É extremamente lendo, além de necessitar de um gasto adicional de memória.
•Alocação por Lista Encadeada usando Índice - Tentativa de contornar as desvantagens de
alocação por lista encadeada, utilizando a palavra “ponteiro” de cada bloco de disco de um
arquivo e colocar em uma tabela ou em um índice em uma memória.
Vantagens: Dessa forma, o bloco inteiro no disco estaria disponível para armazenamento de
dados (Não é necessário armazenar mais o ponteiro para o próximo bloco).
Desvantagens: Além disso, o acesso aleatório é muito mais fácil, pois a cadeia de blocos estar
toda em memória, não sendo necessária qualquer referencia ao disco.

Você também pode gostar