Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
OA1 - Conhecer os princípios básicos de funcionamento do computador; OA2 - Apresentar os fundamentos de hardware e de software. OA3 - Reconhecer as arquiteturas típicas dos computadores pessoais, servidores e outros; OA4 - Manipular e realizar operações aritméticas sobre diferentes bases de numeração; OA5 - Manipular expressões usando as propriedades da álgebra de Boole; OA6 - Projetar um circuito lógico combinatório; OA7 - Projetar um circuito sequencial OA8 - Simular e implementar um circuito digital utilizando circuitos integrados; OA9 - Distinguir tipos, funções e características de sistemas operativos (SO) OA10 - Descrever aspetos de gestão de processos e algoritmos relacionados OA11 - Descrever os vários mecanismos de comunicação e sincronização entre processos OA12 - Descrever formas de gestão de memória Explicar os métodos de gestão de memória virtual. OA13 - Trabalhar num servidor linux remoto; programar em shell. OA14 - Programar ao nível do sistema, usando as funcionalidades dos SO
Conteúdos programáticos
CP1. Arquitetura e Organização de um Computador Componentes e arquiteturas de hardware Unidades funcionais de um computador
CP2. Representação da informação Representação e operações aritméticas de números nas diferentes bases
CP3. Álgebra de Boole e funções lógicas Operações, Portas e funções lógicas Álgebra de Boole Mapas de Karnaugh
CP4. Circuitos combinatórios Projeto de circuitos combinatórios
CP5. Circuitos sequenciais Latches e flip-flops Projeto de circuitos sequenciais
CP6. Introdução aos SO Objetivos e funções Estrutura dos S.O. modernos
CP7. Processos Concorrência e gestão de processos. Sincronização e comunicação entre processos.
CP8. Memória Gestão da memória virtual Sistemas de entrada/saída; Sistemas de Ficheiros
CP9. Programação de aplicações Desenvolver programas com chamadas ao sistema Manipulação de ficheiros
CP10. Utilização do Linux SO Comandos shell e programação em Shell 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). 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: ¿ Testes individuais (65%) ¿ Trabalhos (35%)
Requer classificação final não inferior a 9,5 valores [0..20]
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
Rosa, António. Windows Server 2016 - Curso Completo. FCA Editora. ISBN: 978-972-722-886-7
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.