5306O2 - Sistemas Operativos II (2005 - 2006)
Up one level- Docente responsável pela disciplina
- Francisco Soares de Moura
- Docente responsável pelas aulas teóricas
- Francisco Soares de Moura
- Docentes responsáveis pelas aulas teorico-práticas
- Carlos Baquero Moreno
- Aulas teóricas
- 3ª-feira, 11H00-13H00
- Aulas teórico-práticas
- 2ª-feira, 14H00-17H00
2ª-feira, 17H00-20H00
3ª-feira, 08H00-11H00
3ª-feira, 16H00-19H00
- Atendimento
- Francisco Soares de Moura: 3ª-feira, 09H30-10H30, ou a combinar por e-mail.
Victor Francisco Fonte: 3ª-feira, 11H00-13H30, ou a combinar por e-mail.
Exame final (90%) + miniteste (10%)
- Introdução
- Gestão de ficheiros: objectivos, concretização, sistemas de ficheiros distribuídos
- Programação concorrente: modelos baseados em memória partilhada, mensagens, cliente-servidor.
- Programação em sistemas distribuídos: motivação, problemas, mecanismos de comunicação
- Introdução
- Concorrência e distribuição nos sistemas operativos e aplicações
- Gestão de ficheiros
- Objectivos, compromissos
- Concretização em Unix, Windows, etc.
- RAID e sistemas de ficheiros baseados em "diário".
- Sistemas de ficheiros distribuídos: NFS
- Programação concorrente
- Modelos baseados em memória partilhada, mensagens, e operações remotas
- Modelo cliente-servidor
- Resolução de exercícios
- Programação em sistemas distribuídos
- Motivação, problemas a resolver
- Mecanismos de comunicação
- Exercícios
- A. S. Tanenbaum, Modern Operating System,Prentice Hall, 1992.
- David R. Butenhof, Programming with POSIX Threads.
- W. Richard Steven, UNIX Network Programming - Volume 1; Networking APIs: Sockets and XTI, 1990.
- Get to Know Raid
- Raid primer
- Linux Magazine: Journaling File Systems
- The design and implementation of a log-structured file system
- Linux Links: File Systems
- Unix File Systems: Evolution, Design, and Implementation
- POSIX Threads Programming
- R. Stevens, Advanced Programming in the Unix Environment,Addison Wesley, 1990
- U. Vahalia, Unix Internals,Prentice Hall, 1996
- Windows Services for UNIX
Esta disciplina surgiu pela primeira vez no ano lectivo de 1995/96, como consequência da restruturação das Licenciaturas em Engenharia de Sistemas e Informática e Matemática e Ciências da Computação. O seu programa é em parte coincidente com o do segundo semestre da antiga disciplina de Sistemas Operativos, embora tenham sido feitas actualizações consideráveis de modo a acompanhar a evolução dos sistemas operativos (e linguagens) actuais, sobretudo no que diz respeito ao suporte a aplicações distribuídas.
Nesta disciplina aprofundam-se os conhecimentos de programação concorrente adquiridos no primeiro semestre em Sistemas Operativos I e entra-se já no desenvolvimento de aplicações distribuídas baseadas no modelo cliente-servidor. Tira-se partido da mudança da componente de gestão de ficheiros do primeiro para o segundo semestre para ilustrar o modelo cliente-servidor e os sistemas de ficheiros para ambientes distribuídos (NFS). Usam-se ainda ficheiros para recordar a necessidade de exclusão mútua no acesso simultâneo a recursos, passando-se depois aos algoritmos clássicos de sincronização tipo "leitores-escritores" com prioridades, que são resolvidos com semáforos, mutexes, mensagens, etc, em sistemas operativos como o Linux, Solaris ou Windows XP. Capitaliza-se nos conhecimentos de processos, threads e mecanismos de comunicação para desenvolver servidores (acesso a bases de dados, impressoras, etc), que posteriormente são distribuídos de uma forma natural à custa da utilização de sockets. A disciplina termina com o desenvolvimento de pequenas aplicações distribuídas em Java.
Esta é uma disciplina cuja componente dita "teórica" é muito reduzida. Cobre essencialmente aspectos de gestão avançada de ficheiros, incluindo a percepção das vantagens da utilização de discos RAID e de sistemas de ficheiros baseados em "diário" (Log-strutured File Systems), descendo ainda ao escalonamento de pedidos de transferência de disco. Por este motivo, procura-se que uma parte das aulas teóricas seja de diálogo e síntese de conceitos, e dedica-se o resto das aulas à discussão de problemas de programação concorrente e distribuída, e à resolução de exames de anos anteriores. Pelo mesmo motivo, a cotação do exame final assenta essencialmente nos exercícios práticos.
- Aulas teóricas
- 21 Fev 2006
- Apresentação da disciplina. Inscrição nos turnos práticos.
- 07 Mar 2006
- Gestão de Ficheiros: visão operacional.
- 17 Mar 2006
- Gestão de Ficheiros: Objectivos, questões a resolver. Persistência, eficiência, rapidez, segurança, etc. Exemplos.
- 24 Mar 2006
- Gestão de ficheiros: Estratégias de escalonamento de pedidos de transferência (FIFO, SSTF, SCAN/Elevator, C-SCAN). Caso prático: esboço de algoritmo FIFO. RAID: objectivos, RAID tipo 0, 1 e 5.
- 28 Mar 2006
- Estudo de casos de sistemas de ficheiros: FAT, i-nodes, coerência de sistemas de ficheiros. Log-structured file systems.
- 04 Abr 2006
- Programação Concorrente: Concorrência vs. paralelismo, Interacção (cooperação e competição), Sincronização, Comunicação. Modelos de concorrência, processos e threads. Exemplos de competição por recursos partilhados, tentativas de implementação de mecanismos de exclusão mútua.
- 11 Abr 2006
- Operações sobre semáforos, resolução de problemas de sincronização, exclusão mútua e capacidade.
-
Apontamentos das Aulas Teóricas
- Pasta com documentos de apoio às Aulas Teóricas
-
Exames SOII
- Sortido de exames de anos anteriores
-
exame de recurso
- Notas exame 18 de Julho