You are on page 1of 25

Lista de Resolvida

exerccios

Sistemas

Operacionais

1. Os servios e funes oferecidas por um sistema operacional podem ser divididas em duas categorias. Descreva brevemente as duas categorias e discuta como elas se diferem.

Convenincia

Execuo de programas Operaes de I/O Sistema de arquivos Deteco de erros Eficincia Alocao de recursos Proteo Contabilizaes

2. Liste 5 (cinco) servios, oferecidos por um sistema operacional, que so projetados para tornar o sistema de computao mais conveniente para os usurios.
1. Gerenciamento de processos, criao, fechamento, escalonamento, prioridades e comunicao entre eles. 2. Gerenciamento da memria principal: Alocao, desalocao, proteo e abstrao da memria virutal. 3. Gerenciamento dos sistemas de I/O. 4. Conexo em rede: Conexo com os dispositivos e implementao dos protocolos de rede. 5. Sistema de proteo (autorizao a usurios). 6. Implementao de sistema de arquivos.

3. O que so System Calls, cite 4 exemplos.


Constituem uma interface entre o processo e o sistema operacional. Exemplos: Inicia ou finaliza processo Altera atributos dos processos

Espera sinal

Abre ou fecha arquivo L relgio do sistema Envia ou recebe mensagens

4. Os sistemas operacionais podem ser construdos de diferentes maneiras. Descreva as principais arquiteturas existentes.
Do ponto de vista de projeto (arquitetura), segundo Tanenbaum (1999): * Ncleo monoltico ou monobloco: o ncleo consiste em um nico processo executando numa memria protegida executando as principais funes. * Microncleo ou modelo cliente-servidor: o ncleo consiste de funes mnimas (comunicao e gerenciamento de processos), e outras funes, como sistemas de arquivos e gerenciamento de memria, so executadas no espao do usurio como servios; as aplicaes (programas) so os clientes.

5. Descreva as aes tomadas pelo kernel para fazer a troca de contexto entre processos.
A troca de contexto exige que o estado do processo antigo (a sair do processamento) seja salvo e que o estado do processo novo (a entrar no processamento) seja carregado. O contexto representado no PCB que inclui o valor dos registradores.

6. Explique o que so os anis de execucao. Qual a diferena entre cdigo executando no nvel 0 e em outros nveis.
So extenes dos processadores que possibilitam separar os cdigos sendo executados na CPU por camadas. Nos CHIPs Intel Vo de RING0 (Kernel), passado por RING1 (Drivers), RING2 (Drivers) at RING3 (Aplicativos). O Kernel do Linux e do Windows XP usam somente o RING0 e RING3. O cdigo executado em RING0 o que tem mais privilgios (ou seja mais acesso ao hardware).

7. O que so processos, e quais os estados que podem assumir?


So programas em execuo na memria. * Novo * Em execuo * Em espera * Pronto * Terminado

8. O que so threads? Em que diferem de processos convecionais?


Um thread uma unidade bsica de execuo na CPU. Um nico processo pode ter diferentes threads. Cada thread compreende um ID, um contador de programa, um conjunto de registradores e uma pilha.

8.1. As principais sees de um processo so Pilha, Heap, Dados e Cdigo. Quais destas sees podem e/ou devem ser compartilhadas entre threads?
Os threads do mesmo processo compartilham com outros sua seo de cdigo, sua seo de dados, arquivos abertos e sinais.

8.2. Qual a diferena de threads em nvel de usurio e em nvel de SO


Thread em nvel de SO implementada em uma biblioteca pelo Sistema Operacional por exemplo pthreads no Linux. Utilizando-a as threads em nvel de SO so como processos independentes para o escalonador, tambm se o sistema tiver mais de 1 processador elas podem ser executadas 1 em cada processador. As threads em nvel de usurio uma implementao da aplicao em que voluntariamente um thread se retira do processamento e cede espao a outra thread. Para o sistema operacional apenas 1 processo.

9. Mostre um exemplo de uso do fork(). Explique quais so os valores retornados pela funo.
int i; i=fork(); if(i==0) { printf("Processo Filho\n"); } else if(i>0) { printf("Processo Pai, que criou um filho numero: %i\n", i); }

10. Na criao de processos utilizando fork() um novo processo criado com a imagem do processo pai. Como o kernel Linux evita a necessidade de realizar esta cpia no momento da chamada do fork?
Sim, uma otimizao do Kernel do Linux implementa Copy-on-write. Consistem em compartilhar os dados somente referenciando a mesma rea nos forks criados pelo

mesmo processo. Ao modificar alguma das pginas uma cpia da pgina feita.

11. O que significa escalonamento preemptivo?


Envolve o uso de interrupes para suspender o processo em execuo no momento e invoca um escalonador para determinar qual o prximo processo que deve ser executado. Sendo assim todo processo ter um tempo de execuo na CPU em algum momento.

