Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
OA1 - Manipular e realizar operações aritméticas sobre diferentes bases de numeração; OA2 - Manipular expressões usando as propriedades da álgebra de Boole; OA3 - Projetar um circuito lógico combinatório; OA4 - Projetar um circuito sequencial OA5 - Simular e implementar um circuito digital utilizando circuitos integrados; OA6 - Distinguir tipos, funções e características de sistemas operativos (SO) OA7 - Descrever aspetos de gestão de processos e algoritmos relacionados OA8 - Descrever os vários mecanismos de comunicação e sincronização entre processos OA9 - Descrever formas de gestão de memória Explicar os métodos de gestão de memória virtual. OA10 - Trabalhar num servidor linux remoto; programar em shell. OA11 - Programar ao nível do sistema, usando as funcionalidades dos SO
Conteúdos programáticos
CP1. Representação da informação Representação e operações aritméticas de números nas diferentes bases
CP2. Álgebra de Boole e funções lógicas Operações, Portas e funções lógicas Álgebra de Boole Mapas de Karnaugh
CP3. Circuitos combinatórios Projeto de circuitos combinatórios
CP4. Circuitos sequenciais Latches e flip-flops Projeto de circuitos sequenciais
CP5. Introdução aos SO Objetivos e funções Estrutura dos S.O. modernos
CP6. Processos Concorrência e gestão de processos. Sincronização e comunicação entre processos.
CP7. Memória Gestão da memória virtual Sistemas de entrada/saída; Sistemas de Ficheiros
CP8. Programação de aplicações Desenvolver programas com chamadas ao sistema Manipulação de ficheiros
CP9. Utilização do Linux SO Mecanismos de comunicação e sincronização
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular
Nesta unidade curricular são introduzidos os conceitos base associados ao funcionamento dos computadores e à instalação e configuração dos principais sistemas operativos. A componente prática laboratorial habilitará o aluno utilizar a linha de comandos do sistema operativo baseado em Unix e a desenvolver programas, ao nível do sistema, usando os mecanismos do sistema operativo, tendo em conta os modelos de programação sequencial e concorrente. A estrutura de conteúdos proposta permite atingir todos os objetivos propostos para a unidade curricular, tal como se demonstra de seguida. Conteúdos programáticos (CP) - Objetivos de aprendizagem (AO)
Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico
A metodologia de ensino recorre a aulas teóricas onde os conceitos são expostos e discutidos. As aulas teórico práticas incidem essencialmente sobre exercícios em ambientes de virtualização com diferentes sistemas operativos.
As aulas práticas permitem experimentar as interfaces de programação dos Sistemas Operativos estudados (Linux/Windows).
Avaliação
A avaliação da unidade curricular faz-se com recurso aos seguintes elementos de classificação, estando entre parenteses indicada a ponderação destes no cálculo da nota final: - 2 Teste individual - Trabalhos de Grupo de igual ponderação A nota final será o resultado da expressão: 55% Teste + 45% Trabalhos
Requer classificação não inferior a 9,5 valores [0..20] em ambas as componentes (teste e trabalhos).
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da unidade curricular
A unidade curricular requer necessariamente conceitos teóricos, fundamentais para a compreensão das diferentes componentes do conteúdo programático. O cariz prático encontrado nos ambientes de virtualização torna-se fundamental para uma mais completa demonstração e aplicação dos conceitos e práticas subjacentes. A componente prática permite demonstrar alguns requisitos que os sistemas operativos necessitam de atender no seu funcionamento. As aulas expositivas, onde os conceitos são apresentados, permitem abranger todos os conteúdos programáticos mais teóricos. As aulas teórico práticas permitirão a exploração dos conteúdos programáticos mais práticos, seja por simulação ou desenvolvimento de código.
Bibliografia de consulta (existência obrigatória)
Andrew Tanenbaum, Herbert Bos (2014), Modern Operating Systems, 4th Edition, Pearson Prentice-Hall, ISBN: 978-1-292-06142-9 José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues (2012), Sistemas Operativos, 2ª edição, FCA, ISBN: 978-9-727-22756-3 Stallings, W. (2018). Operating Systems: Internals and Principles - 9th Edition. New York: Pearson. ISBN: 978-0-13-467095-9 Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores - 2ª Edição, Guilherme Arroz, José Monteiro, Arlindo Oliveira, IST Press, 2009. Logic and Computer Design Fundamentals, 4th Edition, Morris Mano, Charles Kime, Prentice Hall, 2008.