Unidade Curricular: | Código: | ||
Sistemas Operativos | 1093SOPE | ||
Ano: | Nível: | Curso: | Créditos: |
2 | Licenciatura | Engenharia Informática | 7 ects |
Período Lectivo: | Língua de Instrução: | Nº Horas: | |
Segundo Semestre | Português/Inglês | 91 | |
Objectivos de Aprendizagem: | |||
Conhecer a estrutura e operação do sistema operativo. Conhecer a programação multi-processo e multi-tarefa. Programar em linguagem C, em ambiente GNU/LINUX, utilizando a interface de chamadas ao sistema POSIX. Estudar diferentes mecanismos de comunicação entre processos. Conhecer os mecanismos do SO para coordenação entre processos e tarefas. Programação de problemas clássicos de coordenação entre processos e tarefas. Conhecer os mecanismos de gestão da memória num sistema operativo moderno. Conhecer a implementação de sistemas de ficheiros. Conhecer os mecanismos de Entrada e Saída do sistema operativo. | |||
Conteúdos Programáticos: | |||
Introdução aos Sistemas Operativos – Definição de sistema operativo; Arquitectura e organização do computador; Funcionamento do sistema operativo; Tipos de sistemas operativos; Estrutura do Sistema operativo; Chamadas ao sistema; A estrutura do sistema operativo. Processos e “Threads” – Processos. “Threads”; Escalonamento; Comunicação entre processos; Sincronização entre processos e threads;. Gestão da Memória – Gestão Básica da Memória; “Swapping”; Memória Virtual; Algoritmos de substituição de páginas. Sistemas de Ficheiros – Ficheiros; Directórios; Implementação de sistemas de ficheiros; Exemplos de Sistemas de Ficheiros. Entrada / Saída – “Hardware” de entrada / saída; “Software“ de entrada / saída; “Block Devices”; “Serial Devices” | |||
Demonstração da Coerência dos Conteúdos Programáticos com os Objectivos da Unidade Curricular: | |||
Os conteúdos programáticos apresentados são coerentes com os objectivos de aprendizagem da unidade curricular uma vez que existe uma grande convergência entre os capítulos do programa da cadeira e os conhecimentos que é suposto o aluno adquirir em cada um desses capítulos. Os conceitos fundamentais e a organização do sistema operativo são apresentados no primeiro capítulo. De seguida são apresentados os mecanismos de programação concorrente e paralela recorrendo a processos e tarefas. Segue-se o estudo da gestão da memória, sistemas de ficheiros e, por fim, dos mecanismos de entrada e saída. Os objectivos da aprendizagem são atingidos complementando os conceitos teóricos com exemplos concretos executados em ambiente de laboratório recorrendo a exemplos de programação e à resolução de fichas de trabalho. | |||
Metodologias de Ensino (Avaliação Incluída): | |||
A transmissão de conhecimentos nesta unidade curricular será efetuada recorrendo a aulas de cariz teórico-prático e prático em ambiente laboratorial. Nas aulas teóricas são apresentados os conceitos fundamentais à compreensão dos temas do programa. Nas aulas práticas os alunos são confrontados com problemas reais que têm que resolver eventualmente recorrendo a ferramentas de programação apropriadas. A avaliação das competências adquiridas pelo aluno nesta UC é composta pelos seguintes elementos de avaliação: (1) Teste de Avaliação 1 (2) Teste de Avaliação 2 (3) Projeto prático (4) Fichas Práticas (5) Exame(s) Avaliação Contínua: Nota Prática (NP) = 0,9*(3) + 0,1*(4), Nota Final = ((1) + (2) + NP) /3, NP>=9,5 Avaliação em Exame (NP>=9,5): Nota Final = (5) | |||
Demonstração da Coerência das Metodologias de Ensino com os Objectivos de Aprendizagem da Unidade Curricular: | |||
A metodologia de ensino/aprendizagem aplicada nesta unidade curricular bem como o seu sistema de avaliação encontram-se perfeitamente alinhados com os objectivos a atingir pelos alunos no final do período letivo. Os conceitos teóricos são apresentados, discutidos, aplicados e avaliados no contexto das aulas teóricas o que garante aos alunos uma base sólida de conhecimentos fundamentais para entenderem de forma aprofundada os desafios que se colocam a esta área do conhecimento. Por outro lado, para que o estudo não fique restrito a modelos conceptuais, nas aulas práticas são apresentados casos de estudo concretos e implementadas soluções para problemas reais recorrendo a ferramentas de software e equipamentos apropriados. Esta combinação garante uma formação aos alunos que lhes permite conhecer os fundamentos científicos essenciais a uma boa compreensão do tema bem como a capacidade de eles se adaptarem a mudanças tecnológicas constantes. O processo de avaliação constituído por testes teóricos e trabalhos práticos garante também um correto equilíbrio entre o esforço dedicado a ambas as componentes. O objectivo é formar profissionais conhecedores das técnicas e ferramentas do estado da arte mas também garantir a sua capacidade de evolução futura. Nesta unidade curricular é estudada a arquitetura e funcionamento de um sistema operativo moderno. O programa começa analisar os diferentes componentes da estrutura de um sistema operativo. De seguida são analisadas as técnicas de programação concorrente e paralela recorrendo a processos e tarefas. Segue-se o estudo dos mecanismos de gestão de memória e a organização dos sistemas de ficheiros. Finalmente são apresentados os mecanismos de entrada e saída. Estes conceitos são depois aplicados na resolução das fichas e trabalhos práticos no contexto das aulas práticas. | |||
Bibliografia: | |||
[1] Silbershatz, Gavin, "Operating System Concepts 10th ed.", Wiley 2021 [2] José Alves Marques et al. – Sistemas Operativos 2ª Ed. – FCA 2012. [3] Tanenebaum A.S. et al., Modern Operating Systems, 4th ed, Prentice Hall 2014 [4] Stevens et al., Advanced programming in the UNIX environment, 3rd ed Addison Wesley 2014 |