Nenhuma considerao pode ser feita com relao a velocidade relativa dos processos e
a quantidade de processadores disponveis no sistema.
Nenhum processo que esteja rodando fora de sua regio crtica pode bloquear a
execuo de outro processo.
Nenhum processo pode ser obrigado a esperar indefinidamente para entrar em sua
regio crtica.
5. Como o SO pode executar uma operao down de forma atmica e pq ser
atmica?
Executa de forma atmica fazendo os seguintes passos: Verifica o valor do semforo.
Posteriormente modifica o valor do semforo se necessrio, depois coloca pra dormir se
tambm for necessrio.
O SO garante isso fazendo com que se um processo est mexendo no semforo, nenhum
outro pode mexer. Tem que ser atmico para resolver o problema de sincronizao e
no haver mais condies de corrida.
6. Suponha um programa que executa as threads D, T1, T2 e T3. D a Thread
despachante, ela responsvel pela recepo de servios e colocao do pedido
num dos trs buffers apropriado aquele servio. T1, T2 e T3 so responsveis pela
realizacao de servios distintos. Cada uma delas tem um buffer associado. Escreva
um pseudo-cdigo usando semforos de D, T1, T2 e T3 considerando que cada
buffer tem capacidade para armazenar no mximo N pedidos. Modifique sua
soluo para o caso em que todas as threads compartilham um mesmo buffer.
consume_item(item);
}
}
SEGUNDA PROVA DE SO [FUBICA]
1. Pq um programa precisa ser realocado?
R. Geralmente um programa precisa ser relocado quando excede o tamanho limite dos
dados
2. Em q ocasies o swapper executado?E como ele funciona?
R. Geralmente o processo de paginao feito por duas partes distintas ; o kernel que (
cria , aloca , e desaloca as paginas ) e o swapper que e um processo que executa de
tempos em tempos com privilgios de super usurio que verifica a quantidade de
pginas utilizadas , se estiver muito elevado o swapper libera espao na memria
colocando algumas paginas em disco.
Minha resposta:
A tcnica de swapping foi introduzida para contornar o problema da insuficincia de
memria principal. Essa tcnica aplicada gerncia de memria para programas que
esperam por memria livre para serem executados. Nesta situao, o sistema escolhe um
processo residente, que transferido da memria principal para a memria secundria
(swap out), geralmente disco. Posteriormente, o processo carregado de volta da
memria secundria para a memria principal (swap in) e pode continuar sua execuo
como se nada tivesse ocorrido.
3. O que swap? Quando ele necessrio? Diga como pode ser implementado uma
gerencia de memoria particular.
um espao reservado pelo SO em sistemas bacth, geralmente em disco, onde auxilia a
gerencia de memria e evita o problema de insuficincia de memria principal.
necessrio quando se necessita de uma pagina que no se encontra na memria
principal. Ento retira uma pgina da memria principal, que geralmente a menos
utilizada (swap out) e salva no disco caso tiver mexida e coloca a pgina requisitada na
memria principal no lugar da outra. Primeiro cria a partio swap no disco. Ento todo
o programa que for executado tem todas suas pginas transferidas para esse local e parte
delas so colocadas direto na memria principal.
4. Explique todos os passos de como feito o mapeamento de end. lgico em
end.fsico num sistema que implementa paginao em 2 nveis.(desprezar todas as
possibilidades).Obrigatoriamente falar sobre mem. associativa TLB.
R. Em um sistema que implementa paginao em 2 nveis possvel que uma pgina
esteja carrega na memria ou no disco , para mapear se mapear um endereo lgico para
um endereo fsico se faz necessrio :
* Verificar a pagina que o endereo lgico esta localizado
* Localizar o quadro de pagina
* Com o quadro de pagina localizado localizar o endereo real dentro do quadro de
pagina.
Para diminuir o tempo de acesso as tabelas de endereco (que geralmente esto na
memoria e tem o seu acesso lento ) durante busca de instrues, dados , etc. Foi
observado que os programas fazem varios acessos aos mesmo enderecos de memroia,
com base nisso foi colocada dentro da MMU uma tabela com os enderco das paginas
mais utilizadas ( a TLB ) , essa tabela tem geralmente 64 entradas , as buscas feitas
nessas tabelas sao feitas em paralelo , nessa tabela ficam dados como pagina , quadro de
pagina , se a pagina esta referenciade ... Com essa tabela se reduz drasticamente o
tempo gasto para localizar as paginas.
5. Suponha um sistema com 4 pginas, que executa um nico processo com 8
pginas, e que usa o algoritmo NFU(aging) para substituir pginas. As setas na
figura abaixo indicam os instantes de tempo em que as pginas do processo so
acessadas. Os traos indicam os instantes de tempo em que so atribudos valores
iguais a zero aos bits R da tabela de pginas do processo. assumindo que
inicialemente as pginas 0,1,2 e 3 esto ocupando os quadros de pginas da
memria, e que os contadores(de 8 bits) associados a essas pginas tm os valores,
0XA0, 0X20, 0X80,0X90, respectivamente, e que os contadores associados s outras
pginas tm valor 0X00, indique a sequncia de substituio de pginas para as
faltas de pgina da sequncia de acessos da figura abaixo.
00404515654567777253
--|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|-------R.Tem um exemplo desse no Thanebaum 2 edio
6.Quais as similaridades e dissimilaridades entre interrupes e excesses. Que
implicaes isto causa na implementao de um sistema de memria paginada?
R. |Interrupo so eventos gerados por hardware e excesses so eventos causados
quando o software no sabe o que fazer, para ambos dos eventos e gerada uma mudanca
de contexto para executar uma rotina de tratamento. Para uma sistema paginado e
importante levar em considerao se o hardware suporta algumas facilitdades ( bits R/S
no quadro de pagina , o bit P , etc ) que o hardware oferece, pois com esse hardware boa
parte do trabalho pode ser feito pelo hardware ( verificar se a pagina esta presente ) e
feita pelo hardware e eventuais erros virao por interrupes , a qual tera que ser
implementada para atender os eventuais erros. Ja em hardwares que no oferecem esse
tipo de facilidade todo o trabalho tera que ser feito pelo software e eventuais erros viro
na forma de execesses.
Obs.: as questes acima so de mini-testes aplicados por Fubica em outros semestres.
2. Outra ele deu uma operao "open( "/a/b/c" , "r" )" e perguntou qual era o
nmero mnimo e mximo de leituras em disco.
R. A operacao open /a/b/c no melhor caso vai funcionar da seguinte maneira :
O S.O vai procurar o i-node do diretorio raiz ( um acesso a disco ) , os sistema de
diretorio implementa um a funco hash para localizar o onde o diretorio "a" nao
importando em qual bloco esteja ( segundo acesso a disco ) , o processo ira se reptir
dentro do diretorio a para localizar o diretorio "b" ( terceiro aceeso a disco ) , a mesma
logica e aplicada para localizar o arquivo "c" que esta dentro do diretorio b, entao o
S.O ira ler todos os blocos do arquivo "c".
No pior caso a busca feita dentro dos diretorios e linear ira percorrer todos os blocos
ate achar a entrada que correta. Assim o Numero de acesso a disco sera 1 + N[/,a] +
N[a,b] + N[b,c] , N[x,y] = numero de blocos percorridos do diretorio x ate que o objeto
y seja encontrado.
[ pode ser que tenha que falar do cache do sistema ou do caminho relativo ou caminho
absoluto ]
3. Outra ele pediu para falar sobre os algoritmos para melhorar o desempenho de
acesso a disco.
R. Para melhorar o algoritimo FCFS ( estremamente ineficiente que ele trata as
requisies de acesso a disco de forma sequencia uma por vez ) , o SSF ( shortest seek
first ) foi desenvolvido para diminuir o tempo desperdiado pelo posicionamento do
brao do disco. A ideia basica por traz do SSF e atender as requisies proximas de
onde o braco esta . Se tivessemos as reuisies para atender ( 5,15,25,28,23,78,56,38 )
a ordem de atendimento seria 5,15,23,25,25,38,78. Este algoritimo tem um problema
se for chegando requisoes proximas de onde a agulha esta ah uma grande chance de
que as demais requisies nunca sejam atenditas.
Para resolver o problema do SSF foi desenvolvido o algoritimo do elevador, que segue
o seguinte principio se ele esta em M ( onde M<N ) e tem um requisio em N ele vai