12. O que significa dizer que o Kernel tambm preemptivo?


Significa dizer que operaes de kernel (servios ou funes) podem ser interrompidas.

13. O que starvation? Mostre um algoritmo que poderia levar a essa condio.
Ocorre quando um processo depende de um recurso e seu acesso negado perptuamente. Sem este recurso o processo no pode terminar sua tarefa.

14. O que um deadlock? Mostre um um algoritmo que pode entrar em deadlock.


Ocorre quando, um processo (ou mais) est em posse de um recurso no compartilhado e esperando por outro recurso em posse de outro processo que tambm aguarda um recurso. Essa espera pode ser do processo anterior ou outro processo de forma que feche um ciclo. E conseqentemente estes processos no sofrem preempo.

15. Quais dos seguintes algoritmos de escalonamento podem levar a "starvation" e porque? a) First-come, Fist-served
Pode ocorrer inanio (starvation), se o primeiro processo (que chega primeiro) da fila for longo. Ento o tempo de espera mdio de todos os outros processos ser muito grande.

b) Shortest job first


o algoritmo timo (do ponto de vista computacional) no tempo de espera. O maior tempo de espera ser o processo com maior pico de CPU.

c) Round Robin
Depende exclusivamente do tamanho do quantum da CPU. Se for muito grande ser equivalente a FCFS, mas se for pequeno ser a sensao de dividir a CPU pelo numero de processos.

d) Priority
Um processo que esteja pronto para executar, mas no tennha a posse da CPU pode ser considerado bloqueado. Um algoritmo por prioridades pode deixar alguns processos de baixa prioridade esperando indefinidamente pela CPU.

16. Que tcnica usada para evitar que um processo em um algoritmo de escalonamento por Multilevel Feedback-Queue nunca execute?
Define-se que os processos que esto esperando por muito tempo na fila de menor prioridade so promovidos com maior prioridade.

17. O que deve ser considerando ao escrever um algoritmos de escalonamento em um sistema SMP?
Primeiramente deve ser considerado que os processadores so idnticos (ou homogneos), esta diferena mudaria toda a abordagem. Depois pode-se criar uma fila de processos para cada processador, ou se for uma fila deve se evitar que 2 processadores peguem o mesmo processo ou que algum processo se perca da fila.

18. Explique como funcionava o escalonador de prioridades no Kernel Linux (de 2.6 at 2.6.23)
1. Escalonador por prioridade dinmica. 2. Heurstica para dizer se o processo IO bound, CPU bound ou interativo. 3. Quantum varia durante o tempo e processos. 4. O(1)

5. Todo processo tem prio esttica entre 100 e 139 e dinmica entre 100 e 139 (menor valor maior prioridade) 6. Quantum base => Prio_estat > 120 ? (140-Prio_estat)*20 : (140-Prio_estat) * 5 7. Prioridade dinmica => max(100, min(prio_estat bonus + 5, 139))

19. Explique o algoritmo de escalonamento Completely Fair Scheduler que atualmente utilizando no kernel Linux.
1. No tem 1 fila, 2. Dividir n CPU's entre os processos igualmente 3. linha do tempo de execuo 4. Redblack tree O(log(n)) 5. Relgio preciso de nano segundos 6. Relgio para incrementar este tempo baseado no wallclock / nm de processos esperando para executar 7. Quando executa decrementa waiting time 8. Prioridade padro do decaimento do waiting time

20. Mostre como funciona a soluo de alternncia estrita. Explique qual sua limitao na prtica.
Esta uma soluo a qual obriga que a regio crtica seja dada a um dos processos por vez, em uma estrita alternncia. O problema com a soluo de alternncia estrita que requer que os dois processos se alternem precisamente, o que significa que o nmero de acessos de cada processo deve ser exatamente igual ao do outro. Alm disso pode acontecer de um dos processos no poder prosseguir normalmente. Pois aps entregar a seo crtica para o outro processo no pode mais pedi-la novamente.

21. O que o problema da Regio Crtica? Mostre um exemplo onde no trat-lo poderia levar a um erro.
Regio crtica um segmento de cdigo que enquanto est em execuo no permitido a nenhum outro processo sua execuo ao mesmo tempo. Pode ser a operao em tabelas, arquivos e assim por diante.

22. Mostre e explique o funcionamento da soluo de Peterson.

