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.