Upload
vonga
View
214
Download
0
Embed Size (px)
Citation preview
Sistemas OperativosPrincípios de sistemas operativos
Rui Maranhão ([email protected])
Agenda
• objectivos de um computador
• objectivos de um sistema operativo
• evolução dos sistemas operativos
• tipos de sistemas operativos
Computador
• é formado por hardware, ...
• e também programas, aplicações
•
Objectivos de um computador
• manipular dados (semi-) automaticamente
• facilitar a vida aos utilizadores
• prático, simples de usar
• executar programas (i.e., aplicações)
Sistema Operativo
• programa que actua como intermediário entre os utilizadores e o hardware
• gestor de recursos
• tempo, espaço
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
Objectivos - Eficiência -
• SO controla a alocação dos recursos
• multiplexação
• tempo: cada processo usa o recurso à vez
• espaço: recurso é partilhado
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, ...
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
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
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
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
Sistemas batch
Sistemas batch
Como melhorar?
• programa (resident monitor) que
• controla a operação de um computador
• encadeia ‘jobs’
• embrião de um sistema operativo?!
3a geração
• multi-programação
• executar programas ao mesmo tempo
• e.g., enquanto um programa espera por IO, outro pode usar o CPU
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
Multiprogramação
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!
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
•
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
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)
Multiprocessamento
• vantagens
• throughput
• economia
• graceful degradation
• ideia: aumentar throughput, e não executar o programa mais depressa
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
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, ...
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
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
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
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
Evolução dos conceitos (SO)
No
software Compilers
Organização de um SO
• OS divide-se em
• kernel - dividido em módulos
• biblioteca de system calls
• processos do sistema
Arquitectura de SO
• sistemas monolíticos
• modelo cliente-servidor
• microkernel
• máquinas virtuais
• exokernel
Monolítico
• um único sistema
• internamente organizado em módulos
• estrutura de dados globais
• e.g., DOS, Windows, Linux
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
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
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
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ê?
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)
Modo kernel vs. Modo utilizador
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
Sistemas operativos- exemplos -
• MS-DOS
• Mac OS (primeiro com GUI)
• Windows (3.11, NT, Me, XP, Vista)
• Unix-based: FreeBSD, X11, Gnome, KDE
MS-DOS
UNIX
OS/2
Windows NT
Symbian OS
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