Conceitos sobre Sistemas Operacionais e Redes de Computadores.
Programação C, C++ e Java. Noções de Orientação a Objetos.
Ementa:
Concorrência e Sincronização.
Memória Compartilhada, Semáforos e Monitores.
Problemas e verificação de sistemas concorrentes.
Troca de Mensagens.
Modelos de programação distribuída: Cliente-Servidor, Orientado a Objetos, Orientado a Eventos, etc.
Características de sistemas distribuídos: comunicação de grupo e difusão, relógios lógicos, ordenação de eventos.
Técnicas de Tolerância a Falhas.
Modelo de chamadas a procedimentos e métodos remotos (RPC e RMI).
Desenvolvimento de aplicações concorrentes e distribuídas.
Bibliografia:
- Sistemas Operacionais - Conceitos e Aplicaçõs, Silbershatz e Galvin, Ed. Campus (traduzido) - inclui Java
- Sistemas Operacionais - Conceitos, Silbershatz e Galvin. 5a edicao, Prentice Hall do Brasil (traduzido)
- A. Tanembaum, Sistemas Operacionais Modernos, 2a Edição, Pearson / Prentice-Hall, 2002.
- A. Tanembaum and M. van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall, 2002.
- D. Lea, Concurrent Programming in Java: Design Principles and Patterns, 2nd Edition, The Java Series, Addison Wesley, 2000.
- D. E. Commer, Internetworkig with TCP/IP, Volume I, Principles, Protocols and Architecture, Englewood Clifs, NJ, Prentice Hall Inc., Third Edition, 1995.
- E. R. Harold, Java Network Programming, O'Reilly, 2000.
- E. Clarke, Jr., Orna Grumberg and Doron A. Peled, Model Checking, MIT Press, 1999.
- M. Ben-Ari, Principles of Concurrent Programming, Englewood Cliffs, NJ, Pretice Hall, 1982.
- M. Raynal, Distributed Algorithms and Protocols, John Wiley & Sons, 1988.