Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
L0726
Acrónimo :
L0726
Ciclo :
1.º ciclo
Línguas de Ensino :
Português (pt)
Língua(s) amigável(eis) :
Inglês, Português

Carga Horária / Course Load


Semestre :
2
Créditos ECTS :
6.0
Aula Teórica (T) :
0.0h/sem
Aula Teórico-Prática (TP) :
18.0h/sem
Aula Prática e Laboratorial (PL) :
36.0h/sem
Trabalho de Campo (TC) :
0.0h/sem
Seminario (S) :
0.0h/sem
Estágio (E) :
0.0h/sem
Orientação Tutorial (OT) :
1.0h/sem
Outras (O) :
0.0h/sem
Horas de Contacto :
55.0h/sem
Trabalho Autónomo :
95.0
Horas de Trabalho Total :
150.0h/sem

Área científica / Scientific area


Arquitectura de Computadores e Sistemas Operativos

Departamento / Department


Departamento de Ciências e Tecnologias da Informação

Ano letivo / Execution Year


2024/2025

Pré-requisitos / Pre-Requisites


Nenhuns, embora se assuma que os alunos tenham bons conhecimentos de algoritmia e estrutura de dados e conhecimentos em pelo menos uma linguagem de programação de alto nível (e.g., Java, C++, JavaScript).

Objetivos Gerais / Objectives


Apresentar os fundamentos dos Sistemas Operativos e relacioná-los, por um lado com a experiência do aluno, e por outro com matérias dadas noutras disciplinas. A componente prática laboratorial habilitará o aluno utilizar a linha de comandos de um sistema operativo Unix-like 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.

Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes


OA1: Distinguir tipos, funções e características de sistemas operativos (SO) OA2: Descrever aspetos de gestão de processos e algoritmos relacionados OA3: Descrever os vários mecanismos de comunicação e sincronização entre processos OA4: Descrever formas de gestão de memória em sistemas multi-programados e comparar os algoritmos associados. Explicar os métodos de gestão de memória virtual OA5: Descrever os princípios e as formas de acesso e utilização aos dispositivos de entrada/saída OA6: Explicar os aspetos de implementação de sistemas de ficheiros mais comuns OA7: Identificar os mecanismos de segurança de um SO e descrever diversos tipos de ataque e formas de defesa OA8: Usar a linha de comandos para trabalhar num servidor linux remoto; programar em shell; utilizar comandos de manipulação de texto e administração OA9: Programar ao nível do sistema, usando as funcionalidades dos SO, tendo em conta os modelos de programação sequencial e concorrente

Conteúdos Programáticos / Syllabus


CP1: Introdução aos Sistemas Operativos, Processos. CP2: Concorrência e gestão de processos. CP3: Escalonamento de processos CP4: Sincronização entre processos. Semáforos CP5: Comunicação entre processos CP6: Gestão de Memória: Modelos e algoritmos CP7: Memória Virtual CP8: Entradas e Saídas CP9: Sistema de Ficheiros CP10: Utilização do Linux CP11: Comandos shell e programação em shell CP12: Mecanismos de comunicação e sincronização

Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes


Os conteúdos programáticos teóricos encontram-se associados aos Objetivos de Aprendizagem: CP1-OA1: Comparação e distinção dos vários SOs CP2-OA2,OA8: Processos (em Linux) como elementos fundamentais do SO CP3-OA2: Regras internas de um SO para organizar a execução dos processos CP4-OA3,OA9: Regras de sincronização em ambientes assíncronos e concorrentes CP5-OA3,OA9: Desafios de comunicação concorrentes CP6-OA4: Formas de gestão de memória pelos SO CP7-OA4,OA9: Explica como os mecanismos de memória virtual funcionam, vantagens e desafios CP8-OA5: Tipos de dispositivos I/O e estratégias para os monitorizar e controlar CP9-OA6,OA8: Sistemas de ficheiros, funcionamento interno dos mesmos CP10-OA7,OA8: Utilização prática da CLI Linux (e Windows), para interação e configuração do SO CP11-OA6,OA7,OA8: Programação de shell scripts para, interação entre o SO e o utilizador, ou automação de tarefas CP12-OA3,OA9: Utilização dos mecanismos do SO para sincronização e comunicação de processos

