260 likes | 410 Views
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.
E N D
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 Sistema Operacional Computador (Hardware) Níveis do S.O.
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 Serviços Oferecidos
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
Tipos de S.O. Batch Interação c/ Usuário Dedicado Unitarefa Batch simples Multi-tarefa Batch avançado Time-sharing
Batch Simples Ponto de vista da CPU - Job termina - Controle volta ao monitor Ponto de vista do Monitor - Monitor põe job na mem. de programas - CPU executa monitor - Lê Job - Jump para job - Monitor passa controle p/ job - CPU executa Job - Se houver erro ou job acabar -> jump para monitor
Batch simples Processamento interrupções Device Drivers Monitor Sequenciamento de jobs Leitura 1 record: .0015 sec. Execução 100 instr.: .0001 sec Escrita 1 record: .0015 sec TOTAL: .0031 sec Interpretador da ling. de controle Área de programa de usuário Utilização CPU: 3.2%
Batch Avançado:Multiprogramação Uniprogramação run run wait wait time Prog.A run run wait wait Multiprogramação com 2 programas Prog.B run wait run wait wait A e B run run run run wait wait time Prog.A run run wait wait Multiprogramação com 3 programas Prog.B run run wait wait Prog.C run run wait wait A, B e C run run run wait wait run run run time
Exemplo Job1 Job2 Job3 Tipo computação E/S E/S Duração 5 min. 15 min 10min Memória req. 50K 100K 80K Disco X Terminal X Impressora? X Uniprogramação Multiprogramação Utilização proc. 17% 33% Utilização mem. 30% 67% Utilização disco. 33% 67% Utilização impres. 33% 67% Taxa de trabalho 6 jobs/hora 12 jobs/hora Tempo resp. médio 18 min. 10 min. Tempo total 30 min. 15 min.
Time sharing Batch Multiprogramação Time Sharing Objetivo Max. utilização proc. Min. tempo resp. Fonte instr. Do S.O. Inst. de controle com o job Comandos no terminal 1950 1960 Multics 1970 1980 Mainframes Nenhum Compiladores Time Multi-user Distributed software shared systems Resident Batch Monitors 1960 1970 Unix 1980 Minicomputers Nenhum Compiladores Time Multi-user Distributed software shared systems Resident monitors 1970 1980 Unix Microcomputers Nenhum Compiladores Distributed software Interactive systems Resident monitors
Processo • Programa que foi ativado • Estados de um processo: Bloco de Controle ID do Processo Estado Prioridade Escalonador Program Counter Criação Término Memory Pointers Running New Ready Halted Contexto (regs.) I/O Status Evento ocorreu Esperando evento Waiting • Accounting Info • tempo CPU • limites, etc.
Criação / Término Escalonamento / Chaveamento Proteção de Recursos Sincronização / Comunicação Gerenciamento de Processos
usuário supervisor funções não críticas tratamento de E/S funções críticas tratamento de excessões integridade Níveis de processos usuário usuário usuário booting ger. arq. ger. mem. disco terminal clock manipulação de excessões
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
I/O I/O Interrupt of process I/O Interrupt from I/O Estruturação das filas Short-term scheduling Long- term queue Short- term queue Process request FIM CPU High-level scheduling I/O queue I/O scheduling I/O queue Interrupt Handler I/O queue
Execu-tando Sist. Operacional Sist. Operacional Contr. Serviços Contr. Serviços Contr. Serviços Scheduler Scheduler Scheduler contr. interrupção contr. interrupção contr. interrupção A “Waiting A “Waiting B Run B “Ready Execu- tando Outros processos Outros processos Exemplo de Escalonamento • Processo A parou: • Req. serviço ao S.O. • Interrupção de AEx. erro • Interrupção de outra fonteEx. I/O Sist. Operacional A Run Execu- tando B “Ready” Outros processos
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)
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
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 ?
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 Situação: reporter testou cont = 10 observer cont = 11 reporter imprimiu cont = 11 • velocidade imprevisível dos processos • compartilhamento de dados Process reporter repeat if (cont mod 10) = 0 print (cont) until false condição de corrida controle no acesso às variáveis compartilhadas
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)
Resolvendo a exclusão mútua • Busy-waiting • Controle de acesso a região • variável Lock loop: test lock bne loop add #1, loop Lock = 0 pode entrar lock = 1 bloqueado e se houver Interrupção? • Desabilitar interrupções • Simplicidade • Regiões devem ser pequenas • Inviável em multiprocessadores
wait: tas lock bmi wait critical section clr.b lock Suporte da arquitetura • Operações atômicas: Ex. Test-and-set (tas) • tas <dst> • if dst = 0 • then dst = 1 • SemáforosP e V • Monitores Programa que engloba controla o recurso compartilhado e que tem acesso restrito Indivisível
Operating System Intermediate Queue Jobs completos e User Sessions Long-Term Queue Memória Aumento de Eficiência: Memória Virtual Memória Operating System Job Sheduling Long-Term Queue Jobs completos e User Sessions Disco Swapping Disco