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.

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 Nunes

Mé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