tc – dei, 2005/2006. sistemas operativos paulo marques [email protected] pmarques tecnologia dos...

24
TC – DEI, 2005/2006

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Page 2: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

Sistemas Operativos

Paulo [email protected]://www.dei.uc.pt/~pmarques

Tecnologia dos Computadores 2005/2006

Page 3: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Organização do Software/Hardware

Hardware

Sistema Operativo

Aplicações

Page 4: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Diferentes Tipos de Software

Device Drivers

Page 5: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Funções do Sistema Operativo

Esconder os detalhes do hardware subjacente ao sistema Gestão de memória Gestão de dispositivos genéricos Gestão de dispositivos de armazenamento

(discos/etc.) Segurança

“Virtualizar” a utilização do processador e dos recursos associados à máquina Cada programa corre sobre a aparência de ser o

único no sistema O sistema operativo fornece um interface unificado

aos dispositivos da máquina

Page 6: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Virtualização do Processador/Dispositivos

Processador Real

Processadores Virtuais (... máquinas virtuais...)

Page 7: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Virtualização da Máquina

Dois aspectos fundamentais...

Multiprogramação Trata-se de uma técnica de manter múltiplos

programas em memória simultaneamente. Cada programa executa como se fosse o único existente na máquina.

Gestão de Memória Em qualquer altura o Sistema Operativo tem de

saber que programas estão em memória e onde é que cada um deles reside

Page 8: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Conceito de Processo

Um programa em execução com... Um identificador único Recursos próprios (e.g. ficheiros abertos) Um espaço de endereçamento (i.e. memória própria

protegida de todos os outros “processos”)

MS Excel(1 processo)

MS Word(1 processo)

Page 9: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Comutação entre Processos

De alguns em alguns ms é gerada uma “interrupção”

Quanto existe uma interrupção, deixa-se de executar o código do utilizador e passa-se a executar o código do sistema operativo

O sistema operativo pode então comutar para outro processo (escalonamento preemptivo)

total = 0;for (int i=0; i<20000; i++) total = total + i;

printf(“total=%d\n”, total);

while (!feof(fd)){ if (fscanf(fd, “%d”, &d) == 1) printf(“%d\n”, d);}

(...)Nível do Utilizador

Nível do KernelRTC Interrupt Handler

Page 10: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Comutação de Processos

Page 11: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Ciclo de Vida de um Processo

New

Ready(to execute)

Blocked(waiting for something)

Running

Terminated

I/O orevent waiting

End of I/O orevent completed

Dispatch

Interrupt

Page 12: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Filas do Sistema Operativo

Ready Queue Fila onde aguardam todos os processos que estão à

espera de executar

Blocked Queue Fila onde aguardam todos os processos que estão à

espera que uma operação de entrada/saída complete ou de um “evento especial”

Running (não é uma fila) Processo que se encontra a executar Apenas este processo o Sistema Operativo ocupam

tempo de processador

Page 13: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Escalonamento de Processos

Suponhamos que existem vários processos na Ready Queue.... Como é que se decide qual é que executa a seguir?

Existem diversos algoritmos, um bastante conhecido e utilizado é o Round-Robin

Page 14: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Round Robin

É decidido à priori qual a fatia de tempo a atribuir a cada processo. Timeslice ou Quantum de Execução

A “Ready Queue” é um lista ordenada Cada processo executa até se esgotar o seu timeslice.

Quando isso acontece, é colocado no final da ready queue O próximo processo a executar é o que está à frente na ready

queue

Page 15: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Gestão de Memória

É absolutamente fundamental que cada processo não possa aceder à memória dos outros processos Questão de segurança de dados Protecção contra “ponteiros” perdidos e bugs de

software

Grande problema dos Windows 95, 98 e Macs antigos!

Page 16: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Memória Segmentada “Real”

A cada processo corresponde um endereço base e um limite (registos especiais no processador)

Sempre que existe um acesso a memória, o processador verifica se o processo se encontra a aceder à sua memória ou não

0

ProcessoA

ProcessoB

50060

60530

70000

71433

MOV AX, [50124]

MOV AX, [60000]

OK, dentro do espaçode endereçamento

ERRO, Acesso proibido!

Page 17: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

GPF e Segmentation Faults!

Page 18: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Memória Virtual

Actualmente, todos os sistemas utilizam o conceito de memória virtual Cada processo vê toda a memória do computador, como

sendo dele Quando um processo gera um endereço, esse endereço é

virtual. O processador, com a ajuda do sistema operativo transforma-o num endereço físico

0 0

4Gb 4Gb

Espaço de endereçamento do processo A

Espaço de endereçamento do processo B

1000 1000

Memória física0

256Mb5000

Tabela(s) de Tradução deEndereços

Disco

Page 19: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Memória Virtual Paginada

O sistema mais utilizado nas máquinas actuaisFunciona tal como o esquema indicado anteriormente, com os seguinte pormenores A memória física é dividida em pequenos pedaços

chamados páginas (e.g. 4Kbytes) A memória de cada processo também é dividida em

páginas Existe uma tabela de páginas por cada processo,

que é gerida pelo sistema operativo. É utilizando esta tabela que é feita a tradução dos endereços virtuais em endereços físicos

Sempre que é colocado outro processo em execução, a sua tabela de páginas é carregada e utilizada

Page 20: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Noção de Thread

Processo

Thread 1 Thread 2 Thread 3

Page 21: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Noção de Thread

A troca de processos é uma operação extremamente cara... É necessário reorganizar os espaços de

endereçamento É necessário estabelecer novos contextos de

segurança É necessário gerir a informação associada aos

processos em causa

Thread É um “fluxo de execução” dentro de um processo; é

um mini-processo dentro de um processo. O espaço de endereçamento é o mesmo A comutação entre threads é muito, muito rápida!

Page 22: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Quem são estes Senhores?

Dennis Ritchie Ken Thompson

Steve Jobs

Bill Gates

Bill Joy

Linus Torvalds

Andrew Tanenbaum

Page 23: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

» OPERATING SYSTEMS ARE LIKE UNDERWEAR – NOBODY REALLY WANTS TO LOOK AT THEM « Bill Joy, Chief Scientist and Co-Founder of Sun Microsystems

Page 24: TC – DEI, 2005/2006. Sistemas Operativos Paulo Marques pmarques@dei.uc.pt pmarques Tecnologia dos Computadores 2005/2006

TC – DEI, 2005/2006

Para saber mais...

Computer Science, An Overview Capítulo 3 (3.1, 3.2, 3.3)

Computer Science Illuminated Capítulo 10 (10.1, 10.2, 10.3, 10.4 [apenas “Round-

Robin”])