Você está aqui: Entrada / CI215 - Sistemas Operacionais

CI215 - Sistemas Operacionais

Informações básicas

Ementa

Componentes de um sistema. Administração dos recursos: memória principal e secundária. Administração dos processos: prioridades, interrupção, filas. Comunicação entre processos: semáforos e mensagens. Segurança.

 

Programa

  1. Introdução e estrutura de Sistemas Operacionais
  2. Processos e threads.
  3. Sincronização entre processos. Deadlocks.
  1. Gerenciamento de processos e escalonamento do processador.
  1. Gerenciamento de memória. Esquemas de gerenciamento de memória.
  2. Memória virtual.
  3. Paginação, segmentação, princípio da localidade e do conjunto de trabalho.
  4. Gerência de Armazenamento. Sistema de arquivos. Memória secundária. Mapeamento de arquivos em disco.
  5. Dispositivos de entrada e saída.
  6. Projeto, interface e desempenho de sistemas de entrada e saída.
  7. Virtualização

 

Avaliação

  • Duas provas (P1 e P2)
  • Um trabalho (T1)
  • Cálculo da média parcial: (P1 + T1+ P2)/3

 

Datas

 

Bibliografia de Referência

  • SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
  • TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.
  • CESATI, Marco; BOVET, Daniel. Understanding the Linux Kernel. 3rd Edition: O'Reilly, 2005. voinici.ceata.org/~tct/resurse/utlk.pdf

Lista de exercícios

Plain Text icon exercicios-so-utf.txt — Plain Text, 7 KB (7827 bytes)

Conteúdo do ficheiro

1. Os serviços e funçőes oferecidas por um sistema operacional podem ser
divididas em duas categorias. Descreva brevemente as duas categorias
e discuta como elas se diferem.

2. Liste 5 (cinco) serviços, oferecidos por um sistema operacional, que săo 
projetados para tornar o sistema de computaçăo mais conveniente para os usuários. 

3. O que săo System Calls? Cite exemplos e năo deixe de explicar seu
mecanismo de invocaçăo. 

4. Explique o que săo sistemas operacionais monolíticos, monolíticos
com módulos e baseados em micro-kernel.

5. Descreva as açőes tomadas pelo kernel para fazer a troca de contexto
entre processos.

6. Explique o que săo os anéis de execucaçăo. Qual a diferença entre
código executando no nível 0 e em outros níveis. 

7. O que săo processos, e quais os estados que podem assumir?

8. O que săo threads? Em que diferem de processos convecionais?

9. Mostre um exemplo de uso do fork(). Explique quais săo
os valores retornados pela funçăo.

10. Na criaçăo de processos utilizando fork() um novo processo
é criado com a imagem do processo pai. Como o kernel Linux evita 
a necessidade de realizar esta cópia no momento da chamada do fork?

11. O que significa escalonamento preemptivo? 

12. O que significa dizer que o Kernel também é preemptivo?

13. O que é starvation? Mostre um algoritmo que poderia levar
a essa condiçăo.

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

15. Quais dos seguintes algoritmos de escalonamento podem levar 
a "starvation" e porque?
	a) First-come, Fist-served
	b) Shortest job first
	c) Round Robin
	d) Priority

16. Que técnica é usada para evitar que um processo em um algoritmo de escalonamento
por Multilevel Feedback-Queue nunca execute?

17. Mostre como funciona a soluçăo de alternância estrita. Explique
qual é sua limitaçăo na prática.

18. O que é o problema da Regiăo Crítica? Mostre um exemplo onde
năo tratá-lo poderia levar a um erro. 

19. O que săo semáforos? Mostre um exemplo de uso.

20. Mostre uma soluçăo usando semáforos para o problema "Bounded-Buffer" 

21. Mostre uma soluçőes usando semáforos para o problema "Readers-Writers"
com prioridade para leitores e com prioridade para escritores.

22. Mostre uma soluçăo usando semáforos para o problema "Dining-Philosophers" 

23. O que é copy-on-write e sob quais circunstâncias ela é útil?

24. Explique o que é segmentaçăo e paginaçăo.  

25. Explique o que é endereço lógico, endereço linear e endereço
físico. Qual unidade (paginaçăo ou segmentaçăo) é responsável por
converter cada um destes endereços.

26. A segmentaçăo em no Kernel Linux năo é usada intensamente, porque?
Também diga quais săo os 4 principais segmento utilizados neste sistema operacional.

27. No kernel Linux executando na arquitetura x86 como é feito
o Acesso Rápido aos Descritores de Segmento?

28. Explique a diferença entre fragmentaçăo interna e externa.

29. Que esquema de paginaçăo é utilizado para mapear mais que 4GB na
arquitetura x86 de 32 bits?

30. Dadas partiçőes de memória 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 memória.

31. Explique os seguintes algoritmos para substituiçăo de páginas (page
replacement): FIFO, Optimal e LRU. No caso do LRU, vocę deve explicar
quais săo as políticas de aproximaçăo para o LRU.

