tc – dei, 2005/2006. sistemas operativos paulo marques [email protected] pmarques tecnologia dos...
TRANSCRIPT
TC – DEI, 2005/2006
Sistemas Operativos
Paulo [email protected]://www.dei.uc.pt/~pmarques
Tecnologia dos Computadores 2005/2006
TC – DEI, 2005/2006
Organização do Software/Hardware
Hardware
Sistema Operativo
Aplicações
TC – DEI, 2005/2006
Diferentes Tipos de Software
Device Drivers
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
TC – DEI, 2005/2006
Virtualização do Processador/Dispositivos
Processador Real
Processadores Virtuais (... máquinas virtuais...)
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
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)
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
TC – DEI, 2005/2006
Comutação de Processos
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
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
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
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
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!
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!
TC – DEI, 2005/2006
GPF e Segmentation Faults!
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
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
TC – DEI, 2005/2006
Noção de Thread
Processo
Thread 1 Thread 2 Thread 3
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!
TC – DEI, 2005/2006
Quem são estes Senhores?
Dennis Ritchie Ken Thompson
Steve Jobs
Bill Gates
Bill Joy
Linus Torvalds
Andrew Tanenbaum
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
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”])