O algoritmo de Peterson um algoritmo de programao concorrente para excluso mtua, que permite a dois ou mais processos ou subprocessos compartilharem um recurso sem conflitos, utilizando apenas memria compartilhada para a comunicao (Wikipedia).
flag[0] = 0; flag[1] = 0; turn; P0: flag[0] = 1; turn = 1; P1: flag[1] = 1; while (flag[1] == 1 && turn == 1) turn = 0; { while (flag[0] == 1 && turn == 0) // busy wait { } // busy wait // critical section } ... // critical section // end of critical section ... flag[0] = 0; // end of critical section flag[1] = 0;

O algoritmo utiliza duas variveis, flag e turn. O valor de flag 1 indica que o processo quer entrar na regio crtica. A varivel turn guarda o ID do processo com a vez. A entrada na regio crtica garantida para P0 se P1 no quiser entrar na regio crtica ou se P1 deu prioridade para P0 atribuindo o valor de turn para 0. Este algoritmo satisfaz os 3 problemas de regies crticas: a excluso mtua, o progresso e espera limitada.

23. O que so semforos? Mostre um exemplo de uso.


uma ferramenta de sincronizao generalizvel. uma varivel inteira que a parte de sincronizao acessada somente por duas operaes wait e signal. void wait(S){ while (s<=0); // loop sem operao s--; } void signal(s){ s++; }

Exemplo de uso: do{ wait(mutex); <SEO CRITICA> signal(mutex); <SEO REMANESCENTE> }while(1);

24. Mostre uma soluo usando semforos para o problema "BoundedBuffer"


/* PRODUTOR*/ do{ wait(empty); wait(mutex); insere_buffer(elemento); signal(mutex); signal(full); }while(1); /*CONSUMIDOR*/ do{ wait(full); wait(mutex); remove_buffer(elemento); signal(mutex); signal(empty); }while(1); 25. Mostre uma soluo usando semforos para o problema "Readers-Writers" 26. Mostre uma soluo usando semforos para o problema "DiningPhilosophers" 27. Resolva pelo menos 3 problemas de sincronizao do Livro "The Little Book of Semaphores".

28. O que copy-on-write e sob quais circunstncias ela til?


Consistem em compartilhar os dados somente referenciando a mesma rea. Ao se modificar alguma das pginas uma cpia da pgina feita. E somente aquela pgina que alterada fica diferente do resto. til pois torna programa implementados com forks mais leves.

1. Explique a diferena entre fragmentao interna e externa.


(wikipdia) A fragmentao interna a perda de espao dentro de uma rea de tamanho fixo. Numa memria secundria, ela ocorre quando um arquivo ou fragmento de arquivo no ocupa completamente o espao da unidade de alocao destinado a ele, causando desperdcio de espao. Cada unidade de alocao no pode comportar fragmentos de arquivos diferentes.

A fragmentao externa ocorre em sistemas de arquivo quando muitos arquivos de tamanhos diferentes so criados, modificados em seu tamanho, e/ou eliminados. O efeito pior se um arquivo que dividido em muitas pequenas partes for eliminado, porque isto deixa regies pequenas de espao livre.

Quanto maior for o tamanho dos clusters no sistema de arquivos usado e maior for o nmero de arquivos pequenos armazenados, maior o ndice de fragmentao interna, que alm de perda de espao, causa perda de desempenho, j que teremos reas vazias entre os arquivos armazenados nos discos magnticos.

2. Dadas parties de memria de 100KB, 500KB, 200KB, 300KB e 600KB (em ordem), como cada um dos algoritmo: Fist-fit, best-fit e worst-fit, alocariam processos de 212Kb, 417Kb, 112KB e 426KB? Qual dos algoritmos faria o uso mais eficiente de memria.
First Fit acomoda espao na memria pelo comeo da memria disponvel at o fim, at encontrar o primeiro espao livre que seja grande o suficiente. Se no retorna erro. Best Fit tenta determinar o melhor lugar para alocar os dados. A definio de melhor varia nas implementaes, mas por exemplo pode ser escolhido o espao que deixaria menor resduo no final do bloco.

Worst Fit. O algoritmo seleciona o maior espao possvel que a informao pode ser armazenada (maior que a informao). o completamente oposto do best-fit que procura o menor espao possvel.

3. Explique os seguintes algoritmos para substituio de pginas (page replacement): FIFO, Optimal e LRU. No caso do LRU, voc deve explicar quais so as polticas de aproximao para o LRU.
FIFO uma fila normal onde o primeiro que entra o primeiro que sai. simples e tem desempenho ruim (pode aumentar o paginamento com aumento de memria o que absurdo)

Optimal: Quando uma pgina precisa ser trocada, o sistema operacional troca a pgina que o seu prximo uso ser num futuro distante. Por exemplo, uma pgina que no ser usada nos prximos 6 segundos ser trocada por uma pgina que ser usada em 0.4 segundos.

LRU: Quando uma pgina usada marcada como referenciada. Em certo momento por interrupo de relgio, atribui-se a pgina os bits de no referenciados. Ento divide-se a pgina em 4 classes, referenciado ou no e modificado ou no.

4. Como funciona o mapeamento de arquivos em memria, qual a vantagem de utilizar esse modo de acesso.
o mapeamento de um arquivo como se fosse um array em memria. eficinte porque utiliza leitura preguiosa s lendo os dados que realmente precisam ser lidos. No Posix pode ser feito por mmap()

5. O que o modo de alocao de memria "Buddy System". Qual a sua desvantagem?


O modo de alocao Buddy System divide a memria em pedaos com tamanho potncia de 2. Existe um limite superior (maior bloco

que pode ser alocado) e inferior (menor bloco que pode ser alocado). Quando feita uma requisio arredonda-se o tamanho requisitado e se o tamanho maior que a metade do bloco inicial ento o bloco inteiro alocado. Seno o bloco dividido em dois "buddies" e assim recursivamente. O mtodo de liberar a memria eficiente e relativamente rpido. Tipicamente implementado por uma rvore binria que representa blocos usados e no usados. Contudo ainda existem problemas de fragmentao interna.

6. O que o mecanismo de alocao chamado SLAB?


A idia fundamental por trs do SLAB baseada na observao de que alguns objetos do kernel so frequentemente criados e destrudos e aps isso nunca mais so necessrios. Isso implica que cada alocao de memria para estes objetos as vezes custa uma busca best-fit. E ainda a desalocao do espao de memria aps a destruio do objeto causa fragmentao. Na implementao do SLAB existe cache e uma estrutura Slab que pode ser empty, partial, full. Como ele aloca somente o espao necessrio a fragmentao interna no existe.

7. O que o Overcommit de memria?


Overcommit de memria uma funo do kernel que permite alocar mais memria do que realmente disponvel. A idia por de trs dessa funcionalidade de que alguns aplicativos alocam mais espao que precisam, mas nunca usam. Isso permite que se rode mais aplicativos que cabem na memria, mas ele no podem usar a memria, caso isso acontea estes aplicativos so fechados.

8. Qual a relao entre o espao de endereamento virtual e utilizao da memria fsica?


O endereamento virtual agrega tando endereos armazenados em memria secundria quando endereos resididos na memria ram.

9. O que significa dizer que a memria virtual de um processo 50MB, a memria residente 20MB e a memria compartilhada 10MB.

Significa que 20 mb esto na memria RAM, e 10 mb compartilhado com outro processo por ter gerado (ou sido gerado) por um Fork e estas pginas no sofreram escrita ainda.

10. Quais as vantagens e desvantagens de guardar o nome do programa criador junto aos atributos do arquivo?
Vantagem: Livra o sistema operacional de saber com qual aplicativo deve ser aberto o arquivo, facilita tambm a vida do usurio por ter acesso rpido e simples a leitura e edio do arquivo. Desvantagem: Um terceiro pode alterar o arquivo para apontar para um programa mal intencionado.

11. Na semntica de sistema de arquivos do Unix o que acontece quando um arquivo que est aberto removido?
Ele no ficar mais acessvel aos programas que quiserem o acessar logo aps o momento de remoo. Porm continuar acessvel por aqueles programas que j estavam com o arquivo aberto no momento da remoo. Para cada arquivo o file system mantem um contador que indica quantos procesos o esto usando, quando removido o arquivo se o contador no for 0 apagado somente o acesso ao mesmo, mas o arquivo mantido no disco at que todos os processos se encerrem.

12. No NFS (Network File System) o que o "Silly Rename"? Porque surgem os arquivos .nfsXXXXXX ?
(Segundo NFS FAQ) Aplicaes em Unix geralmente criam arquivos de rascunho e removem sua ligao. Quando fazem isso o arquivo passa a no ser visvel no sistema de arquivos para quando a aplicao fechar o arquivo este ser removido. Conhecido como "delete on last close", comum em aplicaes Unix. Pela forma como o NFS foi especificado, no existe maneira de apagar o arquivo do sistema, o deixando disponvel para aplicaes. O que o NFS faz emular este comportamento renomeando o arquivo para algo como ".nfsXXXXX". que esconde o arquivo para seu uso. Isso conhecido como "silly rename." Aps o fechamento do processo o arquivo apagado. Ou fica residual em caso de crash da aplicao.

O NFS stateless, e no sabe quais arquivos esto sendo utilizados, assim pra manter compatibilidade com os programas linux (onde um arquivo aberto pode ser excludo sem problemas) ele renomeia o arquivo e deixa ele oculto, quem estava com o arquivo aberto continua lendo deste .nfsX

13. Sobre mtodos de alocao de espao, responder: a) Como funciona a alocao de espao contgua? Que problemas apresenta?
Cada arquivo ocupa um conjunto de blocos contguos no disco. Somente necessrio armazenar a localizao inicial (nmero do bloco) e o tamanho do arquivo (quantidade de blocos). Pode ser feito mapeamento de endereo lgico para o fsico, mas os arquivos no podem crescer. A alocao de espao contgua requer que cada arquivo ocupe um conjunto de blocos contguos no disco. Os endereos de disco definem um ordenamento linear no disco. Com isso, o nmero de operaes de busca no disco, exigidos para acesso a arquivos alocados contiguamente, mnimo, assim como o tempo de busca quando uma operao de busca for necessria. Como problemas encontrados na alocao contgua temos: - a dificuldade de encontrar espao para um novo arquivo. Sistemas de gerenciamento de espao livre devem ser utilizados para realizar esta operao, mas tais sistemas geram fragmentao externa; - a dificuldade de determinar a quantidade de espao necessrio para um arquivo. Pela falta de conhecimento na hora da criao do arquivo, ou para futura ampliao do mesmo. Em geral, o espao necessrio superestimado. Gerando assim fragmentao interna.

b) Como funciona a alocao de espao por encadeamento (linked allocation). Quais os problemas apresentados por este mtodo?
Cada arquivo uma lista encadeada de blocos em disco. Os blocos podem ser espalhados no disco. Tem pouca perda de espao porm no tem acesso direto, tem que percorrer a lista. O diretrio contm um ponteiro para o primeiro e ltimo blocos do arquivo. E cada bloco contm um ponteiro para o proximo bloco. No gera fragmentao externa.

