Buscar

Sistemas_Operacionais_resposta

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Processo | Tempo de Chegada | Surto | Prioridade 
P0 | 0 | 12 | 3 
P1 | 1 | 03 | 0 
P2 | 2 | 05 | 1 
P3 | 3 | 03 | 2 
P4 | 4 | 10 | 7 
P5 | 5 | 16 | 3 
________________________________________________________________ 
FCFS: |0 |12 |15 |20 |23 |33 
 12 3 5 3 10 16 
 P0 P1 P2 P3 P4 P5 
(0+12+15+20+23+33)/6 = 17,17 
SJF não Preemptivo: 
 |0 |3 |6 |11 |21 |33 
 3 3 5 10 12 16 
P1 P3 P2 P4 P0 P5 
(0+3+6+11+21+33)/6 = 12,33 
SJF Preemptivo: 
 |0|1|4 |7 |12 |22 |33 
 1 3 3 5 10 11 16 
 P0 P1 P3 P2 P4 P0 P5 
((22-1)+(1-1)+(4-3)+(7-2)+(12-4)+(33-5))/6 = 10,5 
SJF Prioridade: 
 |0 |3 |8 |11 |23 |39 
 3 5 3 12 16 10 
 P1 P2 P3 P0 P5 P4 
(0+3+8+11+23+39)/6 = 14 
Round-Robin Q=4: 
 |0 |4 |7 |11 |14 |18 |22|26|27|31|35 |39|43|45|49 
 4 3 4 3 4 4 4 1 4 4 4 4 2 4 4 
P0 P1 P2 P3 P4 P5 P0 P2 P4 P5 P0 P4 P5 P5 
((0+22-4+39-26)+(4-1)+(7-2+26-11)+(11-3)+(14-4+31-18+43-35)+(18-5+35-22+45-39))/6 = 
21,83 
1) Considere o seguinte conjunto de processos, com a duração de surto de CPU expressa em 
milissegundos 
a) Desenhe os diagramas de Gantt que ilustre a execução desses processos usando os 
seguintes escalonadores, FCFS, SFJ preemptivo e não preemptivo, por prioridade e RR 
b) Qual dos escalonadores do item a resulta no tempo de espera médio, mínimo e máximo; 
2). 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? 
Uma situação como essa, em que vários processos acessam e manipulam os 
mesmos dados concorrentemente e o resultado da execução depende da ordem 
específica em que o acesso 
ocorre, é chamada uma condição de corrida. Para nos proteger da condição de corrida 
acima, temos de 
assegurar que apenas um processo de cada vez possa manipular a variável counter. Para 
garantirmos isso, 
é necessário que os processos sejam sincronizados de alguma forma 
 3). Quais são as condições necessárias que devem ser implementadas para resolver o 
problema da seção crítica? Explique cada uma das soluções. 
R: Uma solução para o problema da seção crítica deve satisfazer aos três requisitos a 
seguir: 
Exclusão mútua. Se o processo Pi está executando sua seção crítica, então nenhum 
outro processo pode executar sua seção crítica. 
Progresso. Se nenhum processo está executando sua seção crítica e algum processo 
quer entrar em sua seção crítica, então somente aqueles processos que não estão 
executando suas seções remanescentes podem participar da decisão de qual entrará 
em sua seção crítica a seguir, e essa seleção não pode ser adiada indefinidamente. 
Espera limitada. Há um limite, ou fronteira, para quantas vezes outros processos podem 
entrar em suas seções críticas após um processo ter feito uma solicitação para entrar 
em sua seção crítica e antes de essa solicitação ser atendida. 
4). Descreva as ações tomadas pelo kernel para fazer a troca de contexto entre 
processos? 
R: A alocação da CPU a outro processo requer a execução do salvamento do estado do 
processo corrente e a restauração do estado de um processo diferente. Essa tarefa é 
conhecida como mudança de contexto. Quando ocorre uma mudança de contexto, o 
kernel salva o contexto do processo antigo em seu PCB e carrega o contexto salvo do 
novo processo indicado no schedule para execução. O tempo gasto na mudança de 
contexto é puro overhead porque o sistema não executa trabalho útil durante a permuta 
de processos. A velocidade da permuta varia de uma máquina para outra, dependendo da 
velocidade da memória, do número de registradores a serem copiados e da existência de 
instruções especiais (como uma única instrução de carga ou armazenamento de todos os 
registradores). Uma velocidade típica é de alguns milissegundos. 
5). Um processo é representado no sistema operacional por um bloco de controle do 
processo. Que tipo de informações normalmente está em um processo? 
R: Um processo é mais do que o código do programa, que também é conhecido como 
seção de texto. Ele também inclui a atividade corrente, conforme representada pelo 
valor do contador do programa e o conteúdo dos registradores do processador. 
Geralmente, um processo também inclui a pilha do processo que contém dados 
temporários (como parâmetros de funções, endereços de retorno e variáveis locais), e 
uma seção de dados, que contém variáveis globais. Um processo também pode 
incluir um heap, que é a memória dinamicamente alocada durante o tempo de 
execução do processo. 
* Pilha, atividade atual, Heap, dados, texto; 
6). Quais as quatro condições necessárias para ser possível a ocorrência de 
DeadLock? 
R: 
Uma situação de deadlock pode surgir se as quatro condições a seguir ocorrerem 
simultaneamente em um sistema: 
 
