Anda di halaman 1dari 6

PRIMEIRA PROVA DE SO [ FUBICA ]

Ler Sistema de arquivo em 2 niveis com TLB (memria associativa) e E/S


O que so interrupes e excees?
Uma interrupo sempre gerada por algum evento externo ao programa e, neste caso,
independe da instruo que est sendo executada. Ao final da execuo de cada
instruo, a unidade de controle verifica a ocorrncia de algum tipo de interrupo.
Neste caso, o programa em execuo interrompido e o controle desviado para uma
rotina responsvel por tratar o evento ocorrido, denominada rotina de tratamento de
interrupo. Para que o programa possa posteriormente voltar a ser executado,
necessrio que, no momento da interrupo, um conjunto de informaes sobre a sua
execuo seja preservado. Essas informaes consistem no contedo de registradores,
que devero ser restaurados para a continuao do programa.
Uma exceo um procedimento gerado por software e gerado por algum evento
interno do processo que est rodando, quando algo estiver errado. Um exemplo a falta
de pgina. O processador pede a pagina que no se encontra na memria principal...
2. Como e quais as finalidades com que o SO utiliza os nveis de processamento.
3. Diga quais so e explique os estados e as transies entre processos.
Rodando: Quando est usando o processador.
Pronto: Em condies de rodar e esperando a vez de usar o processador que est com
outro processo rodando.
Bloqueado: Impedido de rodar at que ocorra um determinado evento externo ao
processo.
Rodando para Bloqueado: Ocorre quando o processo necessita de algo para continuar
rodando e no existe ainda nenhuma entrada disponvel para permitir a execuo. Nesse
caso precisa ser bloqueado at que uma entrada esteja disponvel.
Bloqueado para Pronto: Ocorre quando o processo bloqueado recebe a entrada que ele
necessitava. Ento ele ir para o estado pronto e entra na fila de espera pelo
processador.
Pronto para Rodando: Ocorre quando o processo est esperando sua vez de rodar e
encerra a fatia de tempo cedido para o processo que estava rodando. Ento o que estava
em primeiro na fila passa para ser rodado.
Rodando para Pronto: Ocorre quando a fatia de tempo que o escalonador separou para
ele se encerra sem nenhum problema, ento o processo que estava rodando posto do
estado de pronto e o processador pega outro processo para rodar.
4. Como e pq ocorrem condies de corrida e como evitar?
Ocorre quando se utiliza memria comum e dois ou mais processos esto acessando
dados compartilhados e o resultado depende de quem roda quando, ou seja quando dois
ou mais processos se encontrar em sua regio critica. As condies de corrida podem
ser evitadas seguindo 4 passos existentes:
Dois ou mais processos no podem est simultaneamente nas suas regies criticas.

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.

Typedef int semforo;


semforo mutex = 0;
semforo empty = N;
semforo full = 0;
void producer (void){
int item;
while(TRUE){
produce_item(item);
down(empty);
down(mutex);
entre_item(item);
up(mutex);
up(full);
}
}
void consumer (void){
int item;
while(TRUE){
down(full);
down(mutex);
remove_item(item);
up(mutex);
up(empty);

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.

TERCEIRA PROVA DE SO [ FUBICA ]


1. Uma questo ele perguntou sobre as camadas do sistema de E/S.
R.
________________________________
|
Software do usuario
|
| Software do S.O independete do Driver |
|
Driver de Dispositivo
|
|
Hardware
|
|
Tratador de Interrupcao
|
-----------------------------------------------------------------

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

atendendo todas as requisicoes de M ate N quando atender a requisio N ele verifica


se tem alguma requisio >N caso nao tenha ele incia a decida de N ate 0 atendendo as
demais requisioes, caso exista alguma requisio Z ( tal que Z>N ) o algoritimo vai
ate Z e rotarna para a posio inicial e reinicia todo o processo.
4. Descrever como o sistema de arquivos Linux se organiza no disco.
R. O sistema de arquivo do linux se estrutura da seguinte maneira :
[ boot block | super block | i-node | files ]
O boot block : e apontado pelo MBR para inciar o S.O.
Super Block : Contem um numero magico que indica qual o tipo da partio
files : Os blocos com os dados
i-nodes : e a estrutra de dados responsavel por indicar onde estao os arquivos ,
geralmente tem 64-bytes e tem a seguinte estrutura :
__________
cabecalho
------------------------------------------------------- apontador p/ o bloco
------------------------------------------------------------------------- bloco intereto
------------------- bloco duplamente indereto
Falar sobre como o i-node funciona :p.
5. Fale sobre as condicoes para exista dead locks.
6. Explique as principais estruturas de dados do sistema de arquivo que residem
na memoria.

Anda mungkin juga menyukai