Como problemas encontrados na alocao por encadeamento temos: - O principal problema que ela so pode ser efetivamente utilizada para arquivos de acesso sequencial. - O espao perdido com a alocao dos ponteiros, logo, cada arquivo ir requerer um pouco mais de espao do que necessitaria em outra situao. - O problema da confiabilidade, como a integridade do arquivo mantida por intermedio de ponteiros espalhados por todo o disco, se um desses ponteiros for corrompido, pode-se ter grandes perdas de dados ou de espao livre.

c) Como funciona a FAT (File-Allocation Table) usado pelo MS-DOS, qual a diferena em relao alocao por encadeamento simples?
A FAT usa uma tabela de alocao de arquivos, esta tabela fica alocada em uma seo do disco no inicio de cada partio. A FAT tem uma entrada para cada bloco do disco e indexada pelo nmero do bloco. A entrada da tabela, indexada pela entrada do arquivo no diretrio, contm o nmero do bloco do prximo bloco no aquivo. Assim continua at o bloco que contm o identificador de fim de arquivo. Ao contrario da alocao por encadeamento a FAT no utiliza um espao em cada bloco do disco como ponteiro (utiliza os blocos com valor igual a zero na tabela que representam blocos livres).

e) Em um sistema de arquivos usando uma FAT o que acontece se ocorrer a corrupo total da tabela de alocao de arquivos?
Se a tabela FAT (tabela 1) corromper, existe uma tabela 2 de backup usada pelo scandisk.

