Estruturas de Sistemas Operacionais

23
Estruturas de Sistemas Operacionais

description

Informações sobre sistemas operacionais

Transcript of Estruturas de Sistemas Operacionais

Page 1: Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais

Page 2: Estruturas de Sistemas Operacionais

Estruturas de Sistemas OperacionaisComponentes do Sistema

– Gerência de processos– Gerência de memória principal– Gerência de arquivos– Gerência de I/O– Gerência de armazenamento secundário– Sistemas de Proteção– Gerência de Redes/Sistemas distribuídos

Processos/Multiprogramação

Por que executar vários programas simultaneamente?– Permitir que vários usuários usem uma máquina simultaneamente– Melhorar a eficiência do sistema

ProcessoUm programa em execução

Programa - entidade estáticaProcesso - entidade dinâmica

Page 3: Estruturas de Sistemas Operacionais

Estruturas de Sistemas OperacionaisUm processo é composto por:

– Programas– Dados– Contexto(valores)

Características/Propriedades de um processoUm processo é uma abstração que representa um programa em execução– Um processo tem execução sequencial– O resultado da execução de um processo independe da velocidade do processador em que for

executado– O mesmo programa executado por dois usuários gera dois processos– Um programa pode chamar(criar) vários processos– Um processo tem duas partes:

• Ativa - fluxo de controle• Passiva - espaço de endereçamento (memória, registradores, arquivos)

ThreadDenota um fluxo de controle ( Processo leve)– Por questão de eficiência, processos podem ter múltiplas threads que compartilham o espaço de

endereçamento do processo

EscalonadorPrograma que controla/decide que thread deve ser executada a cada instante

Page 4: Estruturas de Sistemas Operacionais

Ciclos de um processo :Processos são:• criados

– Momento da execução– Chamada de Sistema– Normalmente associados a uma sessão de trabalho ( Login name )

• Destruídos– Término da execução– Por outros processos

Processos apresentam dois ciclos básicos de operação:• Ciclo de processador

– Tempo que ocupa a CPU

• Ciclo de Entrada/Saída– Tempo de espera de um evento E/SA troca de ciclos ocorre por:– Chamada de Sistema ( CPUÝE/S)– Interrupção ( E/S ÝCPU )– Ocorrência de Evento ( E/S ÞCPU )

• Processos CPU-boound– Ciclo de processador >> Ciclo de E/S

• Processos I/O bound– Ciclo de E/S>> Ciclo de processador

Page 5: Estruturas de Sistemas Operacionais

Relacionamentos entre Processos/UsuáriosProcessos Independentes– Não apresentam relacionamentos com outros processosGrupo de Processos– Apresentam algum tipo de relacionamento , por exemplo, hierarquia de processos com mesma

filiação• Processo criador é o processo pai• Processo criado é o processo filho• Representação através de uma árvore• Evolução dinâmica

– O que fazer na destruição de um processo?– Toda descendência morre?– A descendência é herdada pelo processo “avô”?– Postergar a destruição efetiva do processo pai até o final de todos os filhos?

Estados de um processo:Após ser criado, um processo precisa entrar num ciclo de processador– Possibilidades:

• Processador não está disponível• Vários processos estão sendo criados

– O que fazer então?• Criar uma fila de processos prontos para executar

Page 6: Estruturas de Sistemas Operacionais

Diagrama de transição de estados de um processo• Um escalonador, através do uso da fila de processos prontos(aptos para a execução)

atribui a cada instante, o processador a um dos processos

Pronto Executando

Bloqueado

CriaçãoTérminoEscalonador

Prazo

E/SEvento

Page 7: Estruturas de Sistemas Operacionais

Término de processos– Final normal da execução– Excesso de tempo– Falta de memória– Violação de limites– Erros de proteção– Erros aritiméticos– Timeout de eventos– Erro em periféricos de E/S– Execução de instruções inválidas– Intervenção do SO – Logoff de usuários

Tipos de Chamadas de Sistemas para Controle de Processos– end, abort– load, execute– create process, terminate process– get process attributes, set process attributes– wait for time– wait event, signal event– allocate, free memory

