Conhecimentos de Base Recomendados
NA
Métodos de Ensino
A leccionação da unidade curricular será dividida em três partes: uma parte teórica com a exposição e explicação dos fundamentos teóricos, uma parte prática com resolução de exercícios, e uma parte laboratorial com a utilização de equipamentos e de software que consolide os resultados da aprendizagem. A avaliação da disciplina versará sobre estas três vertentes. Contará com uma prova escrita, valendo 20 valores. Nesta prova escrita a parte teórica terá uma valorização de 7 valores, e a prática de 13 valores. O trabalho laboratorial será também cotado para 20 valores. A nota final é obtida através da a média das notas da prova escrita e do trabalho laboratorial.
Resultados de Aprendizagem
Esta unidade curricular pretende proporcionar conhecimentos relativos à estrutura e funcionamento dos sistemas operativos. Nomeadamente, a aquisição de saberes relativos à criação de processos e threads, e às diferentes formas de intercomunicação entre estes. O aluno deverá também adquirir a capacidade de resolver problemas associados com a sincronização no acesso a recursos, de modo a evitar possíveis solicitações potencialmente conflituosas. Os alunos que completem esta unidade curricular com sucesso ficarão familiarizados com os mais importantes aspectos do funcionamento dos sistemas operativos, e adquirirão a capacidade de desenvolver aplicações que façam uso do interface de programação dum Sistema Operativo.
Programa
Evolução dos Sistemas Operativos (SO). Estrutura dos SO. Serviços de um SO. Interface com um SO. Chamadas ao sistema. Máquinas Virtuais. Processos. Escalonamento: filas de espera, schedulers e context switch. Criação e termino de processos. Comunicação entre processos: sistemas de memória partilhada e sistemas por passagem de mensagem. Comunicação em sistemas Cliente-Servidor: sockets, RPC e RMI. Threads. Modelos de Multithreading. Bibliotecas Thread. Escalonamento. Conceito de ciclo CPU-IO e escalonador de CPU. Algoritmos de escalonamento: First Come First Served (FCFS), Shortest Job First, Priority Scheduling, Round-Robin, Multilevel Queue e Multilevel Feedback-Queue. Sincronização. Solução de Peterson. Semáforos. Problemas de Sincronização Clássicos. Monitores. Deadlock. Caracterização. Prevenção. Detecção. Gestão da Memória. Principal e Virtual. Gestão do Armazenamento. Métodos de Acesso. Métodos de Alocação. Estrutura do Sistema de Ficheiros. Gestão do Espaço Livre. RAID.
Docente(s) responsável(eis)
Métodos de Avaliação
- - relatório - 50.0%
- - exame - 50.0%
- - Relatório - 50.0%
- - Teste Teórico 2 - 25.0%
- - Teste Teórico 1 - 25.0%
Estágio(s)
NAO
Bibliografia
A. Silberschatz, P. Galvin and G. Gagne, “Operating System Concepts with Java”, 7th Revised Edition, John Wiley & Sons, 2007
A. Tanenbaum, “Modern Operating Systems”, 3th Edition, Prentice Hall, 2008
J. Marques et al, “Sistemas Operativos”, FCA, 2009
K. Robbins and S. Robbins, “Unix Systems Programming: Communication, Concurrency and Threads”, 2nd Edition, Prentice Hall, 2003
R. Smith, LPIC- Linux Professional Institute Certification Study Guide 2nd Edition, Sybex, 2009
W. Stallings, “Operating Systems: Internals and Design Principles”, 5th Edition, Prentice Hall, 2004