sistemas operativos - web.fe.up.ptweb.fe.up.pt/~rma/sope/at/t02_03.pdf · agenda • objectivos de...

47
Sistemas Operativos Princípios de sistemas operativos Rui Maranhão ([email protected] )

Upload: dotuong

Post on 13-Dec-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistemas OperativosPrincípios de sistemas operativos

Rui Maranhão ([email protected])

Page 2: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Agenda

• objectivos de um computador

• objectivos de um sistema operativo

• evolução dos sistemas operativos

• tipos de sistemas operativos

Page 3: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Computador

• é formado por hardware, ...

• e também programas, aplicações

Page 4: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Objectivos de um computador

• manipular dados (semi-) automaticamente

• facilitar a vida aos utilizadores

• prático, simples de usar

• executar programas (i.e., aplicações)

Page 5: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistema Operativo

• programa que actua como intermediário entre os utilizadores e o hardware

• gestor de recursos

• tempo, espaço

Page 6: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Objectivos- Conveniência -

• SO esconde os detalhes do hardware

• simula máquina virtual (utilização fácil)

• fornece API mais fácil de usar do que o hardware

Page 7: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Objectivos - Eficiência -

• SO controla a alocação dos recursos

• multiplexação

• tempo: cada processo usa o recurso à vez

• espaço: recurso é partilhado

Page 8: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Evolução

• 1a geração (1945-1955) - Válvulas e placas programáveis

• 2a geração (1955-1965) - Transístores e sistemas batch

• 3a geração (1965-1980) - Circuitos integrados

• 4a geração (1980- ) - PCs, workstations, servidores

• uma nova geração?? PDAs, smartphones, sistema de navegação (ndrive), TVs, ...

Page 9: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

1a geração

• acesso livre ao computador

• utilizador podia mas também tinha de fazer tudo

• ‘inventar a roda’

• baixa eficiência

• elevado tempo de preparação

• difícil encontrar erros

Page 10: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

2a geração

• transístores e sistemas batch (mainframes)

• mais eficiente que a 1a geração, mas

• máquinas bastante caras

• como executar um programa ?

• programa era escrito em papel

• codificado em fitas perfuradas

• fornecido ao operador especializado

Page 11: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

2a geração

• para aumentar eficiência

• operador especializado

• operador carrega programas, executa-os e devolve resultados

• 1 programa de cada vez

• programa auxiliar para executar tarefa tinha de ser carregado (FORTRAN)

• ganhou-se eficiência, perdeu-se conveniência

Page 12: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

2a geração

• gestores queriam reduzir tempo off-line

• maximizar uso da máquina (€)!!

• solução: sistemas batch

• coleccionar série de programas semelhantes numa fita

Page 13: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistemas batch

Page 14: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistemas batch

Page 15: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Como melhorar?

• programa (resident monitor) que

• controla a operação de um computador

• encadeia ‘jobs’

• embrião de um sistema operativo?!

Page 16: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

3a geração

• multi-programação

• executar programas ao mesmo tempo

• e.g., enquanto um programa espera por IO, outro pode usar o CPU

Page 17: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Multiprogramação

• vários jobs são carregados para a memória central, e o tempo de CPU repartido

• mecanismos de interrupções permite multiplexar o processador entre várias actividades

• execução concorrente de vários programas

• optimizar utilização do processador

Page 18: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Multiprogramação

Page 19: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Contudo...

• Eficiência em risco devido erros de programação

• deadlocks

• race conditions

• destruir o programa de controle

• Pouca interacção com programa em execução

• difícil identificar erros!

Page 20: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Time-sharing

• time-sharing aumenta a conveniência

• SO reparte o tempo de CPU pelos vários programas prontos a executar

• cria a ilusão que o computador está permanentemente disponível

• Impulsionado por descida dos preços dos terminais

Page 21: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Consequências

• revisão dos algoritmos de escalonamento

• definição dos mecanismos de segurança

• aparecimento do sistema de ficheiros

• tempo partilhado -> vários progs em memória simultaneamente

• Hierarquia de memória

Page 22: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

4a geração

• apareceram por volta dos anos 80

• incentivado pelo baixo custo do hardware

• exequível um computador voltar a ser dedicado a um só utilizador

• também conhecido como computadores pessoais (ou micro-computadores)

Page 23: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Multiprocessamento

• vantagens

• throughput

• economia

• graceful degradation

• ideia: aumentar throughput, e não executar o programa mais depressa

