sistemas operativos paulo marques departamento de eng. informática universidade de coimbra...

23
Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra [email protected] 2006/200 7 Apresentação

Upload: internet

Post on 17-Apr-2015

119 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

Sistemas Operativos

Paulo MarquesDepartamento de Eng. InformáticaUniversidade de [email protected]

2006

/200

7

Apresentação

Page 2: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

2

Motivação

Page 3: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

3

Motivação…

Page 4: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

4

Motivação…

Page 5: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

5

Motivação…

Page 6: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

6

Motivação…

Page 7: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

7

Sistemas Operativos segundo Tanenbaum

© Prentice Hall, “Modern Operating Systems”, Tanenbaum & Woodhull

Page 8: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

8

Motivação…

Mars Path Finder

Page 9: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

9

The Mars PathFinder Problem

Priority Inversion Problem (in Mars Path Finder): Low priority thread locks a

semaphore. High priority thread starts to

execute and tries to lock the same semaphore. It’s suspended since it cannot violate the other thread lock.

Medium priority threads comes to execute and preempts the low priority one. Since it doesn’t need the semaphore, it continues to execute.

Meanwhile the high priority one is starving. After a while, a watchdog timer detects that the high priority one is not executing and resets the machine.

A

B

C

starts toexecuteand getsthe lock

starts toexecute

tries to get the lock and is suspended

continuesto execute

is preempted asmedium prioritygets to execute

watchdog timer resets the machine as the high priorityone doesn’t get toexecute

Page 10: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

10

The Mars PathFinder Problem

Priority Inversion Problem (in Mars Path Finder): Low priority thread locks a

semaphore. High priority thread starts to

execute and tries to lock the same semaphore. It’s suspended since it cannot violate the other thread lock.

Medium priority threads comes to execute and preempts the low priority one. Since it doesn’t need the semaphore, it continues to execute.

Meanwhile the high priority one is starving. After a while, a watchdog timer detects that the high priority one is not executing and resets the machine.

A

B

C

starts toexecuteand getsthe lock

starts toexecute

tries to get the lock and is suspended

continuesto execute

is preempted asmedium prioritygets to execute

watchdog timer resets the machine as the high priorityone doesn’t get toexecute

What does it all mean???

Page 11: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

11

Sobre o que é que vamos falar?

O Sistema Operativo é um “programa especial” que permite isolar o hardware dos programas que executam neste Gera a memória Gere os discos Gere os periféricos (teclado, rato, placa gráfica) Gere os utilizadores e programas, protegendo todo o sistema

... tudo para que o programador não tenha de o fazer

OBJECTIVOS Saber como funciona um sistema operativo “por dentro” Saber utilizar e programar utilizando as funções fornecidas

pelos sistemas operativos, tirando partido das suas potencialidades

Aprender programação concorrente Aprender programação em “C”

Page 12: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

12

Windows 2000 “on the inside”

Page 13: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

13

Plano das Aulas Teóricas

1. Breve introdução à linguagem “C”2. Funções de um Sistema Operativo 3. Gestão de Processos4. Multithreading 5. Programação Concorrente 6. Exclusão mútua, sincronização e dead-locks 7. Gestão de memória / Memória virtual 8. Escalonamento de processos 9. Entrada/Saída e escalonamento de disco 10. Sistemas de Ficheiros 11. Segurança 12. Introdução aos sistemas operativos de tempo real

Page 14: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

14

Plano das Aulas Práticas

1. Introdução à programação em C e Unix2. Gestão de Processos3. Sinais (Interrupções assíncronas)4. Comunicação entre processos usando pipes5. Multiplexação de Entrada/Saída6. Memória Partilhada + Programação Concorrente7. Threads + Programação Concorrente

Page 15: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

15

Docentes

Aulas Teóricas Paulo Marques

[email protected] D2.5 Atendimento: Seg/Qui. 10h-12h

Aulas Práticas Bruno Cabral

[email protected] D1.9

Aulas Práticas Laboratoriais TBD (2 assistentes)

Nuno [email protected] D2.16

Page 16: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

16

Bibliografia – Parte Teórica

Operating System Concepts7th Editionby Abraham Silberschatz, Peter Baer Galvin, Greg GagneJohn Wiley & Sons, ISBN 0471694665

Operating Systems: Internals and Design Principles5th Edition, by William StallingsPrentice Hall, ISBN 0131479547

Page 17: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

17

Bibliografia – Parte Prática

Unix Systems Programming: Communication, Concurrency and Threads2nd Editionby Kay Robbins, Steve RobbinsPrentice Hall, ISBN 0130424110

Page 18: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

18

Bolonha

Semanalmente: 2h de aulas presenciais teóricas Conhecimentos Teóricos 1h de aulas presenciais práticas Explicação Trabalhos/Matéria 6h de trabalho extra aula Resolução de fichas/trabalhos/estudo

[c/ Aulas Práticas Laboratoriais de Apoio, se necessário]

1 ECTS = 27h de trabalho!

Page 19: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

19

Avaliação

Conhecimentos Um exame global 10 valores Um teste prático 2 valores Mínimo de 35% na média de ambos

Competências 7 Fichas semanais 3 valores

[nem a primeira nem a pior ficha são contabilizadas] 1 Trabalho global c/ Defesa 5 valores Mínimo de 35% na média de ambos

Exame de Recurso Perguntas extra sobre a prática

Aluno pode optar por responder ou não

Page 20: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

20

Planeamento da componente prática

Fichas Trabalho

19/Set 22/Nov 3/Jan

Def

esas

4&5/Jan

Tes

te

Page 21: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

21

Componente Prática

Programação concorrente em “C” em ambiente Unix/Linux A linguagem C é considerada pré-requisito. É assumido que

muito rapidamente (duas semanas a contar a partir de agora) se conseguem ambientar à linguagem.

O ambiente UNIX é considerado pré-requisito. É assumido que muito rapidamente (duas semanas a contar a partir de agora) se conseguem ambientar à linguagem.

Existem apontamentos sobre LINUX no material de apoio da cadeira.

A primeira aula de Sistemas Operativos é um mini crash-course sobre “C”. Mas, não é suficiente É necessário ler um livro e praticar.

Desde já é importante instalarem uma distribuição Linux Recomendo Ubuntu (www.ubuntu.com), mas qualquer uma

serve Podem utilizar uma máquina virtual (e.g. VMWARE), ou um

LiveCD, caso não queiram alterar as partições do vosso disco

Page 22: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

22

Conduta Ética e Fraude

É expressamente proibida a partilha de código fonte, por mais pequena que seja, entre alunos.

É expressamente proibida a utilização directa de código fonte recolhido da web. Caso tenha dúvidas se uma determinada utilização de

código é ou não admissível, consulte o seu professor das TP.

Casos detectados de fraude conduzirão àreprovação imediata do(s) aluno(s).

Para além de fomentar a aprendizagem, os trabalhos visam também testar as suas competências no final da aprendizagem. Submeter e/ou utilizar código escrito por outrem, mesmo quando entendido, não demonstra que possui as competências que deverá adquirir em SO. Existe uma grande diferença entre saber ler código e entender código e conseguir escrevê-lo. Parte integrante da aprendizagem nesta disciplina é ter a capacidade de o escrever autonomamente. Tal só se consegue tentando (e tentando!) programar.

Page 23: Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2006/2007 Apresentação

23

Let’s Have Fun with it!