Page 8: Estruturas de Sistemas Operacionais

EscalonadorCada processo é representado por um PCB ( Process Control Block) que contém– Estado do processo: ( Rodando, Pronto ou bloqueado)– Número do processo– Contador de Programa– Registradores– Localização da pilha de execução– Prioridade de execução, etc

While (true) {

espera_evento( ); // Espera por E/S; Espera por outro processo; pausa, erro

salva_processo_corrente( ); // guarda os dados dos registradores no PCB do processo corrente

escolhe_novo_processo( ); // escolhe um processo da fila de prontos

// FIFO, Round-robin, prioridades, etc

carrega_novo_processo( ) // Carrega os dados do PCB do processo escolhido nos registradores

}

Page 9: Estruturas de Sistemas Operacionais

Estados de Processos UNIX

fork

Preempetd

User

Running

Kernel

Running

Created

Ready to

Run in Memory

Ready to

Run Swapped

Asleep in

MemorySleep,

SwappedZombie

Memória

Suficiente

Não há memória

suficiente

Swap out

Swap in

wakeup

Swap out

wakeup

preempt

Rescheduleprocess

Interrupt,

interrupt returnexit

sleep

returnSystem Call,interrupt

Page 10: Estruturas de Sistemas Operacionais

Transições de Estados UNIX

User Running Executando no Modo UsuárioKernel Running Executando no Modo KernelReady to run, in Memory Pronto para executar, tão logo o Kernel o escaloneAsleep in Memory Desabilitado para Execução até que ocorra um evento; processo

está na memória principal ( estado bloqueado)Ready to Run, swapped O processo está pronto, mas o swapper precisa transferí-lo para a

memória principal, antes do kernel poder escaloná-loSleeping, swapped O processo está aguardando um evento e se encontra em memória

secundária (estado bloqueado)Preempeted O processo está retornando do modo kernel para o modo usuário;

o kernel o retira do estado rodando e escalona outro processoCreated O processo foi recentemente criado e ainda não está prontoZombie Processo não mais existe, mas deixou um registro para o seu

processo pai capturá-lo

fork

Page 11: Estruturas de Sistemas Operacionais

Suporte de Hardware a Multiprogramação• A implementação da multiprogramação explora características de Hardware dos processadores• Mecanismos básicos

– Dois modos de operação• Kernel/Supervisor (privilegiado)• Usuário

• Interrupção• Proteção de periféricos, memória e processador

Mecanismo de Interrupção• Sinaliza a ocorrência de algum evento• Provoca a execução de uma rotina especial

– Tratador de interrupção• Ciclo de Execução de interrupção

– Preparação da transferência do controle para o tratador - salvamento do contexto de execução– Desvio do controle para o tratador– Retorno da execução - Restauração do contexto original

Page 12: Estruturas de Sistemas Operacionais

Mecanismos de Interrupção• Tipos de Interrupção

– Hardware- evento externo– Software - execução de uma instrução específica (trap)– Exceção - Erros de execução( overflow, underflow)– Identificadas por um número - Endereço (Vetor de Interrupção )

• Prioridades• Instruções privilegiadas

Modos de operação do processador• O compartilhamento de recursos deve garantir que a execução incorreta de um programa não interfira

na execução de outro programa• A arquitetura de processadores oferecem mecanismos para diferenciar pelo menos dois tipos

diferentes de operação• Modos de operação do processador

– Modo usuário• Certas instruções não podem ser executadas• Modo de execução dos processos usuários

– Modo Kernel/Supervisor(protegido)• Possibilita a execução de todas as instruções do processador• Modo de execução do sistema operacional

• Chaveamento entre modos– Interrupção - modo usuário Ý modo protegido– Instrução - modo protegido Ý modo usuário

Page 13: Estruturas de Sistemas Operacionais

Proteção de Memória• Necessário para evitar que um usuário não altere a memória pertencente a outros processos• Baseado em facilidades de arquiteturas de processadores

– Registro de base– Registro de limite

• Faixa de memória fora da fronteira delimitada pelos registradores base e limite é protegida• Técnica aplicada para proteger dispositivos de E/S - mapeamento de memória