Page 24: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Multiprocessamento

• Arquitectura

• simétrico

• qualquer CPU pode executar código do SO

• assimétrico

• periféricos associados a um CPU

• não há race conditions, CPU idles

• baixo throughput

Page 25: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistemas Distribuídos

• SD apareceram para partilhar

• recursos caros

• inconvenientes de replicar

• redireccionamento de IO

• Consequência da evolução de

• redes, PCs, custo dos computadores, ...

Page 26: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistemas Distribuídos

• de network aware OSs (sistemas iniciais: Mail, FTP) passou-se a sistemas vocacionados para trabalhar em rede (e.g., sistemas de ficheiros distribuídos)

• aplicações acedem aos recursos remotos de forma transparente

Page 27: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistemas de tempo real

• inicialmente usado para controlo de processos industriais

• tb usado para jogos, sistemas, controlo de automóveis/aviões

• típico de sistemas embebidos

• SW integrado com o HW

• difícil de estender as aplicações

Page 28: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Tempo virtual vs. real

• tempo virtual

• tempo de execução não tem relação com o tempo cronológico

• sistema utilizado na maioria dos computadores (windows, linux, mac os)

• tempo real

• tentam garantir que o computador produz uma resposta num intervalo de tempo determinado

Page 29: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Tempo real

• diferentes requisitos por aplicações

• soft real time - sistema robusto a certos atrasos

• hard real time - não cumprimento de um prazo corresponde a uma falha

Page 30: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Evolução dos conceitos (SO)

No

software Compilers

Page 31: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Organização de um SO

• OS divide-se em

• kernel - dividido em módulos

• biblioteca de system calls

• processos do sistema

Page 32: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Arquitectura de SO

• sistemas monolíticos

• modelo cliente-servidor

• microkernel

• máquinas virtuais

• exokernel

Page 33: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Monolítico

• um único sistema

• internamente organizado em módulos

• estrutura de dados globais

• e.g., DOS, Windows, Linux

Page 34: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Microkernel• um núcleo de reduzidas dimensões e que

só continha o essencial do SO

• gestão de threads, endereçamento

• servidores de sistema que executam em processos independentes a restante funcionalidade

• device drives, memória virtual, ...

• e.g., Minix, Symbian

Page 35: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Modelo cliente-servidor

• variação da ideia de micro-kernel

• distingue cliente e servidor

• comunicação feita à base de mensagens

• cliente e servidor podem estar em computadores distintos

Page 36: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Máquinas Virtuais

• desenvolvido pela IBM devido ao interesse dos seus trabalhadores de usarem os computadores de forma interactiva

• cria um colone da máquina na qual esta a ser executado

• ex., Java Virtual Machine

• independente da plataforma, sandbox

Page 37: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Exokernel

• em vez de colonar a máquina actual, dá ao utilizador um subconjunto de recursos

• exokernel e um programa que faz a alocação dos recursos

• utilizadores pedem recursos ao exokernel

• mais simples de manter do que virtual machines. Porquê?

Page 38: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Processo de booting

• executa instrução FFFFFFFF0h do BIOS

• contém um jump para o programa inicial

• executa auto-test (POST) de hardware

• se encontra dispositivo executa o master boot register (MBR)

• MBR carrega e executa o sector de iniciação da partição (e.g., executar o kernel)

Page 39: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Modo kernel vs. Modo utilizador

Page 40: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Modo kernel vs. utilizador

• processos dos utilizadores não podem interferir com dados/execução do SO

• devem tb estar vedadas as aplicações dos utilizadores

• Ajuda o processador: espaços de endereçamento diferentes

• Barreira de protecção: interrupção de SW

Page 41: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sistemas operativos- exemplos -

• MS-DOS

• Mac OS (primeiro com GUI)

• Windows (3.11, NT, Me, XP, Vista)

• Unix-based: FreeBSD, X11, Gnome, KDE

Page 42: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

MS-DOS

Page 43: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

UNIX

Page 44: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

OS/2

Page 45: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Windows NT

Page 46: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Symbian OS

Page 47: Sistemas Operativos - web.fe.up.ptweb.fe.up.pt/~rma/SOPE/at/T02_03.pdf · Agenda • objectivos de um computador • objectivos de um sistema operativo • evolução dos sistemas

Sumário

• objectivos de um sistema operativo

• conveniência e eficiência

• evolução de sistemas operativos

• porque são necessários?

• tipos de sistemas operativos