f) Como funciona a alocao de espao indexada? Que problemas da alocao usando encadeamento ela tenta resolver?
A alocao indexada utiliza ponteiros, como a alocao por encadeamento, mas agora todos esses ponteiros so armazenados juntos em um bloco de ndices. Cada arquivo possui seu prprio bloco de ndices que um array de endereos de blocos de disco. O diretrio contm o endereo do bloco de ndices, e a -esima entrada

do bloco de ndices aponta para o -esimo bloco do arquivo. Desta maneira possvel realizar com facilidade o acesso direto ao arquivo. A alocao indexada tenta resolver o problema da falta de eficincia no acesso direto a arquivos, que ocorre quando se usa a alocao por encadeamento.

f) Dentro da alocao indexada quais so os mecanismos usados para guardar os ndices?


A alocao indexada causa um desperdcio de espao em disco por conta do armazenamento do bloco de ndices. Pois um bloco inteiro de ndices deve ser armazenado para cada arquivo, mesmo que apenas um ou dois ponteiros sejam realmente utilizados. Para reduzir esse desperdcio devem ser utilizados blocos de tamanho menor para armazenar os ndices. Mas blocos menores limitam a indexao de grandes arquivos. Para resolver este problema alguns mecanismos so usados para guardar os ndices. Eles so: - Esquema encadeado: Diversos blocos de ndices encadeados, no caso, o ultimo endereo do bloco de ndices nulo (caso o bloco represente todo o arquivo) ou um ponteiro para outro bloco de ndices (para grandes arquivos). - ndice multinvel: Um bloco de ndices de primeiro nvel aponta para um conjunto de blocos de ndices de segundo nvel, que por sua vez aponta para os blocos do arquivo. Esta abordagem poderia ser estendida para um terceiro ou quarto nveis dependendo do tamanho mximo de arquivo requerido. - Esquema combinado: Utiliza uma combinao dos dois esquemas anteriores.

g) O que so i-nodes? Em qual mecanimos de alocao indexada eles se enquadram?


