RESUMO
Técnicas para projeto e implementação de Sistemas
Operacionais e seus componentes. Implementação e Avaliação de Sistemas
de Arquivos, Subsistema de Arquivos Linux e estruturas relacionadas.
Subsistema FUSE para montagem de sistemas de arquivos em Espaço de
Usuário. Introdução a Sistemas de Arquivos Criptografados. Estudo de
Casos.
- Revisões de Sistemas Operacionais
- Estrutura e funcionamento
- Gerenciamento de Processos, Memória e Armazenamento
- Semáforos, atomicidade e concorrência
- Trabalho 0: Aplicação Multithreads usando systemcalls
- Estrutura de Sistemas de Arquivos (FS)
- Implementação de Sistemas de Arquivos
- Implementação de Diretórios
- Métodos de alocação e gerência de espaço
- O VFS (Virtual File System)
- Subsistema de I/O do Kernel Linux
- Disk scheduling
- Cache
- Emulação de Dispostivos
- Implementação de sistemas de arquivos
- Trabalho 1:
- FUSE e VFS
- Uso Instruções paralelas (Bibliotecas com SIMD)
- Análise de Eficiência e Desempenho
- Estudo de Casos
- Sistemas de Arquivos Criptográficos
AULAS
-
- Aula 1
- Apresentação do curso
- Estrutura de Sistemas Operacionais
- Capitulo 1 e 2 de [1]
- Parte 1 de [7]
- Outros detalhes: https://linux-kernel-labs.github.io/master/lectures/intro.html#basic-operating-systems-terms-and-concepts
- Aula 2
- Detalhes sobre o funcionamento das chamadas de sistema
- Chamadas de sistemas em Sistemas de Arquivos
- Escreva um programa que copia o conteúdo de um arquivo para um arquivo de destino. Este programa funciona primeiro solicitando ao usuário o nome dos arquivos de origem e destino. Escreva este programa usando a POSIX API. Certifique-se de incluir todos os erros necessários verificação, incluindo a garantia de que o arquivo de origem existe. Depois de ter projetado e testado corretamente o programa, se você usou um sistema que o suporta, execute o programa usando o comando strace. Explique que chamadas de sistema são feitas
- Produza um relatório dessas atividades e entregue na próxima aula. Esses relatórios integralizarão a avaliação final.
- Aula 3-5
- Conceitos de processos e sincronização
- Aula 6-11
- Gerenciamento de memória do Kernel Linux
- Memória Física, Zonas e Paginação
- Buddy System
- Slabs
- Memória Virtual
- Espaço de Endereçamento
- Paginação sob demanda
- COW
- Overcommit and Out of Memory Killer
- Page Frame Reclaming
- Políticas, Listas, Page Cache
- Kernel Recipes 2017 – 20 years of Linux virtual memory: https://www.youtube.com/watch?v=pZghXbeCH5s
- Gerenciamento de memória do Kernel Linux
- Aula 1
- Aula 12-17
- Conceitos básicos de FSs
- Conceitos Básicos
- Arquivos, Diretório e Links
- Construção de FSs
- Gerência de espaço livre
- Alocação de espaço e arquivos
- Implementação de diretórios
- Camada de blocos
- RAID
- Algoritmos clássicos de escalonamento
- Multi-filas
- Escalonamento de IO MQ
- Conceitos Básicos
- https://events.static.linuxfound.org/sites/events/files/slides/lemoal-nvme-polling-vault-2017-final_0.pdf
ARTIGOS
VANGOOR, Bharath Kumar Reddy; TARASOV, Vasily; ZADOK, Erez. To {FUSE}
or Not to {FUSE}: Performance of User-Space File Systems. In: 15th {USENIX} Conference on File and Storage Technologies ({FAST} 17). 2017. p. 59-72.
TARASOV, Vasily; ZADOK, Erez; SHEPLER, Spencer. Filebench: A flexible framework for file system benchmarking. login: The USENIX Magazine, v. 41, n. 1, p. 6-12, 2016.
EDUARDO, Vandeir; DE BONA, Luis C. Erpen; ZOLA, Wagner M. Nunan.
Speculative Encryption on {GPU} Applied to Cryptographic File Systems.
In: 17th {USENIX} Conference on File and Storage Technologies ({FAST} 19). 2019. p. 93-105.
BONA, Luis CE et al. Freezing Time: a new approach for emulating fast storage devices using VM. In: 2018 IEEE 26th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS). IEEE, 2018. p. 16-24.
ROCHA, Pedro Eugênio; BONA, Luis CE. A QoS aware non-work-conserving disk scheduler. In: 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST). IEEE, 2012. p. 1-5.
DOS SANTOS, Leonardo A.; MAZIERO, Carlos A.; DE BONA, Luis Carlos E.
Avaliação de Caches em Dispositivos de Armazenamento Secundário com
SSDs.
BIBLIOGRAFIA
- [1] SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
- [2] TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.
- [3] CESATI, Marco; BOVET, Daniel. Understanding the Linux Kernel. 3rd Edition: O’Reilly, 2005. voinici.ceata.org/~tct/resurse/utlk.pdf
- [4] ROBBINS, Kay; ROBBINS, Steven. UNIX Systems Programming:
Communication, Concurrency and Threads. 8th ed., Prentice Hall, 2007. - [5] GORMAN, Mel; Understanding the Linux Virtual Memory Manager. http://www.informit.com/content/images/0131453483/downloads/gorman_book.pdf
- [6] RAWAT, Umashankar. Secure and efficient distributed cryptographic file systems. 2013. http://shodhganga.inflibnet.ac.in/bitstream/10603/10894/18/18_conclusion.pdf
- [7] DOWNEY, Allen B., The Little Book of Semaphores, http://greenteapress.com/semaphores/downey08semaphores.pdf
- [8] Livros de SO Prof. Maziero: http://maziero.homenet.org:88/dokuwiki/doku.php?id=so:livro_de_sistemas_operacionais
- [9] Manual de Pthreads (mas você pode usar qualquer que encontrar): https://computing.llnl.gov/tutorials/pthreads/
- [10] Outra manual de Pthreads: http://advancedlinuxprogramming.com/alp-folder/alp-ch04-threads.pdf