Acessibilidade

Sistemas Operativos - LEIC

Curso Licenciatura em Engenharia Informática e de Computadores
Unidade Curricular

Sistemas Operativos

Obrigatória  X
Opcional  
Área Científica Informática e Computadores
Ano: 2º Semestre:  ECTS: 6 Total de Horas: 162
Horas de Contacto T:32,5 TP:20 PL:15 S: OT:
Docente

Jorge Manuel Rodrigues Martins Pião

T - Teórica; TP - Teórico-prática; PL - Prática Laboratorial; S - Seminário; OT - Orientação Tutorial.

  • Objetivos da aprendizagem

    Os estudantes que terminam com sucesso esta unidade curricular serão capazes de:

    1. Identificar os objetivos fundamentais de um sistema operativo e os componentes essenciais da sua arquitetura interna;
    2. Compreender os aspetos relevantes da implementação e utilização dos principais conceitos dos sistemas operativos, nomeadamente os relativos à gestão de memória (física e virtual) e à gestão de processos e threads;
    3. Desenvolver aplicações multi-programadas de complexidade média utilizando a API de um sistema operativo;
    4. Compreender as diferenças entre operações de entradas/saídas síncronas e assíncronas;
    5. Discutir aspetos relativos à implementação de servidores concorrentes escaláveis.
  • Conteúdos programáticos

     

    1. O sistema operativo como uma abstração alargada, mas simplificada do hardware e gestor de acesso a recursos.
    2. Estudo da gestão de memória física e virtual, com realce para os seguintes tópicos: mecanismos de paginação e segmentação; memória virtual; working sets; políticas de substituição.
    3. Gestão de processos e threads. Estados e contexto de execução. Aspetos de implementação: troca de contexto; filas de bloqueio.
    4. Programação concorrente: sincronização e exclusão mútua: evento, semáforo e mutex; deadlock e starvation. paralelização de algoritmos.
    5. Escalonamento de threads: prioridades estáticas e dinâmicas; critérios de escalonamento em plataformas cliente e servidoras.
    6. Estudo de entradas e saídas, com realce para os seguintes tópicos: operações síncronas e assíncronas sobre dispositivos de I/O; comunicação através de sockets; utilização de I/O assíncrono na construção de servidores concorrentes escaláveis.  
  • Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular

    Nesta unidade curricular os estudantes compreendem o papel do sistema operativo no suporte à construção do software aplicacional, nomeadamente aplicações multi-programadas que comunicam com outras aplicações e serviços, locais ou remotos.

    As matérias são apresentadas numa visão complementar, simultaneamente bottom-up e top-down. Por um lado, são estudados aspetos de arquitetura, nomeadamente os mecanismos de gestão de memória física e virtual como suporte de isolamento entre espaços de endereçamento, do suporte à execução de mais fios de execução do que unidades de processamento e da construção de sincronizadores (pontos I, II e III dos conteúdos programáticos).

    Por outro lado, são enfatizados aspetos práticos do desenvolvimento de aplicações que lidam diretamente com a API do sistema operativo para suportar a concorrência, a comunicação e o acesso a entradas/saídas (pontos IV, V e VI).

  • Metodologias de ensino (avaliação incluída)

    Ensino teórico-prático, estando previstas 30 aulas durante o semestre a que correspondem 67,5 horas de contacto (15 aulas de 3 horas e 15 de 1,5 horas). O tempo total de trabalho do estudante é de 162 horas. As aulas destinam-se à apresentação dos temas e de exemplos práticos de aplicação. Os tópicos principais são ainda explorados através da realização de séries de exercícios realizados em grupo.

    Os resultados da aprendizagem são avaliados individualmente através de testes escritos realizados durante o semestre e na discussão final dos trabalhos de grupo. A nota final do aluno é estabelecida a partir da seguinte expressão: 50% Testes + 50% Trabalhos e discussão final.

     

  • Demonstração da coerência das metodologias de ensino com os objetivos de aprendizagem da unidade curricular

    O conhecimento relativo aos aspetos teóricos dos sistemas operativos é obtido em aulas interativas e através da realização de exercícios. As aulas teóricas complementam-se com aulas práticas em que os alunos terão de resolver problemas utilizando as ferramentas de desenvolvimento que irão ser utilizados na resolução dos trabalhos práticos.

    As competências indicadas nos pontos 2, 3, 4 e 5 dos objetivos de aprendizagem são desenvolvidas na realização dos trabalhos de grupo.

    São efetuadas aulas práticas de acompanhamento dos trabalhos de grupo, que complementam a avaliação, na discussão final, da globalidade dos objetivos de aprendizagem.

    São efetuadas aulas práticas de acompanhamento dos trabalhos de grupo, que complementam a avaliação, na discussão final, da globalidade dos objetivos de aprendizagem.

  • Bibliografia de consulta / existência obrigatória

    W. Stallings, Operating System: Internals and Design Principals, 9th edition, Pearson, 2017. ISBN 9780134670959

    J. Richter, C. Nasarre, Windows via C/C++, 5th edition, Microsoft Press, 2011. ISBN 9780735663770