Sistemas Operativos II

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.

Fora das aulas, os alunos desenvolvem um projeto 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.

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 produto/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. 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. 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. Paradigma MVC e relacionamento dados-vista.

    iii. Encapsulamento de API em C++. Exemplo concreto de encapsulamento de janelas.

    iv.  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)

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