Ficha de Unidade Curricular: Sistemas Operativos

Código: EEC0139     Sigla: SO

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

Ocorrência: 2013/2014 - 2S

Ativa? Sim
Página Web: http://web.fe.up.pt/~pfs/aulas/so2014/
Página e-learning: https://moodle.fe.up.pt/
Unidade Responsável: Departamento de Engenharia Informática

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 87 Plano de estudos de Transição a partir de 2010/11 3 - 6 63 162
Plano de estudos oficial 3 - 6 63 162

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 4 8,00
Hugo José Sereno Lopes Ferreira 2,00
Pedro Alexandre Guimarães Lobo Ferreira Souto 2,00
José Manuel de Magalhães Cruz 4,00

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

José Alves Marques,... [et al.]; Sistemas operativos. ISBN: 978-972-722-575-0

Bibliografia Complementar

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. )
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/)

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
Linux
Virtual Box OSE

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 de campo 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 45% 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

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

PP- Classificação da prova de programação

Pr- Classificação do projecto

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.