Anúncios:
[19.2.2010] Enunciado do exame de recurso[.doc]
[29.1.2010] Salas para o exame do dia 29, `as 17h: o ponto de encontro é junto dos anfiteatros 1C ou 1D no Edifício VII, a partir do qual se fará a distribuição.
- 1A/Ed.VII
- 1B/Ed.VII
- 1C/Ed.VII
- 1D/Ed.VII
[25.1.20-10] Horário de dúvidas esta semana: dia 27, 10h-12h. Contacte <jcc@di.fct.unl.pt>
[25.1.2010] Enunciado do 1o exame [.doc] [res1.c] [res2.c] [res3.c]
[20.1.2010] As notas do Exame Normal estão afixadas no CLIP na secção Documentação de apoio: subsecção Outros. As notas finais serão também aí afixadas.
(Grades of the Normal Exam are to be found via CLIP on section Documentação de apoio: subsection Outros). Os exames podem ser vistos na 6af, dia 22.1.2010 às 11h30. Contacte os Profs Hervé Paulino ou Paulo Lopes.
[8.1.2010] Enunciado do 1o teste [.doc]. Resolução-Questao-4.
Enunciado do 2o teste [.doc]. Resolução-Questão-4: está nos acetatos 75 e 76 da aula Teórica 22.
[8.1.2010] Os alunos que dispensaram de exame, podem: (a) vir ao exame normal (11.1) mas nesse caso ficarão com a nota do exame (mantendo a da prática com peso 15%), ou (b) podem inscrever-se oficialmente para Melhoria de Nota na Rep Académica e vir ao exame na data de recurso - e nesse caso terão a melhor das notas (mantendo a nota da prática com peso 15%).
[5.1.2010] A matéria para o exame é a mesma matéria que veio para os dois testes.
[30.12.2009] As notas do 2o teste estão no CLIP na secção Documentação de apoio: subsecção Outros. As notas finais das práticas serão também aí afixadas.
(Grades of the 2nd Test can be found via CLIP on section Documentação de apoio: subsection Outros).
Os testes podem ser vistos na 3af, dia 5.1.2010 às 11h30. Contacte os Profs Hervé Paulino ou Paulo Lopes.
[30.12.2009] Enunciado do 2o teste [.doc]
[11.12.2009] Notas do 1o Teste [.teste1] Os testes podem ser vistos na 5af dia 17.12.2009 às 11h30. Contacte os Profs Hervé Paulino ou Paulo Lopes.
[11.12.2009] A matéria para o 2o teste (16.12.2009, 14h00) abrange toda a matéria dada até à 25a aula, inclusivé (veja os slides e apontamentos na página das Teóricas).
Exemplos de testes e exames: [t1] [t2] [t3] [t4] [t5] [t6]
Veja os slides e apontamentos das aulas Teóricas sobre a matéria do teste
(the same instructions in English: here):
Programação concorrente com comunicação por memória partilhada. Algoritmos baseados em espera activa. Semáforos.
Programação concorrente baseada em comunicação por mensagens
Servidores sequenciais e concorrentes
Comunicação por mensagens no Unix. Filas de mensagens.
Sinais assíncronos no Unix.
Programação concorrente baseada em monitores.
O Núcleo do Sistema de Operação. Gestão de processos pelo núcleo do SO. Algoritmos de escalonamento de processos (só o indicado na 25a aula).
Em termos de chamadas ao SO Unix e funções das quais tem de saber exactamente o protótipo das funções e o significado de todos os argumentos:
+ as que bloqueiam processos (pause, sleep)
+ as que operam sobre filas de mensagens (msgget, msgsnd, msgrcv);
+ as que operam sobre signals Unix (signal, kill, alarm) e as principais categorias de sinais
+ as que operam sobre Threads e Mutexes (pthread_create, pthread_join, pthread_mutex_init, pthread_mutex_lock, pthread_mutex_unlock)
- para os Monitores, utiliza-se o pseudo-código indicado nos exemplos das aulas, incluindo as primitivas que operam sobre variáveis de tipo condition (wait e signal)
- para os Monitores, incluem-se as primitivas que permitem programar no estilo dos monitores, mas ao nível de PThreads (pthread_cond_init, pthread_cond-wait,pthread_cond_signal,pthread_cond_broadcast) (consulte a 23ª aula teórica)
Consulta de elementos complementares:
do livro recomendado UNIX System Programming:
os capítulos de 1 a 6 (excepto o capítulo 4)
do capítulo 8: as secções sobre os mecanismos de IPC Unix
do livro recomendado Sistemas Operativos:
os capítulos 1, 2, 3 (excepto a secção 3.7),
do capítulo 4: as secções 4.1, 4.2 e 4.3.1, 4.3.2, 4.3.3,
o capítulo 5 (excepto as secções 5.5.3 e 5.6)
o capítulo 6 (excepto as secções 6.6 e 6.7.4)
do capítulo 10: as secções 10.1, 10.2, 10.3.3 e 10.3.4
[3.12.2009] Os alunos do turno P7 (devido a não ter havido aula no dia 30.11) podem entregar os relatórios dos trabalhos T4+T5 no dia 20.12.2009, Os prazos dos restantes turnos mantêm-se conforme a tabela abaixo:
Turnos de 2af Turnos de 3af
inicio aulas entrega inicio aulas entrega
T1 - 28/9 3 25/10 28/9 3 18/10
T2 - 26/10 1 1/11 19/10 1 25/10
T3 - 2/11 2 19/11 26/10 2 12/11
T4 - 16/11 2 ----- 9/11 2 -----
T5 - 30/11 2 13/12 23/11 2 20/12
(só para o turno P7: 20/12)
Anúncios antigos:
[30.11.2-009] Por impossibilidade do Prof Paulo Lopes, os alunos do turno P7 não terão aula pr'atica no dia 30.11.2009.[19.11.2009] Os prazos de entrega do trabalho T4 passam a coincidir com os do trabalho T5, que é uma continuação do T4 (veja a tabela abaixo indicada). Nos prazos do T5, deverão ser entregues os relatórios relativos às componentes T4+T5.
[12.11.2009] Enunciado do 1o teste [.doc]
[7.11.2009] Os prazos de entrega do TP T3 foram alterados. Esta alteração não afecta a sequência das aulas práticas que são dedicadas ao trabalho T4, a partir de 16/11 e de 9/11, respectivamente, para os turnos de 2a feira e de 3a feira.
Turnos de 2af Turnos de 3af
inicio aulas entrega inicio aulas entrega
T1 - 28/9 3* 25/10 28/9 3 18/10
T2 - 26/10 1 1/11 19/10 1 25/10
T3 - 2/11 2 19/11 26/10 2 12/11
T4 - 16/11 2 ----- 9/11 2 -----
T5 - 30/11 2 13/12 23/11 2* 20/12
(só o turno P7: 20/12)
3* - o trabalho T1 tem um feriado numa 2af (5/10)
2* - o trabalho T5 tem 2 feriados à 3af (1/12 e 8/12)
[26.10.2009] Os alunos devem comparecer nas salas para o 1o teste, segundo a seguinte distrbuição:
No Edifício VII: alunos desde 10556 a 28296[23.10.2009] Para o teste de 28/10/2009, às 17h00, os alunos devem trazer o seu cartão de identificação e folhas brancas de formato A4 (não há folhas especiais para o teste). O teste é sem consulta. Todos os elementos, para além das folhas e material de escrita serão depositados junto à entrada da sala. As salas reservadas são as seguintes:
No Edifício II: alunos de 28309 a 32102
e alunos com processo de inscrição não concluído
- 127/Ed.II, 128/Ed.II. 204/Ed.II
- 1B/Ed.VII, 1C/Ed.VII, 2B/Ed.VII, 2A/Ed.VII
capítulo 3: só as secções 3.1.1, 3.2.1, 3.2.2 e 3.2.3,
capítulo 5 todo (no entanto, na secção 5.10 só as secções 5.10.1 (The process-id) e 5.10.6 (The current working directory)
capítulo 7 (excepto secções 7.1.5, 7.1.6 e 7.2)
[21.10.2009] Por indisponibilidade de salas na Faculdade, a hora de início do 1o Teste, do dia 28/10/2009 foi alterada para as 17h.
[19.10.2009] Exemplos de testes típicos: [T1] [T2] [T3] [Res1] [Res2]. Para o 1o teste considere apenas as questões que se referem à matéria dada até à 8ª aula teórica, inclusivé:
Evolução histórica e conceitos fundamentais dos SO
Ficheiros e canais de entrada e saída. Caso do sistema Unix.
Processos num Sistemas de Operação: conceito e caso do sistema Unix.
Processos num Sistemas de Operação: redirecção de canais e comunicação por pipes. Caso do sistema Unix
[19.10.2009] Na entrega dos trabalhos, os alunos devem indicar o seu turno e grupo das práticas.
[14.10.2009] Todas as questões relacionadas com as aulas práticas devem ser tratadas contactando o docente do turno prático frequentado: Prof. Hervé Paulino (herve AT di.fct.unl.pt) ou Prof. Paulo Lopes (pal AT di.fct.unl.pt) (que substituirá o Prof. Rui Marques até ao fim do semestre).
[14.10.2009] Prazos de entrega dos TP:
Turnos de 2af Turnos de 3af
inicio aulas entrega inicio aulas entrega
T1 - 28/9 3* 25/10 28/9 3 18/10
T2 - 26/10 1 1/11 19/10 1 25/10
T3 - 2/11 2 15/11 26/10 2 8/11
T4 - 16/11 2 29/11 9/11 2 22/11
T5 - 30/11 2 13/12 23/11 2* 20/12
3* - o trabalho T1 tem um feriado numa 2af (5/10)
2* - o trabalho T5 tem 2 feriados à 3af (1/12 e 8/12)
[8.10.2009] Veja um conjunto de notas de apoio das aulas, junto aos sumários das aulas Teóricas.
[7.10.2009] AVISO para todos os turnos - Relatório do Trabalho Prático: a entrega do primeiro trabalho prático deve conter o código desenvolvido devidamente comentado e um relatório sucinto (máximo 3 páginas) descrevendo a solução apresentada. Estes elementos devem ser arquivados num ficheiro ZIP e enviados via e-mail, com o assunto "FSO - entrega T1", para o docente do turno prático frequentado: Prof. Hervé Paulino (herve AT di.fct.unl.pt) ou Prof. Paulo Lopes (pal AT di.fct.unl.pt) (que substituirá o Prof. Rui Marques até ao fim do semestre).
[7.10.2009] 1o teste de auto-avaliação [teste1.txt]
[28.09.2009] Os alunos com frequência do ano anterior e que queiram realizar os TP este ano, devem informar os professores das práticas.
[21.09.2009] Veja os sumários e slides das aulas: Teóricas.
[15.09.2009] Foi criado um novo turno prático - segundas-feiras, às 15h.
[02.09.2008] A 1ª aula teórica é na 1a semana de aulas. Há dois turnos teóricos. As aulas práticas começam na semana seguinte à das aulas teóricas. Os alunos devem inscrever-se num turno prático e realizar os trabalhos dentro dos prazos para obter frequência na disciplina. Os alunos com frequência obtida em 2008/09, mantêm a frequência este ano de 2009/10 (veja as regras de Avaliação).
[02/09/2009] A página da edição da disciplina de 2008/09.
Objectivos
Compreender as funcionalidades dos sistemas de operação dos computadores e as suas interfaces de utilização. Compreender as abstracções do sistema de operação para a execução de programas, o arquivo e a entrada/saída da informação. Compreender os modelos de programação de sistemas a nível das interfaces das chamadas ao sistema para o controlo de processos e o acesso a ficheiros. Compreender os princípios da programação concorrente e os mecanismos de sincronização e comunicação entre processos. Adquirir conhecimento dos aspectos teóricos e dos aspectos práticos, estes últimos através da realização de trabalhos práticos laboratoriais sobre o sistema UNIX.Programa
1. Introdução aos sistemas de operação dos computadores: evolução histórica, tipos de sistemas, interfaces de utilização e chamadas ao sistema.
2. Conceito de processo: noções de processador virtual, memória virtual e dispositivos virtuais de comunicação com o exterior. Modelo de execução de processos e princípios da sua realização. Noção de contexto de execução de um processo: estado de um processo e espaço de endereçamento.
3. Sistema de ficheiros e programação de entradas e saídas [Caps, 2, 3, 4 e 11 do livro UNIX System Programming]
- Canais virtuais de entrada e saída: programação ao nível das chamadas ao sistema.
- Sistemas de ficheiros: organização e operações de acesso.
4. Controlo de processos [Caps. 5, 6 e 7 do livro UNIX System Programming]
- Etapas da vida de um processo num sistema de operação: criação, carregamento e activação, estados de execução e terminação.
- Noções de eventos síncronos e assíncronos.
- Modelos de concorrência: entre processos e interna a um processo. Processos "pesados" e "leves".
5. Programação concorrente [Caps. 1 a 9 do livro Principles of Concurrent and Distributed Programming]
- Conceitos de execução sequencial e concorrente. Noções de atomicidade e de traços de execução.
- Modelos de competição e de cooperação entre processos concorrentes.
- Exclusão mútua, produtores e consumidores, leitores e escritores, clientes e servidores, transacções.
- Sincronização de processos. Algoritmos baseados em espera activa, em semáforos e em monitores.
- Comunicação entre processos: modelos de memória partilhada e de memória distribuída (em particular, baseados em troca de mensagens).
6. Chamadas ao sistema. Caso Unix.
Prática laboratorial: Programação ao nível da interface de chamadas a um sistema multiprogramado, da família UNIX (mais precisamente o Linux ) Programação de sistemas: programação em C baseada nas chamadas ao sistema de operação. Desenvolvimento de programas de acesso a ficheiros, criação e composição de processos concorrentes, comunicação e sincronização usando memória partilhada, semáforos, e mensagens.
Bibliografia
Referências de base
- Notas das aulas teóricas (nesta página, junto aos Sumários) e guia das práticas.(nesta página, junto aos Trabalhos).
- Sistemas Operativos, José A. Marques et al., FCA - Editora de Informática, 2009, ISBN 978-972-722-575-0
- UNIX System Programming, 2nd Edition, K. Haviland, D. Gray e B. Salama, Addison-Wesley, 1998
- B. W. Kernighan, D. M. Ritchie, The C Programming Language, 2nd Edition, Prentice Hall, 1988
- M. Ben-Ari, Principles of Concurrent and Distributed Programming, Addison-Wesley (Pearson Education), 2006 - Livro de consulta complementar
Referências disponíveis através da rede
-
Curiosidades:
- Dennis Ritchie Home Page (inclui muitas referencias entre as quais se destaca: "The Development of the C Language" e "The Unix Time-sharing System")
- Brian Kernighan
- The Creation of the Unix Operating System
Auto-avaliação
Haverá enunciados de testes de auto-avaliação, publicados nesta página, quinzenalmente. Aconselham-se os alunos a tentarem resolvê-los e procurarem esclarecer as sua dúvidas, junto dos docentes, durante o semestre lectivo.
Aulas práticas
Uso de um sistema multiprogramado, da família UNIX (mais precisamente o Linux ) Programação de sistemas baseada nas chamadas ao sistema de operação. Desenvolvimento de programas de acesso a ficheiros, criação e composição de processos, Programação concorrente com mecanismos de, comunicação e sincronização usando memória partilhada, semáforos, threads e monitores e de memória distribuída (mensagens).
Para a obtenção de frequência os alunos têm de fazer os trabalhos práticos e satisfazer as condições abaixo indicadas.
Regras de avaliação
Trabalhos
São 5 trabalhos a realizar nas aulas práticas, por grupos de 2 alunos.
Frequência na cadeira
Para se obter frequência na cadeira e ter nota final é necessário ter pelo menos 10 na nota prática. Todos os alunos se devem inscrever num turno prático. Os alunos que comprovem o seu estatuto de trabalhador estudante não são obrigados a ir às aulas práticas, mas têm de cumprir os mesmos requesitos de entrega dos trabalhos práticos, nos prazos indicados.
Testes
(sujeito à confirmação pela CPLEI)Nota final
- Nota Final = 0.85*NT+0.15*NP em que NT é a parcela da avaliação por testes ou exame e NP é a parcela resultante da avaliação da componente prática laboratorial.
- NT:
- obtida através de 2 testes, realizados ao longo do semestre, ou através do exame final
- os testes e o exame são sem consulta, e cobrem as matérias teórica e prática
- Se optar por fazer a
avaliação por
testes: NT = 0.5* NT1+0.5*NT2 (NT1 e NT2
são as notas
dos testes)
- e, nesse caso, se Nota Final = 0.85*NT+0.15*NP for >= 9.5 após os testes, tem dispensa de exame.
- Se, tendo dispensado de exame, decidir comparecer a exame final, a sua componente de nota NT = Nota do Exame. A componente NP mantém-se. (note que, neste caso, pode sempre inscrever-se para Melhoria de Nota, na Rep. Académica).
- Se não dispensou, após ter feito os testes, tem de fazer o exame. A componente NP mantém-se.
- NP:
- Práticas laboratoriais: realização
de 5 trabalhos, grupos 2 alunos. A nota atribuída por
trabalho depende
do desempenho do
aluno, da demonstração dos trabalhos
práticos e
dos relatórios entregues.
Obtém-se a nota final da prática laboratorial NP final numa escala de 0 a 20.
- Frequência: é exigida para se obter uma nota final na disciplina; tem frequência quem satisfizer a seguinte condição:
- NP >= 9.5
- Os alunos que obtiveram frequência na disciplina em 2008/09, mantêm a frequência na disciplina em 2009/10. Assim, não precisam de se inscreverem nas práticas e, nesse caso, a sua nota final na disciplina será a nota obtida nos testes ou no exame (NotaFinal = NT). No entanto, se realizarem os trabalhos práticos, a sua nota final terá em conta a nota obtida nas práticas (NP) neste ano de 2009/10: Nota Final = 0.85*NT+0.15*NP. Neste caso, devem comunicar esta intenção aos docentes das práticas.
- Os alunos podem fazer Melhoria de nota através do regime oficial, com inscrição em Exame de Melhoria de Nota, pela Rep.Académica.