Avaliação / Assessment


Esta UC é feita apenas por Avaliação ao longo do semestre, não contemplando Exame Final. Componentes da avaliação: * TRAB (12.5% x 3): Trabalho de grupo ou individual, realizado em 3 etapas * TPC (12.5%): 9 questionários para preencher em casa (contam 8 melhores) * PE (50%): Prova Escrita a realizar em 1º ou 2ª época ou em época especial Requisitos: TRAB+TPC >= 9,5 valores, PE >= 9,5 valores Para mais informações ver a secção Observações.

Metodologias de Ensino / Teaching methodologies


O processo de ensino / aprendizagem é orientado pelos seguintes princípios: - Enfâse na compreensão dos conceitos base sobre os sistemas operativos e no relacionamento deste conceitos com a experiência e matérias de outras UCs. - Forte relacionamento entre a componente teórica e a expressão prática dos mesmos conceitos. - Trabalho prático de desenvolvimento como meio de consolidação dos conhecimentos e competências.

Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes


A metodologia adoptada não só dará um conhecimento amplo sobre os diversos aspectos de funcionamento dos diversos sistemas operativos, como permitirá fortalecer o conhecimento do aluno em aspectos mais relevantes, devido à forte componente laboratorial. A forte componente laboratorial baseia-se na utilização do sistema operativo linux, um sistema operativo unix-like, de código aberto e amplamente divulgado, o que permite dar um ênfase ao trabalho remoto com base na linha de comandos e na utilização directa das chamadas do sistema usando a linguagem C.

Observações / Observations


Relativamente ao processo de avaliação: - Não é possível obter aprovação à UC apenas através da realização de exame final, sendo obrigatória a realização de ambas componentes teórica e prática da UC, cada uma valendo 50% da nota final. - A nota da componente prática da UC pode ser sujeita a uma avaliação oral individual. - A componente prática da UC é composta por duas partes: - Um trabalho prático (dividido em três fases, a serem entregues no decorrer do semestre). A nota do trabalho do ano anterior poderá transitar para o corrente ano, mas neste caso será limitada a um máximo de 14 valores. - Um conjunto de quizzes ("TPCs") que deverão ser realizados todos os anos (ou seja, não é possível reutilizar a nota do ano anterior). - As perguntas feitas na prova escrita podem envolver aspectos relativos aos trabalhos feitos na componente laboratorial. - Quando a melhoria de nota ocorrer num ano letivo diferente daquele em que foi feito o trabalho, a componente prática (trabalho e TPCs) é substituída por uma prova prática, a realizar em computador antes ou depois da prova escrita. Os alunos nessas condições que pretendam realizar melhoria de nota devem contactar o coordenador da UC antecipadamente. - A assiduidade não é requisito essencial de aprovação.

Bibliografia Principal / Main Bibliography


- 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 - Andrew Tanenbaum, Herbert Bos (2014), Modern Operating Systems, 4th Edition, Pearson Prentice-Hall, ISBN: 978-1-292-06142-9

Bibliografia Secundária / Secondary Bibliography


- Andrew Tanenbaum, Albert Woodhull (2006), Operating Systems Design and Implementation, 3rd edition, Prentice-Hall, 2006, ISBN: 978-0-131-42938-3 - Paulo Trezentos, Susana Nunes (2008), Linux para PCs, 3ª edição, FCA, ISBN: 978-972-722-603-0 - Paulo Trezentos, António Cardoso (2006), Fundamental do Linux, 3ª edição, FCA, ISBN: 978-972-722-514-9 - William Stallings (2018), Operating Systems Internals and Principles, 9th edition, Pearson, ISBN-13: 978-0-134-70006-9 - Abraham Silberschatz, Peter Galvin, Greg Gagne (2018), Operating System Concepts, 10th edition, Wiley, ISBN: 978-1-119-32091-3 - Abraham Silberschatz, Peter Galvin, Greg Gagne (2014), Operating Systems Concepts Essentials, 2nd edition, Wiley, ISBN: 978-1-118-84397-0

Data da última atualização / Last Update Date


2024-07-29