Suporte ao Sistema Operacional

26
GRECO DI UFPE Suporte ao Sistema Operacional

description

Suporte ao Sistema Operacional. Sistema Operacional. Funções: Auxilia na criação e execução de programas Acesso a arquivos Atua como interface software hardware Objetivos Conveniência Eficiência. Usuário. Programador. Aplicativos. Projetista de S.O. Utilitários. - PowerPoint PPT Presentation

Transcript of Suporte ao Sistema Operacional

Page 1: Suporte ao Sistema Operacional

GRECO

DIUFPE

Suporte ao Sistema Operacional

Page 2: Suporte ao Sistema Operacional

GRECO

DIUFPE

Sistema Operacional Funções:• Auxilia na criação e execução de programas• Acesso a arquivos• Atua como interface software hardware

Objetivos• Conveniência• Eficiência

Page 3: Suporte ao Sistema Operacional

GRECO

DIUFPE

Níveis do S.O.

Usuário

Aplicativos

Utilitários

Sistema Operacional

Computador (Hardware)

Programador

Projetista de S.O.

Page 4: Suporte ao Sistema Operacional

GRECO

DIUFPE

Serviços Oferecidos Nível de Usuário• Controle de

programas• Operações de E/S• Sistema de arquivos

Nível de Sistema• Gerenciamento de

memória• Proteção• Alocação de recursos

e escalonamento (gerenciamento de processos)

• Accounting

Page 5: Suporte ao Sistema Operacional

GRECO

DIUFPE

Tipos de sistemas operacionais Serial batch• superposição: spooling

Multiprogramação• superposição: E/S e processamento

Time sharing• paralelismo virtual

Alocação

Escalonamento

Proteção

Aumento da Funcionalidade

Page 6: Suporte ao Sistema Operacional

GRECO

DIUFPE

Tipos de S.O.

Batch Interação c/ Usuário

Unitarefa

Multi-tarefa

Batch simples

Batch avançado

Dedicado

Time-sharing

Page 7: Suporte ao Sistema Operacional

GRECO

DIUFPE

Batch Simples

- Job termina

- Controle volta ao monitor

- Monitor passa controle p/ job

- Monitor põe job na mem. de programas

- CPU executa monitor

- Lê Job

- Jump para job

- CPU executa Job

- Se houver erro ou job acabar -> jump para monitor

Ponto de vista da CPUPonto de vista da CPUPonto de vista do MonitorPonto de vista do Monitor

Page 8: Suporte ao Sistema Operacional

GRECO

DIUFPE

Batch simples

Processamentointerrupções

Device Drivers

Sequenciamentode jobs

Interpretador daling. de controle

Área de programade usuário

Monitor

Leitura 1 record: .0015 sec.Execução 100 instr.: .0001 secEscrita 1 record: .0015 secTOTAL: .0031 sec

Leitura 1 record: .0015 sec.Execução 100 instr.: .0001 secEscrita 1 record: .0015 secTOTAL: .0031 sec

Utilização CPU: 3.2%

Page 9: Suporte ao Sistema Operacional

GRECO

DIUFPE

Batch Avançado:Multiprogramação

runrun wait wait

time

runrun wait wait

runrun wait wait

runrun wait waitrunrun

time

wait

runrun wait wait

runrun wait wait

runrun wait waitrunruntime

runrun wait wait

run run

Uniprogramação

Multiprogramaçãocom 2 programas

Multiprogramaçãocom 3 programas

Prog.A

Prog.B

A e B

Prog.A

Prog.B

A, B e C

Prog.C

Page 10: Suporte ao Sistema Operacional

GRECO

DIUFPE

ExemploJob2Job1 Job3

TipoDuraçãoMemória req.DiscoTerminalImpressora?

computação E/S E/S5 min. 15 min 10min50K 100K 80K

XX

X

Utilização proc.Utilização mem.

Utilização impres.

Utilização disco.

Taxa de trabalho

Tempo resp. médio

17%30%

33%

33%

67%

67%67%33%

6 jobs/hora 12 jobs/hora

18 min. 10 min.

Uniprogramação Multiprogramação

Tempo total 30 min. 15 min.

Page 11: Suporte ao Sistema Operacional

GRECO

DIUFPE

Time sharingBatch Multiprogramação Time Sharing

ObjetivoFonte instr. Do S.O.

Max. utilização proc. Min. tempo resp.Inst. de controle

com o jobComandos no terminal

Mainframes1950 1960 Multics 1970 1980

Nenhum Compiladores Time Multi-user Distributed software shared systems Resident Batch Monitors

Minicomputers1960 1970 Unix 1980

Nenhum Compiladores Time Multi-user Distributed software shared systems Resident monitors

Microcomputers1970 1980 Unix

Nenhum Compiladores Distributed software Interactive systems Resident monitors

Page 12: Suporte ao Sistema Operacional

GRECO

DIUFPE

Gerenciamento de Processos

Page 13: Suporte ao Sistema Operacional

GRECO

DIUFPE

Processo Programa que foi ativado Estados de um processo:

Ready Running

Waiting

New Halted

CriaçãoEscalonador

Término

Esperandoevento

Eventoocorreu

ID do Processo

Estado

Program Counter

Memory PointersContexto (regs.)

I/O Status

Prioridade

Accounting Info• tempo CPU• limites, etc.