I-node o primeiro bloco encontrado quando se faz o acesso a um arquivo e consite em uma estrutura de dados que relaciona os atributos e os endereos em disco dos blocos do arquivo , este bloco de ndice utiliza um mecanismo de alocao indexada do tipo combinada. Em geral utiliza-se um esquema onde os 12 primeiros ponteiros apontam para blocos diretos, ou seja, que contem dados do arquivo; os outros 3 ponteiros apontam para blocos indiretos. O primeiro ponteiro para um bloco indireto o endereo de um bloco indireto simples (um bloco de ndices que no contm dados, mas endereos de blocos que contm dados). Depois existe um ponteiro para um bloco indireto duplo (contm o endereo de um bloco que

contm os endereos de blocos que contm ponteiros para os blocos de dados reais). O ltimo ponteiro conteria o endereo de um bloco indireto triplo.

14. Considere um sistema com i-nodes com 15 ponteiros. Nestes i-nodes os 12 primeiros so usados para alocao direta; o 13 ponteiro para alocao simples indireta; o 14 para alocao dupla indireta e o 15 para alocao triplaindireta. Considere ainda que cada bloco tem 512Kb. Como ficaria a estrutura de inodes para armazenar um arquivo de 129024 bytes (252 blocos)?
Pra salvar um arquivo de 252 blocos, no caso, seria os primeiros 12 blocos do primeiro i-node ocupado, depois mais 15 blocos do i-node nvel 1. Depois vem o i-node de nvel 2, que ficaria os quinze nveis dele apontando cada um para um inode distinto, e cada i-node destes teria 15 blocos; Ou seja, mais 225 blocos, e totalizando 242 blocos, faltam 10. O i-node de nvel 3 apontaria para um de nvel dois, que usaria apenas um de seus apontadores, pra um de nvel 1, que salvaria 10 blocos nele.

[] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> 1 bloco [] -> [] x15-> 12 blocos

[] -> [] x15-> [] x15 -> 225 blocos [] -> [] x1 -> [] x1 -> [] x10 -> 10 blocos

No total voc ocuparia 268 i-nodes

15. Qual a diferena de simbolic links e hard links? E como a implentao de cada um? Como feito o controle de remoo de arquivo em cada caso?

