Ficha de Unidade Curricular: Sistemas Operativos

Código: EEC0139     Sigla: SO

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

Ocorrência: 2017/2018 - 2S Ícone do Moodle

Ativa? Sim
Página Web: http://web.fe.up.pt/~pfs/aulas/so2018/
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado Integrado em Engenharia Electrotécnica e de Computadores

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MIEEC 66 Plano de estudos oficial 3 - 6 56 162

Docência - Responsabilidades

Docente Responsabilidade
Pedro Alexandre Guimarães Lobo Ferreira Souto Regente

Docência - Horas

Teóricas: 2,00
Práticas Laboratoriais: 2,00
Tipo Docente Turmas Horas
Teóricas Totais 1 2,00
Pedro Alexandre Guimarães Lobo Ferreira Souto 2,00
Práticas Laboratoriais Totais 3 6,00
José Manuel de Magalhães Cruz 4,00
Pedro Alexandre Guimarães Lobo Ferreira Souto 2,00
Mais informaçõesA ficha foi alterada no dia 2018-02-03.

Campos alterados: Fórmula de cálculo da classificação final, Programa, Bibliografia Complementar, Componentes de Avaliação e Ocupação, Bibliografia Obrigatória, URL da página

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

1- Enquadramento

Os sistemas operativos são um componente essencial em praticamente qualquer sistema baseado em (micro)processadores. O conhecimento da sua organização e da sua implementação é essencial para conseguir um melhor aproveitamento dos recursos físicos desse tipo de sistemas. Este conhecimento é especialmente útil para o desenvolvimento de sistemas embebidos muito simples (tipicamente uma área do engenheiro eletrotécnico e de computadores) uma vez que este tipo de sistemas frequentemente não usam um sistema operativo completo, mas precisam de algumas das funcionalidades dum sistema operativo.

Adicionalmente, os sistemas operativos são inerentemente concorrentes, fornecendo um contexto concreto para o estudo dos problemas da concorrência, cada vez mais importantes dada a ubiquidade de processadores com múltiplos núcleos.

2- Objetivos específicos

Os objetivos desta UC são

3- Distribuição Percentual

Científica: 30%

Tecnológica: 70%

 

 

Resultados de aprendizagem e competências

Os alunos que concluam com sucesso esta unidade curricular deverão ser capazes de:

Modo de trabalho

Presencial

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

Espera-se que os alunos:

Programa

Introdução aos sistemas operativos: conceitos, funções e interfaces.

Arquitectura do SO. Núcleo ("kernel") do SO. Núcleos monolíticos e micro-núcleos.

Gestão de processos. Modelo, escalonamento de processos e comunicação entre processos. API para gestão de processos.

Concorrência: multiprogramação, sincronização e bloqueio mútuo. API POSIX para "threads" e respectivos mecanismos de sincronização.

Gestão de entradas/saídas. Dispositivos, controladores, interrupções."Device drivers". Gestão de memória.

Memória física e virtual. Paginação e segmentação.

Sistema de ficheiros: abstrações e sua implementação. API para acesso a ficheiros.

Segurança em sistemas operativos. Autenticação e autorização. Mecanismos de proteção e de confinamento.

Bibliografia Obrigatória

Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau; Operating Systems: Three Easy Pieces, Arapci-Dusseau Books, 2011. ISBN: 9781105979125 (Disponível gratuitamente em: http://pages.cs.wisc.edu/~remzi/OSTEP/)

Bibliografia Complementar

José Alves Marques,... [et al.]; Sistemas operativos. ISBN: 978-972-722-575-0
Jonathan Corbet, Alessandro Rubini and Greg Kroah-Hartman; Linux Device Drivers, 3rd Ed., O'Reilly Media, Inc., 2005. ISBN: 0-596-00590-3 (Disponível na Web através de: http://lwn.net/Kernel/LDD3/)
Andrew S. Tanenbaum; Modern operating systems. ISBN: 0-13-813459-6 (Versões anteriores são igualmente valiosas, embora não se recomende a sua aquisição)
Abraham Silberschatz, Peter Baer Galvin, Greg Gagne; Operating system concepts. ISBN: 0-471-69466-5 (Versões anteriores são igualmente úteis. Aliás, esta não é a versão mais recente. )

Observações Bibliográficas

Esta UC concentra-se nos conceitos fundamentais de sistemas operativos (SO), a maioria dos quais foi estabelecido há algumas décadas. Assim, livros sobre SO dos anos 1990 ou mesmo dos anos 1980 cobrem a maior parte da matéria. É sem dúvida preferível estudar por um desses livros do que não estudar por livro algum, i.e. do que usar apenas as transparências disponibilizadas.

Métodos de ensino e atividades de aprendizagem

As aulas teóricas são de exposição, apresentadas normalmente com auxílio de projector. Sempre que fôr adequado, exemplos que ajudem à compreensão dos tópicos serão apresentados. A matéria exposta segue de perto a contida na bibliografia principal. As aulas laboratoriais são de programação, quer para desenvolver pequenos programas que usam as chamadas ao sistema do SO quer para desenvolver o projecto.

Em finais de Abril os estudantes deverão realizar uma prova de programação consistindo na resolução de problemas semelhantes aos apresentados nas aulas laboratoriais. A prova é realizada num computador com acesso apenas à documentação existente nesse computador. A duração da prova é de 3 horas.

No final do semestre os estudantes deverão entregar um pequeno projeto de desenvolvimento dum "char device driver" simples para Linux.

O exame final, com duração prevista de 2 horas, incide não só sobre aspetos teóricos mas também sobre programação, incluindo o projeto.

Software

gcc: compilador de C da GNU
Virtual Box OSE
Linux

Palavras Chave

Ciências Físicas > Ciência de computadores > Sistema de computadores
Ciências Físicas > Ciência de computadores > Programação
Ciências Físicas > Ciência de computadores

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 50,00
Participação presencial 10,00
Teste 20,00
Trabalho laboratorial 20,00
Total: 100,00

Componentes de Ocupação

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

Obtenção de frequência

Não ultrapassagem do número limite de faltas e obtenção de um mínimo de 9 valores na nota de frequência (média das classificações da prova de programação e do projecto).

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

0,5ET + 0,1 PA + 0,2 PP + 0,2 Pr

onde:

ET- Classificação do exame teórico (Exame)

PA- Classificação da participação nas aulas

PP- Classificação da prova de programação (Teste)

Pr- Classificação do projecto (Trabalho laboratorial)

Para aprovação à disciplina, os estudantes deverão ter uma classificação mínima de 8 valores no exame teórico.

IMP.: Embora o projeto seja realizado em grupo, as classificações são individuais, i.e. membros do mesmo grupo podem ter classificações diferentes no projeto.

Provas e trabalhos especiais

Em épocas de exame especiais, os estudantes que não tenham obtido frequência terão que realizar um projeto, o qual terá que ser acordado o regente, e/ou uma prova de programação.

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

No caso dos estudantes com estatuto especial, porque dispensados da frequência das aulas práticas, os 10% da classificação de participação nas aulas serão igualmente distribuídos pela prova de programação e pelo projecto, os quais passam a ter um peso de 25% cada. A prova de programação é realizada juntamente com os restantes alunos. O projecto terá que ser apresentado na última semana de aulas, em local e data a acordar com o regente da disciplina.

Melhoria de classificação

A melhoria da classificação do exame teórico é realizada mediante submissão a outro exame teórico semelhante ao da época normal ( e com o mesmo peso) nas épocas previstas para o efeito.

Observações

As aulas poderão ser dadas em inglês se todos os alunos inscritos concordarem ou se algum dos alunos inscritos não falar Português.