Bloco de Controle

Page 14: Suporte ao Sistema Operacional

GRECO

DIUFPE

Gerenciamento de Processos Criação / Término Escalonamento / Chaveamento Proteção de Recursos Sincronização / Comunicação

Page 15: Suporte ao Sistema Operacional

GRECO

DIUFPE

Níveis de processos usuário supervisor• funções não críticas

tratamento de E/S• funções críticas

tratamento de excessões• integridade

usuário

ger. mem.booting

usuário usuário

disco

ger. arq.

clockterminal

manipulação de excessões

Page 16: Suporte ao Sistema Operacional

GRECO

DIUFPE

Scheduling High-level

• Decide quantos programas são admitidos no sistema.• Aloca memória e cria um processo.• Controla a long-term queue

Short-term• Decide qual processo deve ser executado• Controla a short-term queue

I/O• Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo

de I/O• Controla a I/O queue

Page 17: Suporte ao Sistema Operacional

GRECO

DIUFPE

Estruturação das filas

Long-term

queue

Short-term

queueCPU

I/Oqueue

I/Oqueue

I/Oqueue

I/O

I/O

I/O

Processrequest FIM

High-levelscheduling

Short-termscheduling

I/O scheduling

InterruptHandler

Interruptof process

Interrupt from I/O

Page 18: Suporte ao Sistema Operacional

GRECO

DIUFPE

Exemplo de Escalonamento

Contr. Serviços

Scheduler

contr. interrupção

Sist. Operacional

ARun

B“Ready”

Outros processos

Execu-tando

Sist. Operacional

A“Waiting

B“Ready

Execu-tando

Contr. Serviços

Scheduler

contr. interrupção

Outros processos

A“Waiting

BRun Execu-

tando

Contr. Serviços

Scheduler

contr. interrupção

Outros processos

Sist. OperacionalProcesso A parou:• Req. serviço ao S.O.• Interrupção de A

Ex. erro• Interrupção de outra

fonteEx. I/O

Processo A parou:• Req. serviço ao S.O.• Interrupção de A

Ex. erro• Interrupção de outra

fonteEx. I/O

Page 19: Suporte ao Sistema Operacional

GRECO

DIUFPE

Proteção de Recursos

Proteção de recursos (dados, etc.) Segurança e privacidade Necessidade de comunicação Métodos• Prevenção (Ling. alto-nível)• Detecção e Resolução (Hardware: exceções)

Page 20: Suporte ao Sistema Operacional

GRECO

DIUFPE

Proteção de Recursos via Hardware Análise de operações ilegais Proteção via opcode

• Instruções privilegiadas (E/S ...)• Detecção do nível de operação

– supervisor– usuário

Proteção via operando• Privilégios de acesso• Análise de domínio

– área de memória– objeto definido pelo usuário

Page 21: Suporte ao Sistema Operacional

GRECO

DIUFPE

Proteção de Área de Memória Domínio único• Cada processo possui espaço de memória definido

Domínio duplo• Parte pública: bibliotecas (compartilhamento total)• Parte privada: programa de usuário

Múltiplos domínios• Conjunto compartilhado

–Ex: Sa = {a1,a2,a3}, Sb = {a3,b4,b5}–Como implementar ?

Page 22: Suporte ao Sistema Operacional

GRECO

DIUFPE

Sincronização de Processos Execução paralela de processos• Real (multiprocessador) ou virtual (time sharing)• Problemas de sincronização

Process observer repeat observe um evento cont = cont + 1 until false

Process reporter repeat if (cont mod 10) = 0 print (cont) until false

Situação: reporter testou cont = 10 observer cont = 11 reporter imprimiu cont = 11

• velocidade imprevisível dos processos• compartilhamento de dados

condição de corrida

controle no acesso às variáveis compartilhadas

Page 23: Suporte ao Sistema Operacional

GRECO

DIUFPE

Problema da Exclusão Mútua Garantir que apenas um processo acesse

um dado compartilhado por vez: • definição de seções críticas

Problemas:• deadlock• starvation (oposto de fairness)

Page 24: Suporte ao Sistema Operacional

GRECO

DIUFPE

Resolvendo a exclusão mútua

Busy-waiting• Controle de acesso a região– variável Lock

Lock = 0 pode entrarlock = 1 bloqueado

loop: test lock bne loop add #1, loop

e se houver Interrupção?

Desabilitar interrupçõesSimplicidadeSimplicidade

Regiões devem ser pequenasRegiões devem ser pequenas

Inviável em multiprocessadoresInviável em multiprocessadores

Page 25: Suporte ao Sistema Operacional

GRECO

DIUFPE

Suporte da arquitetura

Operações atômicas: Ex. Test-and-set (tas) • tas <dst>

if dst = 0

then dst = 1

SemáforosP e V

MonitoresPrograma que engloba controla o recurso

compartilhado e que tem acesso restrito

wait: tas lock bmi wait critical section clr.b lock

Indivisível

Page 26: Suporte ao Sistema Operacional

GRECO

DIUFPE

Aumento de Eficiência: Memória Virtual

Disco

MemóriaOperating System

Long-TermQueue Jobs completos

e User Sessions

Disco

Memória

Operating System

Jobs completose User Sessions

Intermediate Queue

Long-Term Queue

Job Sheduling

Swapping