1.1 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Estrutura de Sistemas
Operacionais
Capítulo 1: Introdução
? O que faz um sistema operacional ?? Revisão da organização de um computador
? Revisão de alguns conceitos de Arquitetura de Computadores
? Sistemas operacionais:
? Estrutura
? Operações (funções)
? Gerência
1.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Objetivos do Capítulo
? Ter uma idéia geral sobre os componentes de um S.O.
? Rever alguns conceitos básicos de Organização e Arquitetura de Computadores
O que é um Sistema Operacional ?
? Um programa que age como um intermediário entre o usuáriode um computador e o hardware do computador
? Metas de um Sistema Opercional:
? Executar programas de usuários e facilitar a solução de seus problemas
? Tornar o sistema computacional apropriado para uso
? Usar o sistema computacional de maneira eficiente
1.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Estrutura de Sistemas
Computacionais
? Um sistema computacional pode ser dividido em quatro componentes (figura na página seguinte)
? Hardware – são os recursos físicos do computador
?CPU, memória, dispositivos de I/O
? Sistema Operacional
?Controla e coordena o uso do hardware entre os diversos usuários e programas aplicativos
? Programs de Aplicação – define de que maneiras os recursos do sistema são usados para solucionar os problemas computacionais de usuários
?Processadores de texto, compiladores, web browsers, sistemas de banco de dados, jogos etc.
? Usuários
?Pessoas, máquinas, outros computadores
Quatro Componentes de um Sistema
Computacional
1.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Definição de Sistema Operacional
? S.O. é um allocador de recursos? Gerencia todos os recursos
? Decide entre requisições conflitantes para que o uso dos recursos seja eficiente e justo
? S.O. é um programa de controle
? Controla a execução de programas para prevenir erros e uso impróprio do computador
Definição de Sistema Operacional
(Cont.)
? Nenhuma definição de aceitação universal
? “O programa que roda o tempo todo no computador” é o núcleo (kernel) do S.O.
?Qualquer outro programa é um programa de sistema (vem com o S.O.) ou um programa de aplicação
1.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Inicialização do Computador
? o Programa Carregador (bootstrap loader ou abreviadamente boot loader) é carregado na memória quando se liga a máquina (ou em
re-inicialização)
? Tipicamente armazenado em ROM ou EEPROM (firmware, BIOS)
? Também inicializa alguns dispositivos do sistema e testa configuração
? Carrega o kernel do sistema operacional e inicia sua execução
? Boot loader pode se apresentar em dois ou três níveis
? firmware --> boot loader genérico --> boot loader para S.O. específico
? ex1: firmware --> GNU Grub (genérico) -->
? --> boot loader WinXP (específico) -->
? --> kernel WinXP
? ex2: firmware --> GNU Grub (genérico) --> kernel linux
Computador
? operação do sistema de computador
? Um ou mais CPUs, internonexão à memoria via barramento dedicado (barramento de memória)
? controladores de dispositivos são conectados via barramento comum de I/O
? controladores de I/O podem fazer DMA com memória (dispositivos de alta vazão).
? execução concorrente de CPUs e dispositivos competindo por ciclos de memória
1.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Operação do sistema de
computador
? Dispositivos de I/O e CPU podem trabalhar simultaneamente
? Cada controlador de I/O é encarregado de uma classe de dispositivos
? Cada controlador de dispositivo tem um buffer local e registradores
? CPU move dados:
? de/para memória
? de/para buffers locais (nos controladores), geralmente via DMA
? de/para registradores no controladores de I/O (memory mapped ou via instruções de I/O)
? I/O ocorre, efetivamente, com o buffer local do controlador
? Controlador informa CPU quando uma operação termina causando interrupção (mais comum)
interrupções
? Ao receber sinal de interrupção, CPU transfere controle para ¨rotina de atendimento de interrupção” (ISR=Interrupt Service Routine)
? ISRs fazem parte do SO (parte dos device drivers)
? ligação hardware software:
?endereço de ISRs armazenado em vetor de interrupções
?modernamente: descritores de interrupção
? Arquitetura da interrupção deve salvar endereço da instrução interrompida
? ISR: salva contexto -> executa -> recupera contexto -> retorna a instrução interrompida
? Interrupções podem ser desabilitadas durante ativação de ISR
? problema possível: overun/perda de interrupção
? uma solução: polling de dispositivos ao final da ISR
? Interrupções podem ser geradas por software (Traps)
? adequado para tratamento de erros (também outros propósitos.
1.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Tratamento de Interrupções
Rotina de interrupçãoo deve:? Preservar o estado da CPU armazenando valores de registradoes e PC (program counter)
? Determinar que interrupção ocorreu. Interrupção é determinada por:
? Polling
? Sistema de interrup£P o vetorada Polling: despacho da ISR é por software Vetorada: despacho da ISR é por hardware
Cada ISR tem seu próprio segmento de código (executa ações específicas)
Linha de tempo de interrupções para
um processo fazendo operação de
saida (Output)
1.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Estrutura de funcionamento de
I/O
Síncrono:
? Controle só retorna ao programa quando I/O completa ? Processo espera t?rmino de I/O por:
?Intrução de wait (cpu parada até a próxima interrupção)
?Loop de espera (disputa pelo acesso à memória)
– Com ou sem Polling
? No máximo uma requisição por I/O pendente por vez Assíncrono:
? Controle retorna ao programa sem esperar I/O completar
? Requer nova chamada ao SO para detectar (e até esperar) I/O completar ? Usa ?Device-status table? com uma entrada por dispositivo, indicando
tipo, número de dispositivos e estado do mesmo
? SO usa essa tabela inclusive inserindo operações em fila, por dispositivo
Dois métodos de I/O
Síncrono (ou bloqueante) Assíncrono (ou nP o bloqueante)
OBS: note que SO poderia fazer I/O bloqueante para o processo
mas internamente assíncrono (porque ?)
1.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Device-Status Table
Estrutura de DMA
(Direct Memory Access)
Usado para dispositivos de I/O podem transmitir a velocidades altas (próxima da velocidade de memória)
Controlador de DMA transfere blocos de dados entre buffer (interno ao controlador) e a memória principal, sem intervenção da CPU Apenas uma interrupção é gerada por bloco de bytes transferido
1.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Estruturas de memória
? Memória principal - espaço de memória relativamente grande que pode ser acessado diretamente pela CPU
? Memória secundária - extensão da memória principal; de alta capacidade e não volátil
? Discos magnéticos - pratos de memória cobertos com material magnético para gravação de dados
? Superfície do disco é dividida em trilhas, que são subdivididas em setores
? Controlador de disco determina a interação entre o dispositivo e o computador
1.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts
Hierarquia de memória
Sistemas de armazenamento são organizados em uma hierarquia
? Velocidade
? Custo
? Volatilidade
O ideal seria: Um nível apenas, escrita e leitura na velocidade da CPU, não volatil. Como isso isso não é possível (pelo menos economicamente) usamos o sistema hierárquico.
Caching? manter copias de informações em níveis de armazenamento mais rápidos;
? Pode ser feito por hardware ou por software