-
Apresentação
Apresentação
Um sistema operativo (SO) fornece uma interface conveniente, eficiente e bem definida, entre as aplicações e o hardware . Os serviços que presta oferecem a funcionalidade básica de qualquer sistema de computadores, na qual se baseia o software aplicacional. A aquisição de conhecimentos sólidos acerca do funcionamento dos SO é de extrema relevância para os estudantes na área da engenharia, que integrarão um mercado de trabalho em que o desenvolvimento e a utilização de sistemas de computadores têm, progressivamente, um papel fundamental. Em particular, ao abordar a forma como funciona um SO, quais os seus principais componentes, como utilizar os seus recursos e serviços para desenvolver aplicações eficientes, e como selecionar um SO para uma aplicação particular, a UC de SO fornece metodologias e capacidades para pensar acerca de sistemas de computadores, que são de aplicação muito lata, mesmo para quem não abraça uma área de desenvolvimento.
-
Disciplina do curso
Disciplina do curso
-
Grau | Semestres | ECTS
Grau | Semestres | ECTS
Licenciado | Semestral | 5
-
Ano | Natureza | Lingua
Ano | Natureza | Lingua
3 | Opcional | Português
-
Código
Código
ULHT46-6305
-
Pré-requisitos e co-requisitos
Pré-requisitos e co-requisitos
Não aplicável
-
Estágio Profissional
Estágio Profissional
Não
-
Conteúdos Programáticos
Conteúdos Programáticos
1. Introdução aos SO - Objetivos e características - Evolução histórica 2. Arquitetura de um computador - Diagrama de blocos típico 3. Arquitetura de um SO - Estrutura e componentes 4. Noções de concorrência e pseudo-paralelismo - Processos e threads 5. Gestão de Processos - Multiplexagem do CPU - Escalonamento - Interrupções - Despacho 6. Sincronização entre Processos - Cooperação - Dados partilhados - Secções críticas - Exclusão mútua 7. Comunicação entre Processos - Memória partilhada - Caixas de correio - Sockets 8. Gestão de Memória - Endereçamento Real - Endereçamento Virtual - Algoritmos 9. Gestão de Entradas/saídas - Hardware de E/S - O sub-sistema de E/S 10. Sistemas de Ficheiros - Conceitos básicos - Estrutura - Métodos de alocação - Dispositivos de armazenamento 11. Proteção e Segurança - Ameaças - Prevenção 12. Sistemas operativos para sistemas integrados - Ambiente estático com recursos limitados Serão dados exemplos usando os SO de referência: Windows e Linux.
-
Objetivos
Objetivos
Após a conclusão desta UC o aluno deve: * Entender o que é um sistema operativo e quais os seus objetivos; * Perceber quis os principais desafios que se colocam na implementação de um sistema operativo e estar familiarizado com os mecanismos e algoritmos tipicamente utilizados; * Perceber as limitações impostas pela utilização exclusiva das bibliotecas de funções, oferecidas pelas linguagens de programação; * Ser capaz de programar aplicações que utilizem serviços oferecidos pelo sistema operativo Windows (sincronização, comunicação,gestão de memória, etc.); * Perceber o que são aplicações multi-programadas e qual a sua importância, e ser capaz de resolver problemas básicos de concorrência; * Estar familiarizado com a estrutura básica dos sistemas operativos de referência; * Entender os requisitos de um sistema operativo para sistemas integrados e as diferenças que estes possuem de um sistema operativo tradicional do tipo desktop.
-
Metodologias de ensino
Metodologias de ensino
Nas aulas são incluídas análises interactivas aos algoritmos leccionados que permitem ao discente apreender melhor o seu funcionamento.
-
Bibliografia principal
Bibliografia principal
Sistemas Operacionais Modernos. (5ª Edição). Andrew S. Tanenbaum e Herbert Bos. Editora: Bookman, 2024 Silberschatz, A., Galvin, P., e Gagne, G, Operating Systems Concepts, 10th Edition,, Ed. Wiley & Sons, 2018 Marques, J. A., Ferreira, P., Ribeiro, C., Veiga, L., Rodrigues, R. - Sistemas Operativos. 2a Edição, FCA. 2014.
-
Avaliação
Avaliação
A metodologia de ensino baseia-se em aulas teóricas, nas quais são expostos os temas a abordar, aulas teórico-práticas para discussão de questões colocadas pelos alunos, realização de exercícios e apresentação de exemplos, e laboratórios onde os alunos realizam trabalhos práticos sobre as matérias abordadas.
A avaliação possui uma componente prática com base em trabalhos práticos, questionários e avaliação presencial nos laboratórios, e uma componente teórica baseada em dois testes escritos.Cada componente tem um peso de 50% na nota final.
Os temas dos trabalhos práticos são:
(1) Gestão de Processos no Windows;
(2) Comunicação entre Processos no Linux;
(3) Multiprogramação;
(4) Dados partilhados;
(5) Produtores e Consumidores no Linux;
(6) Acesso a dados partilhados;
(7) Produtores e consumidores (semáforos);
(8) Memória virtual;
(9) IPC (sockets);
Os trabalhos práticos terão uma avaliação oral, com ponderação de 55% na nota de cada trabalho.
Os alunos terão ainda acesso à realização de exames nas épocas previstas nos regulamentos.
Caso existam quaisquer dúvidas na atribuição das notas de qualquer componente da avaliação, o professor poderá realizar uma prova oral para confirmação dos resultados.
-
Mobilidade
Mobilidade
Não





