1 / 26

Suporte ao Sistema Operacional

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.

ciaran-guy
Download Presentation

Suporte ao Sistema Operacional

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Suporte ao Sistema Operacional

  2. 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

  3. Usuário Programador Aplicativos Projetista de S.O. Utilitários Sistema Operacional Computador (Hardware) Níveis do S.O.

  4. 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

  5. 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

  6. Tipos de S.O. Batch Interação c/ Usuário Dedicado Unitarefa Batch simples Multi-tarefa Batch avançado Time-sharing

  7. 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

  8. 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%

  9. 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

  10. 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.

  11. 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

  12. Gerenciamento de Processos

  13. 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.

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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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)

  20. 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

  21. 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 ?

  22. 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

  23. 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)

  24. 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

  25. 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

  26. 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

More Related