SISTEMAS OPERATIVOS
Aulas Práticas
Aulas Teórico-Práticas
Objectivos e Requisitos
As aulas práticas e teórico-práticas visam desenvolver três aspectos fundamentais dos sistemas operativos:
· A sua utilização eficiente;
· A sua programação
· A sua administração eficaz.
A utilização será feita com base na Bash shell do sistema operativo Linux. O acesso e a programação indirecta será via shell e a programação directa com chamadas ao sistema. A programação directa do Sistema Operativo será feita em linguagem C. Portanto, é assumido o domínio da linguagem C.
Nas aulas, a programação indirecta do sistema operativo será feita com a Bash Shell, mas serão referidas outras shells (Bourne Shell, C shell, Korn shell, AppleScript, Windows Power Shell etc.). No entanto, a programação em shell será apenas uma introdução e dependerá do tempo disponível deixando para um trabalho em grupo o seu aprofundamento.
O maior ênfase é de programação directa do sistema operativo através da API (Application Programming Interface) de C. A administração do sistema operativo UNIX será também opcional, e estará dependente do tempo disponível após a aprendizagem da utilização e programação do sistema operativo.
As aulas práticas têm lugar na sala 6.14 ou na sala 6.19 amos com PC’s com Linux/Fedora 22+.
Pode utilizar a conta “aluno” ou a sua conta pessoa da UBI (se for possível).
Também poderá utilizar um portátil devidamente configurado com Linux. Existem varias possibilidades :
Vai precisar sempre dum compilador de C (gcc) e as ferramentas de desenvolvimento habituais (um editor de linha p.ex vi e pico, gráfico p.ex gedit, kate codeblocks, debugger p.ex gdb, code formater p.ex indent p.ex, static code checker p.ex lint)
Repare que
nos PC’s públicos com conta “aluno” não há garantia que os seus ficheiros
persistem duma aula para outra, portanto no fim da aula pratica deverá ficar
sempre com uma copia dos seus ficheiros.
Programa Previsto
· Configuração do Bash Shell
· Utilização de sistemas UNIX – Comandos do Bash / Redireccionamento.
· Programação BASH – Scripts (conforme o ano)
· Programação com bibliotecas
· I/O de baixo nível em ficheiros. Temporização e DMA
· Processos e Sinais
· Threads
· Ficheiros e directorias
· IPC Pipes - Descritores de Ficheiros, Programação de Redireccionamento com dup
· IPC– Cliente-Server com Pipes e FIFOS
· IPC– Cliente-Server com FILAS
· Sincronização e Semáforos Pthreads
Programa Suplementar e/ou Projectos
· IPC Memória Partilhada
· IPC UNIX Semáforos.
· IPC Sockets
· Administração dos Sistemas Operativos
· Segurança dos Sistemas Operativos
Bibliografia
1. W. Stevens. Advanced programming in the Unix Environment. Addison-Wesley Professional Computing Series, Addison-Wesley Publishing Company, Inc.,Reading, Massachusetts, USA, 1992 (existe na biblioteca).
2. W. Stevens. Unix Network Programming. Prentice-Hall Software Series, Prentice-Hall PTR, Englewood Cliffs, NJ07632, USA,1990 (existe na biblioteca).
3. B.Kerningham e D. Ritchie. The C programming language.
4. C. Brown. UNIX Distributed Programming. Prentice-Hall, Inc., 1994 (existe na biblioteca).
5. B. Kerningham e B. Pike. The Unix programming environment. Prentice-Hall Software Series, Prentice-Hall Inc.,Englewood Cliffs, NJ 07632,USA, 1984(existe na biblioteca).
6. S. Bourne. The Unix System. International Computer Science Series, Addison-Wesley Publishing Company, Inc., Wokingham,England, 1983(existe na biblioteca).
7. J. Garrot, J. Amador e J. Castro. Unix: Curso Completo. FCA – Editorade Informática, Lisboa, Portugal, 1998 (não existe na biblioteca).
8. P.Darnell e P. Margolis. C: a software engineering approach. Springer-Verlag, NY,USA, 1996 (existe na biblioteca).
9. S. Leffler et al. An advanced 4.4 BSD interprocess communication tutorial.