Suporte ao Sistema Operacional DI UFPE GRECO Sistema

  • Slides: 26
Download presentation
Suporte ao Sistema Operacional DI UFPE GRECO

Suporte ao Sistema Operacional DI UFPE GRECO

Sistema Operacional n Funções: • Auxilia na criação e execução de programas • Acesso

Sistema Operacional n Funções: • Auxilia na criação e execução de programas • Acesso a arquivos • Atua como interface software hardware n Objetivos • Conveniência • Eficiência DI UFPE GRECO

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

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

Serviços Oferecidos n Nível de Usuário • Controle de programas • Operações de E/S

Serviços Oferecidos n Nível de Usuário • Controle de programas • Operações de E/S • Sistema de arquivos DI UFPE GRECO n Nível de Sistema • Gerenciamento de memória • Proteção • Alocação de recursos e escalonamento (gerenciamento de processos) • Accounting

Tipos de sistemas operacionais n Serial batch Alocação • superposição: spooling n Multiprogramação Escalonamento

Tipos de sistemas operacionais n Serial batch Alocação • superposição: spooling n Multiprogramação Escalonamento • superposição: E/S e processamento n Time sharing • paralelismo virtual DI UFPE GRECO Proteção Aumento da Funcionalidade

Tipos de S. O. Unitarefa Multi-tarefa DI UFPE GRECO Batch Interação c/ Usuário Batch

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

Batch Simples Ponto de vista do Monitor Ponto de vista da CPU - Monitor

Batch Simples Ponto de vista do Monitor Ponto de vista da CPU - Monitor põe job na mem. de programas - CPU executa monitor - Lê Job - Jump para job - Monitor passa controle p/ job - Job termina - Controle volta ao monitor DI UFPE GRECO - CPU executa Job - Se houver erro ou job acabar -> jump para monitor

Batch simples Processamento interrupções Device Drivers Sequenciamento de jobs Interpretador da ling. de controle

Batch simples Processamento interrupções Device Drivers Sequenciamento de jobs Interpretador da ling. de controle Monitor Leitura 1 record: Execução 100 instr. : Escrita 1 record: TOTAL: . 0015 sec. . 0001 sec. 0015 sec. 0031 sec Área de programa de usuário Utilização CPU: 3. 2% DI UFPE GRECO

Batch Avançado: Multiprogramação run wait run Uniprogramação time wait run run wait Prog. B

Batch Avançado: Multiprogramação run wait run Uniprogramação time wait run run wait Prog. B run wait Ae. B wait run wait Prog. A wait Multiprogramação com 2 programas time Multiprogramação com 3 programas run run run wait run run time DI UFPE GRECO Prog. B wait run run wait Prog. A wait Prog. C A, B e C

Exemplo Tipo Duração Memória req. Disco Terminal Impressora? Job 1 Job 2 Job 3

Exemplo Tipo Duração Memória req. Disco Terminal Impressora? Job 1 Job 2 Job 3 computação 5 min. 50 K E/S 15 min 100 K E/S 10 min 80 K X X X Uniprogramação Utilização proc. Utilização mem. Utilização disco. Utilização impres. Taxa de trabalho Tempo resp. médio Tempo total DI UFPE GRECO Multiprogramação 17% 30% 33% 6 jobs/hora 33% 67% 67% 12 jobs/hora 18 min. 30 min. 10 min. 15 min.

Time sharing Objetivo Fonte instr. Do S. O. Mainframes 1950 Batch Multiprogramação Time Sharing

Time sharing Objetivo Fonte instr. Do S. O. Mainframes 1950 Batch Multiprogramação Time Sharing Max. utilização proc. Inst. de controle com o job Min. tempo resp. Comandos no terminal 1960 Multics 1970 1980 Nenhum Compiladores Time Multi-user Distributed software shared systems Resident Batch Monitors 1960 1970 Unix 1980 Minicomputers Nenhum Compiladores Time Multi-user software shared Resident monitors 1970 Microcomputers DI UFPE GRECO Nenhum Compiladores software Interactive Resident monitors Distributed systems 1980 Unix Distributed systems

Gerenciamento de Processos DI UFPE GRECO

Gerenciamento de Processos DI UFPE GRECO

Processo n n Programa que foi ativado Estados de um processo: Criação New Escalonador