32. Como funciona o mapeamento de arquivos em  memória, qual a vantagem
de utilizar esse modo de acesso. 

33. O que é o modo de alocaçăo de memória "Buddy System". Qual a sua
desvantagem?

34. O que é o mecanismo de alocaçăo chamado SLAB?

35. O que é o Overcommit de memória? Quais as possíveis configuraçőes
para a váriavel de kernel /proc/sys/vm/overcommit_memory no kernel 2.6?

36. No kernel Linux qual é a chamada de sistema utilizada para aumentar o
heap do processo? Qual sua relaçăo com a funçăo malloc()?

37. Em que momentos é executado o algoritmo de "Page Frame Reclaiming"?

38. Considerandodo algoritmo de "Page Frame Reclaiming" o que acontece
quando os processos de usuários começam a consumir mais memória?

39. Quais as vantagens e desvantagens de guardar o nome do programa criador junto aos atributos do arquivo?

40. Na semântica de sistema de arquivos do Unix o que acontece quando um arquivo que está aberto é removido?

41. No NFS (Network File System) o que é o "Silly Rename"? Porque surgem os arquivos .nfsXXXXXX ? 

42. Discuta os fatores envolvidos na escolha do tamanho de bloco utilizado por um
filesystem.

43. Sobre métodos de alocaçăo de espaço, responder:
	a) Como funciona a alocaçăo de espaço contígua? Que problemas apresenta? 
	b) Como funciona a alocaçăo de espaço por encadeamento (linked allocation). Quais os problemas apresentados por este método?
	c) Como funciona a FAT (File-Allocation Table) usado pelo MS-DOS, qual a diferença em relaçăo ŕ alocaçăo por encadeamento simples? 
	d) Mostre como ficaria a tabela FAT para um arquivo composto pelos seguintes blocos: 220, 340, 500, 600.                  
	e) Em um sistema de arquivos usando uma FAT o que acontece se ocorrer a corrupçăo total da tabela de alocaçăo de arquivos?
	f) Como funciona a alocaçăo de espaço indexada? Que problemas da alocaçăo usando encadeamento ela tenta resolver? 
	f) Dentro da alocaçăo indexada quais săo os mecanismos usados para guardar os índices?
	g) O que săo i-nodes? Em qual mecanimos de alocaçăo indexada eles se enquadram? 

44. Considere um sistema com i-nodes com 15 ponteiros. Nestes i-nodes os 12 primeiros săo usados para alocaçăo direta; o 13  ponteiro para alocaçăo simples indireta; o 14 para alocaçăo dupla indireta e o 15 para alocaçăo tripla-indireta.  Considere ainda que cada bloco tem 512Kb. Como ficaria a estrutura de inodes para armazenar um arquivo de 129024 bytes (252 blocos)?

45. Qual a diferença de simbolic links e hard links? E como é a implentaçăo
de cada um? Como é feito o controle de remoçăo de arquivo em cada caso?

46. Considere um sistema onde o espaço livre é geręnciado por uma lista
de espaço livre. Suponha que o ponteiro para a lista de espaços-livres foi
perdido. Esta lista pode ser reconstruída? Explique sua resposta.

47. Quais săo os métodos para geręnciamento de espaço livre?

48. Quais as estapas de um checkagem de consistęncia de um file system?

49. Como funcionam os sistema de arquivos baseados em Journaling? Quais
suas vantagem? O que tentam garantir?

50. Explique os seguintes algoritmos de escalonamento de requisiçőes de
disco: FCSF, SSTF (Shortest-Seek First), SCAN, C-SCAN e LOOK.

51. Quais sao os algoritmos de escalonamentos disponíveis atualmente
do kernel Linux? Descreva cada um deles.

52. Compare RAID0, RAID1, RAID5 e RAID6.

53. Suponha que vocę possui 4 discos rígidos de 750GB. Quanto
espaço disponível vocę obteria usando RAID5 e quanto espaço
vocę obteria com RAID6? Quantos discos poderiam falhar em cada
um destes casos? 
 
54. Quando várias interrupçőes ocorrem ao mesmo tempo um esquema
de prioridades pode resolver o conflito. Discuta as questőes que 
devem ser consideradas ao atribuir as diferentes prioridades.

55. Descreva as vantagens e desvantagens em usar mapeamento por
memório ou IO Ports para acessar dispositivos de IO.

56. Como é feito o I/O usando polling. Quais as desvantagens?

57. Como é feito o I/O usando interrupçőes? 

58. O que é feito I/O via DMA? Qual a vantagem sobre outros esquemas?

59. Discuta vantagens e desvantagens em ter I/O bloqueante. Como
isso está relacionado a programaçăo utilizando threads.


« Agosto 2017 »
Agosto
Do
12345
6789101112
13141516171819
20212223242526
2728293031