Existem dois conceitos de "links" no Unix, usualmente nomeadas de symbolic link e hard link. Um hard link exatamente um nome para o arquivo (E um arquivo pode ter vrios nomes. Aquilo s apaguado do disco somente quando o ltimo nome removido.) Um symlink totalmente diferente: um pequeno arquivo especial que contm o nome de caminho. Assim, a ligao fraca pode apontar arquivos em diferentes sistemas de arquivos (talvez NFS montadas de diferentes mquinas), e no precisa de ponto para o arquivo existente atualmente. Quando acessado (com a chamada de sistema open ou stat, uma referncia para o symlink substituda pelo kernal do sistema operacional com uma referncia para o arquivo nomeado no nome de caminho. (De qualquer forma, com rm ou unlink a ligao removida, no o arquivo que ela aponta).

16. Considere um sistema onde o espao livre gernciado por uma lista de espao livre. Suponha que o ponteiro para a lista de espaos-livres foi perdido. Esta lista pode ser reconstruda? Explique sua resposta.
Uma possvel soluo seria veirificar todos os blocos utilizados pelos diretrios/arquivos/sistema e considerar os outros como livres. Deve-se pensar no fato de que ao um arquivo ser deletado, no necessariamente os dados que ele tem so deletados nos blocos (geralmente que eu saiba no, apenas deletado a ligao para ele).

Ento a soluo de percorrer por todos os blocos e pegar os livres no funciona.

17. Quais so os mtodos para gernciamento de espao livre em disco?


- Vetor de Bits (bitmap) Cria um vetor onde cada posio corresponde a um bloco do disco, e possui valor 0 para livre e 1 para ocupado. Vantagem: simplicidade e eficincia para encontrar o primeiro bloco livre. Desvantagem: ineficiente ao menos que sejam mantido na memria principal (seno fica muito custoso o acesso repetidamente ao disco) e ocupa muito espao - Lista Encadeada Desvantagem:para varrer a lista preciso ler cada bloco

-Vetor de bits: A lista de espao livre implementada como um mapa de bits ou um vetor de bits. Cada bloco representado por 1 bit. Se o bloco estiver livre o bit ser 1; se o bloco estiver alocado o bit ser 0. A principal vantagem que relativamente simples e eficiente encontrar o primeiro bloco livre, ou n blocos livres consecutivos no disco. Mas so ineficientes a no ser que todo o vetor seja mantido na memria principal. -Lista Encadeada: Encadear todos os blocos de disco livres, mantendo um ponteiro ao primeiro bloco livre em uma posio especial no disco e armazenando-os em cache na memria. Esse primeiro bloco contm um ponteiro ao prximo bloco livre de disco, e assim por diante. No eficiente, para percorrer a lista, precisamos ler cada bloco, o que requer tempo substancial de I/O. -Agrupamento:

Armazena os endereos de n blocos livres no primeiro bloco livre. Os primeiros n-1 desses blocos esto realmente livres. O bloco final contm os endereos de outros n blocos livres, e assim por diante. Assim os endereos de um grande nmero de blocos livres podem ser rapidamente encontrados. -Contadores: Em vez de manter uma lista de n endereos de disco livres, mantm o endereo do primeiro bloco livre e o nmero n de blocos contguos livres que seguem esse primeiro bloco. Cada entrada na lista de espao livre consiste ento em um endereo de disco e um contador.Embora cada entrada exija mais espao que um endereo de disco simples, a lista global fica mais curta. Aproveita o fato de que em geral vrios blocos contguos podem ser alocados ou liberados simultaneamente.

18. Quais as estapas de um checkagem de consistncia de um file system?


A verificao de consistncia compara os dados na estrutura de diretrio com os blocos de dados no disco e tenta corrigir quaisquer inconsistncias encontradas. Os algoritmos de alocao e gerncia de espao livre determinam os tipos de problemas que o verificador poder encontrar e qual ser a taxa de sucesso na correo desses problemas. Um possvel teste verificar no nmero de hardlinks apontando para o inode.

19. Como funcionam os sistema de arquivos baseados em Journaling? Quais suas vantagem? O que tentam garantir?
Um sistema de arquivos com journaling d permisso ao Sistema Operacional de manter um log (journal), de todas as mudanas no sistema de arquivos antes de escrever os dados no disco. Normalmente este log um log circular alocado em uma rea especial do sistema de arquivos. Por ser mais bem localizado em espao menor costuma ter melhor desempenho tambm.

Este tipo de sistema de arquivos tem a oferecer uma melhor probabilidade de no sofrer corrupo de dados no caso de o sistema travar ou faltar energia, e uma recuperao mais rpida, pois no

necessita verificar todo o disco, somente aqueles que pertenciam a um log que no fora fechado devidamente.

20. Explique os seguintes algoritmos de escalonamento de requisies de disco: FCSF, SSTF (Shortest-Seek First), SCAN, C-SCAN e LOOK.
FCSF atende as requisies em fila, SSTF escolhe o endereo com menor deslocamento, e isso pode causa inanio. Scan o mtodo elevador, o ponteiro do disco percorre de um lado para o outro atendendo as requisies. O C-SCAN similar mas s funciona em um sentido e melhor no tempo de resposta mdio. O Look como o SCAN implementado na prtica que no vai at o fim do disco mas s at o ltimo endereo requisitado.

21. Quais sao os algoritmos de escalonamentos disponveis atualmente do kernel Linux? Descreva cada um deles.
NOOP

o escalonador de I/O mais simples do Linux. Ele insere todas as requisies de I/O uma fila FIFO (First In First Out) no ordenada.

O escalonador assume que a otimizao do desempenho de I/O ser feito em alguma outra camada da hierarquia de I/O (por exemplo, no dispositivo de blocos, por um controlador RAID "inteligente" ou por um controlador externo como um subsistema de armazenamento (storage).

O NOOP melhor para dispositivos de estado slido (SSD - Solid State Devices) como memria flash ou, em linhas gerais, dispositivo que no dependam de movimento mecnico para acesso aos dados (como a tecnologia tradicional de "disco rgido" que depende do tempo de acesso - seek time - e da latncia rotacional). Dispositivos no-mecnicos no necessitam de reordenamento de mltiplas requisies de I/O, uma tcnica que agrupa as requisies de I/O que esto fisicamente prximas no disco, dessa forma reduzindo o tempo

mdio de acesso e a variabililidade do tempo de "servio" (pense em servir algo) de I/O.

ANTICIPATORY

O objetivo aumentar a eficincia de "antecipando" operaes de leitura sncrona.

utilizao

do

disco

"Deceptive idleness" uma situao onde um processo parece ter terminado a leitura do disco quando na verdade est processando dados enquanto se prepara para a prxima operao de leitura. Isto far com que um escalonador que procura reduzir trabalho mude para outro processo no relacionado. Esta situao prejudicial vazo de leituras sncronas, pois sobrecarrega o trabalho de "acesso". A soluo do escalonador Anticipatory para o "Deceptive idleness" fazer uma pausa por um pequeno tempo (alguns milisegundos) aps uma operao de leitura em antecipao a outra requisio de leitura fisicamente prxima.

O Anticipatory pode reduzir o desempenho em discos usando TCQ (Tagged Command Queuing), discos de alto desempenho e conjuntos (arrays) RAID feitos via hardware. Este escalonador foi o padro no Linux entre o kernel 2.6.0 e o 2.6.18, sendo substitudo pelo CFQ.

DEADLINE

A principal meta deste escalonador tentar garantir um tempo inicial para atender uma requisio. Ele faz isso impondo uma "deadline" em todas as operaes de I/O para evitar "starvation" dos recursos. So mantidas duas filas de "deadline" alm das filas ordenadas (ambas de leitura e escrita). As filas de "deadline" so minimamente

ordenadas por seu tempo de expirao, enquanto que as filas ordenadas usam o nmero do setor para definir a ordem.

Antes de atender a prxima requisio, o Deadline decide qual fila usar. Filas de leitura recebem prioridade maior porque os processos usalmente "param" em operaes de leitura. Em seguida, o escalonador verifica se a primeira requisio na fila "deadline" expirou, se no ele serve uma sequncia de requisies da fila ordenada. Nos dois casos, o escalonador tambm serve uma sequncia de requisies seguindo a requisio escolhida na fila ordenada.

Por padro, as requisies de leitura expiram em 500ms, requisies de escrita em 5 segundos.

A documentao indica que este o escalonador recomendado para sistemas de bancos de dados, especialmente em discos que trabalham com TCQ (Tagged Command Queuing) ou quaisquer sistemas com discos de alto desempenho.

CFQ (Completely Fair Queuing): 1 fila de I/O por processo, o objetivo ser justo entre os processos.

O CFQ funciona colocando requisies sncronas enviadas pelos processos em uma certa quantidade de filas por-processo e ento alocando espaos de tempo para que cada uma das filas acesse o disco. A quantidade de tempo e o nmero de requisies que uma fila pode enviar depende da prioridade de IO de um determinado processo.

Requisies assncronas para todos os processos so processadas em conjunto em um nmero menor de filas que esto separadas por prioridade (uma fila por prioridade).

Embora o CFQ no faa explicitamente escalonamento de I/O anticipatrio, ele atinge o mesmo efeito de ter boa vazo para o sistema como um todo, permitindo que uma fila de processo "no faa nada" (idle) ao final de um IO sncrono e, dessa forma, "antecipando" IOs prximos vindos do mesmo processo.

O CFQ pode ser considerado uma extenso natural da ao de conceder "fatias de tempo de IO" a um processo.

22. Compare RAID0, RAID1, RAID5 e RAID6.


RAID0 grava blocos espalhados pelo disco, o que d baixa confiabilidade e alto desempenho. O espao total a soma de todos os discos. RAID1 grava os blocos duplicados nos discos, garante alta confiabilidade e desempenho ruim. Em especial a escrita se tiver 1 disco lento, fica tudo lento. Espao total o espao de 1 disco. RAID5 faz paridade dos blocos, para isso tem que ter ao menos 3 discos. Com 1 bloco e a paridade (ou 2 blocos) possvel refazer o outro bloco. As paridades ficam espalhadas nos discos. RAID6 2 Paridades. Podem falhar 2 discos e espao (n-2)*x

23. Suponha que voc possui 4 discos rgidos de 750GB. Quanto espao disponvel voc obteria usando RAID5 e quanto espao voc obteria com RAID6? Quantos discos poderiam falhar em cada um destes casos?
Com RAID5 para cada 2 blocos tem 1 bloco de paridade. Ento, como os blocos esto espalhados, voc teria 2000GB de espao utilizvel e 1 disco podendo falhar. Com RAID6 teria 1 paridade a mais que d (4-2)*750 = 1500GB de espao utilzvel, mas podendo falhar 2 discos.

Questo Sistemas Operacionais Escalonamento


Depois de espairecer um pouco com os mapas mentais sobre Histria do Egito e da Grcia, voltemos aos mapas mentais para concursos de TI.

Questo FCC DPE SP Agente de Defensoria Analista de Sistemas /2010 tags: FCC, Agente de Defensoria, Analista de Sistemas, concursos TI, Sistemas Operacionais, Processos; Algoritmo de Escalonamento;
Os processos no sistema operacional que possuem um timer, chamado de quantum, onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU, caracterizam o escalonamento de processos do tipo a) RR Round-Robin. b) FIFO First in, first out. c) FCFS First come, first served. d) SJF Shortest Job First. e) SRT Shortest Remaining Time. Comentrio O Escalonamento permite que o Sistema Operacional faa o compartilhamento do CPU entre os os processos. Os principais algoritmos de escolamento so os citados na questo. Mapas Mentais Mapas mental dos algoritmos de escalonamento

E agora o mapa mental do principal algoritmo de escalonamento Roud-Robin. Neste algoritmo duas informaes importantssimas: Fatia de tempo (Timeslice/Quantum) e Preempitivo.

Mapa Mental - Sistemas Operacionais - Escalonamento - Round-Robin

Gabarito: A

You might also like