Conhecimentos de Base Recomendados
Programação em C
Tópicos de arquitetura de computadores
Tópicos de sistemas operativos
Métodos de Ensino
As aulas são teóricas e práticas.
Nas aulas teóricas, é utilizada uma metodologia expositiva para a apresentação dos fundamentos teóricos da matéria com exemplos 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.
Resultados de Aprendizagem
1. Aprofundar competências sobre sistemas operativos.
2. Adquirir competências sobre operação do sistema Windows.
3. Adquirir competências sobre programação de apIicações Win32 em C.
4. Evoluir 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. Programação Win32 – Introdução
i. Introdução à programação Unicode.
ii. Tipos de aplicações em Windows NT.
iii. Registry
iv. Criação e gestão de processos.
v. 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. Conceitos principais. Estratégias de prevenção e de evitamento. Algoritmo do banqueiro.
D. 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. ACL.
F. 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.
G. Bibliotecas de ligação dinâmicas – DLL. Criação. Princípios de bibliotecas dinâmicas e funcionamento a baixo nível. Ligação explícita e ligação implícita.
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.
i. Aplicações Unicode.
ii. Criação e gestão de processos.
iii. Registry.
iv. Programação multithreaded
v. Mecanismos de sincronização
vi. Mecanismos de comunicação. Named pipes. Aplicações cliente-servidor. API para overlapped IO.
vii. Ficheiros mapeados em memória
viii. API de mecanismos de segurança.
ix. Criação de aplicações com interface gráfico. Eventos e ciclo de tratamento de eventos. Elementos de interface. Dialog boxes. Menus. Recursos.
x. Bibliotecas dinâmicas – DLL
Docente(s) responsável(eis)
José Luis Guerra da Rocha NunesMétodos de Avaliação
A avaliação é constituída por 2 componentes:
A. Trabalho prático
i. Realizado ao longo do semestre, com várias entregas e verificação/avaliação do progresso nas aulas laboratoriais. A data de entrega final do Trabalho Prático (TP) apenas ocorre uma única vez e coincide com o final da componente letiva. A nota obtida é usada em todas as épocas do ano letivo. Não está prevista mais nenhuma forma ou data de entrega.
ii. Os alunos que realizaram o TP no ano letivo anterior e foram sujeitos a avaliação, podem aproveitar essa nota. Este aproveitamento não é automático e pressupõe a manifestação de interesse por parte dos interessados, através da plataforma Inforestudante, na data de entrega do TP. A nota obtida é adaptada para o peso do trabalho deste ano.
iii. O TP é opcional e tem um peso de até 4 valores na nota final. Dois valores são obtidos através da avaliação nas aulas laboratoriais (verificação funcional), após cada entrega. Caso pretendam, os alunos podem submeter-se a uma defesa final, sendo o trabalho avaliado para 4 valores. Esta defesa é individual e serve para avaliar o conhecimento do aluno sobre a matéria utilizada no TP submetido. A nota obtida na avaliação funcional (nas aulas laboratoriais) não é garantida, caso o aluno realize a defesa final.
iv. Não tem mínimos.
B. Exame
i. Inclui duas componentes: parte teórica e parte prática.
ii. Tem um peso de: 16 valores na nota final para os alunos que realizem o trabalho prático e se submetam a defesa individual; 18 para os alunos que realizem o TP e não façam a defesa; e 20 valores para os que optem por não entregar o trabalho prático.
iii. Para obter aprovação à disciplina os alunos têm de ter mínimos de 35%.
Em caso de dúvida sobre a autoria de qualquer elemento de avaliação, poderá haver lugar a uma avaliação oral.
Estágio(s)
NAO
Bibliografia
Silberschatz, Abraham, Gagne Greg, Galvin Peter B. (2018) Operating Systems Concepts (10th Ed.), Addison-Wesley
Hart, Johnson M. (2010) Windows System Programming (4th edition). Addison-Wesley
Solomon, David A.,Inside Windows NT (2nd Ed.), Microsoft Press
Schildt, Herbert, Windows NT 4 Programming, Osborne McGraw Hill