Processo n n Programa que foi ativado Estados de um processo: Criação New Escalonador Ready Evento ocorreu DI UFPE GRECO Running Término Halted Esperando Waiting evento Bloco de Controle ID do Processo Estado Prioridade Program Counter Memory Pointers Contexto (regs. ) I/O Status Accounting Info • tempo CPU • limites, etc.

Gerenciamento de Processos n n DI UFPE GRECO Criação / Término Escalonamento / Chaveamento

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

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

Níveis de processos n usuário n usuário supervisor • funções não críticas booting ger. mem. disco terminal ger. arq. n • funções críticas clock n manipulação de excessões tratamento de E/S tratamento de excessões • integridade DI UFPE GRECO

Scheduling n High-level • Decide quantos programas são admitidos no sistema. • Aloca memória

Scheduling n High-level • Decide quantos programas são admitidos no sistema. • Aloca memória e cria um processo. • Controla a long-term queue n Short-term • Decide qual processo deve ser executado • Controla a short-term queue n I/O • Decide qual processo (com I/O) pendente deve ser tratado pelo dispositivo de I/O • Controla a I/O queue DI UFPE GRECO

Estruturação das filas Short-term scheduling Process request Longterm queue High-level scheduling Interrupt of process

Estruturação das filas Short-term scheduling Process request Longterm queue High-level scheduling Interrupt of process Interrupt from I/O DI UFPE GRECO Interrupt Handler Shortterm queue CPU I/O I/O queue FIM I/O scheduling

Exemplo de Escalonamento Sist. Operacional Contr. Serviços Scheduler contr. interrupção A Run Executando B

Exemplo de Escalonamento Sist. Operacional Contr. Serviços Scheduler contr. interrupção A Run Executando B “Ready” Outros processos DI UFPE GRECO Execu. Sist. Operacional tando Contr. Serviços Scheduler contr. interrupção A “Waiting B “Ready Outros processos Sist. Operacional Contr. Serviços Scheduler contr. interrupção A “Waiting B Run Executando Outros processos Processo A parou: • Req. serviço ao S. O. • Interrupção de A Ex. erro • Interrupção de outra fonte Ex. I/O

Proteção de Recursos Proteção de recursos (dados, etc. ) è Segurança e privacidade è

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) DI UFPE GRECO

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

Proteção de Recursos via Hardware n Análise de operações ilegais n Proteção via opcode • Instruções privilegiadas (E/S. . . ) • Detecção do nível de operação – supervisor – usuário n Proteção via operando • Privilégios de acesso • Análise de domínio – área de memória – objeto definido pelo usuário DI UFPE GRECO

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

Proteção de Área de Memória n Domínio único • Cada processo possui espaço de memória definido n Domínio duplo • Parte pública: bibliotecas (compartilhamento total) • Parte privada: programa de usuário n Múltiplos domínios • Conjunto compartilhado – Ex: Sa = {a 1, a 2, a 3}, Sb = {a 3, b 4, b 5} – Como implementar ? DI UFPE GRECO

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

Sincronização de Processos n 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 DI UFPE GRECO 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

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

Problema da Exclusão Mútua n Garantir que apenas um processo acesse um dado compartilhado por vez: • definição de seções críticas n Problemas: • deadlock • starvation (oposto de fairness) DI UFPE GRECO

Resolvendo a exclusão mútua n Busy-waiting • Controle de acesso a região – variável

Resolvendo a exclusão mútua n Busy-waiting • Controle de acesso a região – variável Lock = 0 pode entrar lock = 1 bloqueado n DI UFPE GRECO loop: test lock bne loop add #1, loop Desabilitar interrupções Simplicidade Regiões devem ser pequenas Inviável em multiprocessadores e se houver Interrupção?

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

Suporte da arquitetura n Operações atômicas: Ex. Test-and-set (tas) • tas <dst> if dst = 0 then dst = 1 Indivisível wait: tas lock bmi wait critical section clr. b lock Semáforos Pe. V n Monitores n Programa que engloba controla o recurso compartilhado e que tem acesso restrito DI UFPE GRECO

Aumento de Eficiência: Memória Virtual Operating System Long-Term Queue Memória Job Sheduling Jobs completos

Aumento de Eficiência: Memória Virtual Operating System Long-Term Queue Memória Job Sheduling Jobs completos e User Sessions Disco Intermediate Queue Operating System Jobs completos e User Sessions Long-Term Queue DI UFPE GRECO Swapping Memória