Saltar para:
Logótipo
Você está em: Início > L.EIC015

Sistemas Operativos

Código: L.EIC015     Sigla: SO

Áreas Científicas
Classificação Área Científica
OFICIAL Engenharia Informática e Computação

Ocorrência: 2022/2023 - 1S Ícone do Moodle

Ativa? Sim
Página Web: https://moodle.up.pt/course/view.php?id=1639
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Licenciatura em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
L.EIC 396 Plano Oficial 2 - 6 52 162
Mais informaçõesA ficha foi alterada no dia 2022-09-28.

Campos alterados: Avaliação especial, Obtenção de frequência, Melhoria de classificação, Fórmula de cálculo da classificação final, Obtenção de frequência, Melhoria de classificação, Avaliação especial, Fórmula de cálculo da classificação final, Melhoria de classificação, Obtenção de frequência, Fórmula de cálculo da classificação final

Língua de trabalho

Português - Suitable for English-speaking students
Obs.: Se houver alunos inscritos não fluentes em Português, as aulas e as provas, na generalidade, serão em Inglês.

Objetivos

Os objetivos principais desta unidade curricular são fornecer os conhecimentos fundamentais sobre:
O1- a estrutura e o funcionamento de um sistema operativo genérico;
O2- a utilização da interface de programação (API) de um sistema operativo real.

Resultados de aprendizagem e competências

Os estudantes que concluirem com sucesso esta unidade curricular, deverão ser capazes de:
OA1- descrever as funções e a estrutura geral de um sistema operativo, e identificar as abstracções principais que ele fornece;
OA2- descrever o funcionamento dos componentes essenciais de um sistema operativo, a forma como esses componentes interagem entre si e os algoritmos fundamentais usados na sua implementação;
OA3- desenvolver programas que usem e explorem a API de um sistema operativo tipo-Unix.

Modo de trabalho

B-learning

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

São pré-requisitos o conhecimento e prática de programação em linguagem C. É conveniente a frequência com aproveitamento da unidade curricular de Programação.

Programa

INTRODUÇÃO AOS SISTEMAS OPERATIVOS
- Objetivos e funções de um Sistema Operativo
- Arranque do Sistema Operativo
- Interface de comando: Shell
- Abstrações suportadas, chamadas de sistema e sua interface de programação
GESTÃO DE PROCESSOS
- Processos, ciclo de vida
- Escalonamento
- Comunicação entre processos: Sinais, mmap, pipes / sockets unix
THREADS E PROGRAMAÇÂO CONCORRENTE
- Threads, ciclo de vida
- Mecanismos de exclusão mútua: Peterson, test & set
- Locks, semáforos e variáveis de condição 
- Ordem de obtenção de locks e locking em duas fases.
- Estruturas de dados concorrentes: Filas, Barreiras, Registos leitor/escritor.
GESTÃO DE MEMÓRIA
- Hierarquia de memória
- Gestão básica de memória física
- Memória virtual
- Modelo de memória dos processos
- Segmentação e paginação
- Suporte ao nível do hardware
SISTEMA DE FICHEIROS
- Dispositivos de armazenamento de informação
- Partições, volumes, swap
- Sistemas de ficheiros
- Interface do sistema operativo e implementação
- Estruturas de dados auxiliares e gestão do espaço nas partições
SISTEMAS DE ENTRADA/SAÍDA
- Tipos de dispositivo de I/O e requisitos de largura de banda
- Interrupções e gestão de interrupções
- Controladores de dispositivos, devices drivers
- o directório /dev do UNIX

Tema prático complementar (coberto ao longo da unidade curricular):
PROGRAMAÇÃO DE SISTEMA (utilização da API do UNIX/LINUX)
- Manipulação de ficheiros e directórios
- Criação e gestão de processos e "threads"
- Intercomunicação entre processos: sinais, "pipes", FIFOs, e memória partilhada
- Sincronização entre processos e "threads": semáforos, mutexes e variáveis de condição

Bibliografia Obrigatória

Silberschatz, A.; Galvin, P. & Gagne, G.; Operating System Concepts (9th ed), John Wiley & Sons, Inc.
Arpaci-Dusseau, R.& Arpaci-Dusseau, A.; Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, 2018 ( (disponível gratuitamente em: http://pages.cs.wisc.edu/~remzi/OSTEP/))
Richard W. Stevens, Stephen A. Rago; Advanced Programming in the UNIX Environment (2nd edition), Addison-Wesley Professional, 2005. ISBN: 0201433079

Bibliografia Complementar

Stallings, W. ; Operating Systems: Internals and Design Principles (9th ed), Pearson, 2017
Stevens, W. Richard; Unix network programming. ISBN: 0-13-081-081-9
Marques,J.; Ferreira P.; Ribeiro,C. ; Veiga,L. & Rodrigues, R. ; Sistemas Operativos (2.a ed), FCA, 2012
Robbins, K. & Robbins , S.; UNIX systems programming: Communication, Concurrency And Threads (2th ed), Prentice Hall. , 2015
Tanenbaum, A & Bos, H. ; Modern Operating Systems. , Pearson Education Limited, 2015

Métodos de ensino e atividades de aprendizagem

- Aulas teóricas: exposição e discussão das matérias do programa.
- Aulas teórico-práticas: resolução de exercícios de programação envolvendo a utilização da API de Unix/Linux.
- Auto-aprendizagem: estudo das matérias, recorrendo à bibliografia e ao material disponibilizado na página Web da unidade curricular; resolução de exercícios e realização de trabalho prático, envolvendo a utilização da API.

 

Software

Sistema operativo LINUX
Sistema de desenvolvimento em C

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Trabalho prático ou de projeto 30,00
Teste 70,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 66,00
Frequência das aulas 56,00
Trabalho laboratorial 40,00
Total: 162,00

Obtenção de frequência

A avaliação é "distribuída sem exame final" e tem as seguintes componentes:

- Um trabalho prático em grupo (TP, avaliado para 6 valores);

- Dois testes (T1 e T2, avaliados para 7 valores cada) cada um cobrindo sensivelmente metade da matéria teórica.

Para obter frequência à UC, o aluno deve conseguir uma nota de pelo menos 50% no TP (3 em 6 valores).



Fórmula de cálculo da classificação final

Assumindo que o aluno tem frequência, a nota final (Final) é obtida pela expressão:

   Final =  TP + T1 + T2

em que TP é avaliado para 6 valores e T1 e T2 são avaliados para 7 valores cada.

Na época de recurso a avaliação será sobre toda a matéria teórica (o conjunto das componentes T1 e T2) a designar por T, e avaliada para 14 valores, sendo a correspondente nota Final = TP + T 

Avaliação especial (TE, DA, ...)

Os estudantes inscritos ao abrigo de regimes especiais sem frequência de aulas práticas estão sujeitos às mesmas condições de avaliação dos alunos regulares, excepto que estão dispensados de frequentar as aulas práticas. 


Melhoria de classificação

A nota da componente teórica T (conjunto T1, T2) pode ser melhorada nas épocas legalmente previstas.

Observações

Muito importante: os casos de conduta académica desonesta serão apresentados ao Director do Curso.
Recomendar Página Voltar ao Topo
Copyright 1996-2025 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2025-06-14 às 10:38:26 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias