Conhecimentos de Base Recomendados
Programação em C
Tópicos de arquitetura de computadores
Tópicos de sistemas operativos – Organização do sistema e Núcleo de sistema
Métodos de Ensino
As aulas são teóricas e práticas.
Nas aulas teóricas, é utiIizada uma metodologia expositiva para a apresentação da dos fundamentos teóricos da matéria com exempIos de aplicação.
Nas aulas práticas os alunos aplicam os conhecimentos das aulas teóricas, desenvolvendo aplicações, com a supervisão dos docentes.
Fora das aulas, os alunos desenvolvem, em grupos de dois, um projecto de média dimensão cujo progresso é verificado numa fase intermédia e avaliado numa fase final.
Resultados de Aprendizagem
1. Aprofundar competências sobre sistemas operativos em geraI.
2. Adquirir competências sobre operação de sistemas Windows.
3. Adquirir competências sobre programação de apIicações Win32 em C.
4. EvoIuir na capacidade de organização, pesquisa, proposta e pIaneamento de soluções, autonomia de trabalho, elaboração de documentação.
Programa
1. Componente Teórica
A. Arquitetura Windows NT. Arquitetura Micro-kernel. Executivo NT. Sub-sistemas. Sub-sistema Win32. Aplicações Win32 e plataforma UAP.
B. Modelo de programação Win32 – Parte I
i. Introdução à programação Unicode.
ii. Tipos de aplicações em Windows NT.
iii. Criação e gestão de processos.
iv. Registry.
v. Criação de bibliotecas de ligação dinâmicas – DLL. Princípios de bibliotecas dinâmicas e funcionamento a baixo nível. Ligação explícita e ligação implícita.
vi. Criação e gestão de threads. Modelo de programação multi-threaded. Aplicação e vantagens. Exemplos de programação paralela com threads.
C. Sincronização – Modelos e mecanismos
i. Revisão: Problemas fundamentais de sincronização. Exclusão mútua. Competição e cooperação.
ii. Soluções algorítmicas e de sistema. Trincos lógicos. Mutexes. Semáforos. Operações indivisíveis. Operações Test and Set. Exemplo com produtor/consumidor.
iii. Mecanismos de sincronização em Win32. API. Mutexes, Critical Sections, Semáforos. Timers. Waitable events. API assíncrona.
iv. Sincronização na programação multi-thread em Win32.
v. Deadlocks e livelocks. Conceitos principais. Estratégias de prevenção e de evitamento. Algoritmo do banqueiro.
D. Modelo de programação Win32 – Parte II – Modelos e mecanismos de Comunicação
i. Named pipes. Modelo cliente-servidor com named pipes em Win32.
ii. Ficheiros mapeados em memória.
E. Modelo e mecanismos de segurança. Caso concreto e API da plataforma Win32. Privilégios, direitos. DACL.
F. Modelo de programação Win32 – Parte III – Interface gráfica e programação por eventos
i. Estrutura de aplicações Win32 gráficas.
ii. Janelas como elemento estruturante de aplicações. Funções callback. Eventos. Programação orientada a eventos.
iii. Recursos no modelo computacional Win32. Exemplos de icons, menus, dialog-boxes e tabelas de strings.
2. Componente laboratorial
As aulas práticas seguem a matéria de programação para a plataforma Windows
A. Prática de desenvolvimento para a plataforma Windows em Win32. Aprofundamento dos conceitos dados na teórica, incluindo
i. Aplicações Unicode.
ii. Criação e gestão de processos.
iii. Registry.
iv. Bibliotecas dinâmicas – DLL
v. Programação multithreaded.
vi. Mecanismos de sincronização.
vii. Mecanismos de comunicação. Named pipes. Aplicações cliente-servidor. API para overlapped IO.
viii. Ficheiros mapeados em memória.
ix. API de mecanismos de segurança.
x. Serviços NT.
xi. Criação de aplicações com interface gráfico. Eventos e ciclo de tratamento de eventos. Elementos de interface. Dialog boxes. Menus. Recursos.
Docente(s) responsável(eis)
Estágio(s)
NAO
Bibliografia
Bibliografia opcional
Hart, Johnson M. (2010) Windows System Programming (4th edition). Addison-Wesley
Silberschatz, Abraham, Gagne Greg, Galvin Peter B. (2018) Operating Systems Concepts (10th Ed.), Addison-Wesley
Solomon, David A.,Inside Windows NT (2nd Ed.), Microsoft Press
Schildt, Herbert, Windows NT 4 Programming, Osborne McGraw Hill