Exclusão mútua. Pelo menos um recurso deve ser mantido em modalidade não 
compartilhável; isto é, apenas um processo de cada vez pode usar o recurso. Se outro 
processo solicitar esse recurso, o processo solicitante deve ser atrasado até que o recurso 
tenha sido liberado. 
Retenção e espera. Um processo deve estar de posse de pelo menos um recurso e perando 
para adquirir recursos adicionais que estejam no momento sendo retidos por outros 
processos. 
Inexistência de preempção. Os recursos não podem ser interceptados; isto é, um recurso 
pode ser liberado apenas voluntariamente pelo processo que o estiver retendo, após esse 
processo ter completado sua tarefa. 
Espera circular. Deve haver um conjunto {P0, P1, …, Pn} de processos em espera tal 
que P0 esteja esperando por um recurso retido por P1, P1 esteja esperando por um recurso 
retido por P2, …, Pn1 esteja esperando por um recurso retido por Pn, e Pn esteja esperando 
por um recurso retido por P0. 
7) Como detectar um DeadLock? 
R: 
Em um deadlock, os processos nunca terminam sua execução, e os recursos do sistema 
ficam ocupados, impedindo que outros jobs comecem a ser executados. Antes de 
discutirmos os diversos métodos que lidam com o problema do deadlock. 
8) O que é um ambiente Multithread e quais as vantagens de sua utilização? 
R: 
Em geral, há duas maneiras de tornar um núcleo processador multithreaded: criação de 
ambiente multithreads de baixa granularidade e de alta granularidade. No ambiente 
multithread de baixa granularidade, um thread é executado em um processador até que 
ocorra um evento de latência longa como uma obstrução da memória. Em razão do atraso 
causado pelo evento de latência longa, o processador deve permutar para outro thread e 
começar sua execução. No entanto, o custo da alternância entre threads é alto, já 
que o pipeline de instruções deve ser esvaziado antes que o outro thread possa começar a 
ser executado no núcleo processador. Uma vez que esse novo thread comece a ser 
executado, ele inicia o preenchimento do pipeline com suas instruções. O ambiente 
multithread de alta granularidade (ou intercalado) alternase entre os threads com um nível 
de granularidade muitomais fina — normalmente no limite de um ciclo de instrução. No 
entanto, o projeto da arquitetura de sistemas de alta granularidade inclui a lógica para a 
alternância entre threads. Como resultado, o custo da alternância entre threads é baixo. 
9) Suponha que um algoritmo de escalonamento favorece os processos que tem usado o 
menor tempo do Processador no passado recente. Por que esse algoritmo favorece programas 
de I/O-bound e não causa starvation permanente nos programas CPU-bound? 
R: 
Ele favorecerá os programas I/ O-Bound por causa da requisição de burst de CPU 
relativamente curta por parte deles ; os programas CPU-Bound não sofrerão starvation 
porque os programas I/ O -B ound abrirão mão da CPU com relativa frequência para 
realizar sua E/S. 
10) Como o uso de threads pode melhorar o desempenho de aplicações paralelas em 
ambientes com múltiplos processadores? 
R: A programação com múltiplos threads fornece um mecanismo para o uso mais 
eficiente desses múltiplos núcleos de computação e o aumento da concorrência. 
Considere uma aplicação com quatro threads. Em um sistema com um único núcleo 
de computação, a concorrência significa simplesmente que a execução dos threads 
será intercalada por meio do tempo, já que o núcleo de processamento é capaz de 
executar apenas um thread de cada vez. Em um sistema com múltiplos núcleos, no 
entanto, a concorrência significa que os threads podem ser executados em paralelo, já 
que o sistema pode atribuir um thread separado a cada núcleo.

Continue navegando