Proteção de Processador• Para garantir a execução do Sistema Operacional, uma interrupção de tempo deve

ocorrer periodicamente• Interrupção de tempo

– Empregada para implementar multiprogramação– Mantém contabilização do tempo para o Sistema Operacional

Page 14: Estruturas de Sistemas Operacionais

Proteção de Periféricos• Instruções de E/S são privilegiadas• Interrupções de Software (traps) para chamadas de sistema

Sistema Operacional Processo

Usuário

Int ( periférico )

Int ( proteção)

instrução

Interrupção de Software

Processos usuários realizam operações de E/S através de Chamadas de Sistema

•Normalmente baseada em Interrupção de Software

•Acionamento da Rotina de Tratamento de Interrupção

•Identificação do serviço requisitado

•Verificação da Validade dos parâmetros

•Execução do serviço

•Retorno ao processo do usuário

return

call

Processo USR

Biblioteca Serviços

Kernel SOtrap

resultado

Page 15: Estruturas de Sistemas Operacionais

Sistema Operacional com estrutura simples ( Monolítica )

return

Chamada Kernel

Processo USR2

Biblioteca Serviços

Kernel SOtrap

resultado

Processo USR1

•Seleção serviço

•Localização

•Execução

•Retorno

Page 16: Estruturas de Sistemas Operacionais

Estrutura do Sistema Operacional UNIX

Usuários

Shells e comandos Compiladores e Interpretadors

Bibliotecas do sistema

Interface de chamada ao sistema para o kernel

Tratamento de sinal de terminalSistema de I/O de caracteresdrivers de terminal

Sistema de arquivosSwappingDrivers de Disco e fita

Escalonamento

Substituição de páginas

Interface do kernel para o hardware

Controladoras terminTerminais Controladora Disp

Discos e fitas

Controladora MemóriaMemória ísisca

Page 17: Estruturas de Sistemas Operacionais

Sistema Operacional com estrutura em Camadas

Camada M

Camada M-1Operações ocultas

Operações existentes

Novas Operaçòes

Page 18: Estruturas de Sistemas Operacionais

Estrutura em camadas do OS/2

Interface de chamada ao sistema para o kernel

Gerência de MemóriaAlocação de tarefasgerência de dispositivos

Aplicação Aplicação Aplicação

Extensão de API

Subsistema Subsistema Subsistema

Kernel do Sistema

Driver Disp Driver DispDriver Disp Driver Disp

Page 19: Estruturas de Sistemas Operacionais

Estrutura Microkernel

Aplicação Aplicação

Gerência de MemóriaGerência de ProcessosGerência de comunicação

Kernel do Sistema

Servidor

WIN32

Servidor

OS/2

Page 20: Estruturas de Sistemas Operacionais

Estrutura do Sistema Operacional - Máquinas Virtuais

VM!

KernelKernel Kernel

VM2 VM2

Implementação de Máquina Virtual

Hardware

Processos

Processos

Processos

Page 21: Estruturas de Sistemas Operacionais

Estrutura Cliente Servidor em Ambiente Distribuído

Cliente

KernelKernelKernelKernel

ServidorArquivo

Servidor de Processos

Servidor de term

Máquina 1 Máquina 2 Máquina 3 Máquina n

Page 22: Estruturas de Sistemas Operacionais

Máquina Virtual Java

Carregador de ClassesArquivos .classAplicação

Arquivos .classda API java

Interpretador JAVA

bytecodes

Sistema Host

ProgramaJava

ProgramaJava

ProgramaJava

ProgramaJava

Plataforma Java

Plataforma Java

Plataforma Java

Plataforma Java

Unix Windows Navegador Chip java

Page 23: Estruturas de Sistemas Operacionais

Princípios para Projeto e Implementação de Sistemas• Separação entre Políticas e Mecanismos (Flexibilidade)

– Política denota o que fazer (pode mudar frequentemente)– Mecanismo determina como fazer

• Implementação– Linguagens: de baixo nível: assembly– Linguagens de alto nível: C, Java