Sistemas Operacionais Profa. Regina Borges de Araujo Livro Texto Sistemas Operacionais Modernos. Tanenbaum, A., Pearson Prentice Hall, 2003 Outras Referências Operating Systems Deitel, H., Deitel, P. & Choffnes, D., 3rd edition, Pearson, Prentice Hall, 2003 Sistemas Operacionais Conceitos e Aplicações. Silberschatz, Galvin & Gagne,Editora Campus, 2001 Informações sobre o curso http://www.dc.ufscar.br/~regina/apresentaso.html 1
Capítulo 1 Introdução 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Revisão sobre hardware de computadores 1.5 Conceitos sobre sistemas operacionais 1.6 Chamadas ao sistema 1.7 Estrutura de sistemas operacionais 2
Introdução Um sistema computacional consiste em hardware programas do sistema programas de aplicação 3
O que é um Sistema Operacional É uma máquina estendida Oculta os detalhes complicados que têm quer ser executados Apresenta ao usuário uma máquina virtual, mais fácil de usar É um gerenciador de recurso Cada programa tem um tempo com o recurso Cada programa tem um espaço no recurso 4
História dos Sistemas Operacionais (1) Primeira geração 1945-1955 Válvulas, painéis de programação Segunda geração 1955-1965 transistores, sistemas em lote Terceira geração 1965 1980 CIs e multiprogramação Quarta geração 1980 presente Computadores pessoais Quinta geração a partir do ano 2000 Computação ubíqua 5
História dos Sistemas Operacionais (2) Segunda geração 1955-1965 Antigo sistema em lote (a) traz os cartões para o 1401 (b) lê os cartões para a fita (c) e (d) coloca a fita no 7094 que executa o processamento (e) e (f) coloca a fita no 1401 que imprime a saída 6
História dos Sistemas Operacionais (3) Estrutura de um job FMS típico 2a. geração 7
História dos Sistemas Operacionais (4) Terceira geração 1965 1980 Sistema de multiprogramação Três jobs na memória Spooling Compartilhamento de tempo 8
História dos Sistemas Operacionais (5) Quarta geração 1980 presente Intel 8080 - CP/M domínio de 5 anos - popularização dos PCs IBM projeta o IBM/PC, DOS/BASIC, MS-DOS IBM PC/AT/80286 em 1983 (morte do CP/M) Doug Engelbart inventa GUI (adotada pela Xerox e incorporada em suas máquinas) LISA (Apple) incorpora GUI fracasso (alto custo) Apple MacIntosh enorme sucesso MS-GUI: W3.0/3.1/3.11/W95,W98, WMe W/NT UNIXGUI: XWindows (MIT), Motif (roda sobre X) 9
História dos Sistemas Operacionais (6) Sistemas Operacionais de Rede Sistemas Distribuídos Internet/WWW Servidores WWW Linux, FreeBSD Solaris MS/Windows x Linux Internet 2 Quarta geração 1980 presente Novas Aplicações (MM, Realidade Virtual) 10
História dos Sistemas Operacionais (7) Quinta geração a partir de 2000 Computação Ubíqua É a visão de um mundo no qual o custo do poder computacional e das comunicações digitais tornam-se tão baratos a ponto de poderem ser embutidos em todos os objetos que nos cercam no dia-a-dia Frank Stajano, 2003 Cambridge University 11
História dos Sistemas Operacionais (8) Quinta geração Computação Ubíqua 12
O Zoológico de Sistemas Operacionais (1) Sistemas Operacionais de Computadores de Grande Porte Capacidade de E/S, processamento de vários jobs de uma vez Serviços típicos: lote, processamento de transação e tempo compartilhado Sistemas Operacionais de Servidores Servem múltiplos usuários de uma vez (compartilhamento de recursos de software e hardware) via rede. Sistemas Operacionais de Multiprocessadores Múltiplas CPUs num único sistema (computadores paralelos, multicomputadores ou multiprocessadores) Sistemas Operacionais de Computadores Pessoais 13
O Zoológico de Sistemas Operacionais (2) Tempo Real Tempo é o parâmetro chave Tempo real crítico x não crítico Embarcados Pequenos computadores e TVs, celulares, fornos de microondas Restrições de tamanho, memória e potência (PalmOS, W/CE Consumer Electronics) Cartão Inteligente Restrições extremas de tamanho de memória e poder de processamento JVM em ROM S.O. primitivo gerencia desde uma única função até tratamento de múltiplas applets 14
Revisão sobre hardware de computadores (1) Bus Componentes de um computador pessoal simples 15
Revisão sobre hardware de computadores (2) Processadores Busca, decodifica e executa instruções Cada UCP tem um conjunto específico de instruções a executar Tempo de acesso x tempo de execução => leva à necessidade de ter Registradores (PC, ponteiro de pilha, PSW) S.O. sabe sobre todos os registradores (chaveamento de contexto) UCPs mais complexas (pipeline, superescalar) => exigem S.Os e compiladores mais complexos S.O.: modo núcleo (acesso total ao hardware) e modo usuário (subconjunto de chamadas ao sistema para acesso ao hardware) Programa do usuário obtém serviços do S.O. => Chamadas ao Sistema => TRAP (muda de modo usuário para modo núcleo) 16
Revisão sobre hardware de computadores (3) (a) Um pipeline de três estágios (b) Uma CPU superescalar 17
Revisão sobre hardware de computadores (4) Típica hierarquia de memória números mostrados são apenas aproximações 18
Revisão sobre hardware de computadores (5) Memória Ideal: extremamente rápida, grande e barata => nenhuma tecnologia satisfaz => hierarquia de camadas Registradores > cache > Memória principal > discos magnéticos > fitas magnéticas Discos rotação a 5400, 7200, 10800 rpm Trilha (dividida em setores) Setores (512 bytes) Cilindro Tempos de disco de um cilindro ao próximo: 1ms de um cilindro para um cilindro aleatório: 5 a 10 ms espera posicionar setor: 5 a 10 ms R/W: 5 a 160MB/s Fitas baixo custo ROM/EEPROM/FlashRAM (muito mais lento para escrever do que RAM)/CMOS Memória e multiprogramação (MMU e o S.O. problemas de proteção e relocação) 19
Revisão sobre hardware de computadores(6) Estrutura de uma unidade de disco 20
Revisão sobre hardware de computadores (7) (a) um par base-limite (b) dois pares base-limite 21
Revisão sobre hardware de computadores (8) (a) Passos para iniciar um dispositivo de E/S e obter uma interrupção (b) Como a CPU é interrompida 22
Revisão sobre hardware de computadores (9) Dispositivos de Entrada/Saída Alta interação com o S.O. Dispositivo de E/S = dispositivo + Controlador Dispositivos => interface simples/padronizada IDE/SCSI controlador IDE acessa qualquer disco IDE S.O. fala com controlador através dos Drivers de dispositivo Driver => interage diretamente com o controlador Driver tem que ser colocado no S.O. e rodar no modo núcleo (religa o núcleo; cria entrada no S.O. e reboot; driver é adicionado on the fly hot plug in USB) Formas de realizar E/S: Espera Ociosa: Programa do usuário=> Chamada ao sistema => chamada de procedimento para driver => inicia E/S (espera ociosa até completar) => driver coloca dados (se houver) na memória Interrupção: idem acima sem espera controlador gera interrupção DMA: acesso direto à memória sem a intervenção da CPU 23
Revisão sobre hardware de computadores (10) Barramentos Um barramento só é insuficiente para tratar todo o tráfego => adição de barramentos adicionais (para dispositivos de E/S mais rápidos e maior vazão entre UCP-memória) Sistema Pentium tem 8 barramentos (cada um com uma função e taxa de transferência diferentes) S.O. tem que saber sobre todos os barramentos para configuração e gerenciamento => PLUG AND PLAY (MS e Intel) Antes do plug and Play - cada placa de dispositivo de E/S tinha nível de interrupção fixo e endereços fixos para registradores de E/S 24
Revisão sobre hardware de computadores(11) Estrutura de um sistema Pentium 25
Revisão sobre hardware de computadores(12) Barramentos O que fazer quando as interrupções conflitavam? DIP switches ou Jumpers em cada placa de E/S CAOS Plug and Play => mecanismo centralizado sistema coleta automaticamente info sobre todos os dispositivos de E/S Atribui níveis de interrupção e endereços de E/S Divulga para cada placa quais são os seus números 26
Revisão sobre hardware de computadores(13) Barramento ISA (Industry Standard Architecture) PCI (Peripheral Component Interconnect) IDE USB SCSI Ciclo 8.33MHz 66MHz Taxa de Transferência (2 bytes de uma vez) 16.67MB/s (8 bytes de uma vez) 528MB/s 1.5MB/s 160MB/s 27
Revisão sobre hardware de computadores(14) BIOS Localizado em memória Flash na placa mãe Pode ser atualizado pelo S.O. Inicializado no boot Varre os barramentos ISA e PCI (grava dispositivos plug & play e os legados se forem diferentes do último boot, configura os novos) Determina o dispositivo de boot (checa contra lista na CMOS) Lê primeiro setor do dispositivo de boot e executa Determina a partição ativa (através de programa que examina a tabela de partição no final do setor de boot) Um loader secundário de boot é lido da partição ativa Loader secundário lê o Sistema Operacional da partição ativa para a memória e o inicializa 28
Revisão sobre hardware de Atividades Iniciais do Sistema Operacional Extrai informação de configuração da BIOS Checa a presença de driver para cada dispositivo de E/S (se não encontra pede ao usuário para inserir disco ou CD- ROM com o software) Carrega todos os drivers no kernel (núcleo) do S.O. Inicializa suas tabelas computadores(15) Cria processos em background Inicializa programa de login ou uma interface gráfica para cada terminal encontrado 29
Conceitos sobre Sistemas Operacionais (1) Uma árvore de processos A criou dois processos filhos: B e C B criou três processos filhos: D, E, e F 30
Conceitos sobre Sistemas Operacionais (2) (a) Um deadlock potencial. (b) um deadlock real. 31
Deadlocks (Jean Bacon) Dois ou mais processos esperam indefinidamente por algo (um evento?) que pode ser fornecido por apenas um dos processos em espera. Exemplo de deadlock no tráfego Setas = carros Starvation: Um processo pode ser negligenciado repetidamente. Com a inanição existe sempre uma forma de resolver a situação Com o deadlock, uma vez que ele ocorre, não pode ser resolvido A detecção de deadlock pode ser bem complicada! 32
Conceitos sobre Sistemas Operacionais (3) Sistema de arquivos de um departamento universitário 33
Conceitos sobre Sistemas Operacionais (4) Antes da montagem, os arquivos do disco flexível são inacessíveis Depois da montagem do disco flexível em b, os arquivos do disco fazem parte da hierarquia de arquivos 34
Conceitos sobre Sistemas Operacionais (5) Exemplo: host> cat arq1 arq2 arq3 sort > /dev/lp Dois processos conectados por um pipe 35
Conceitos sobre Sistemas Operacionais (6) Chamadas ao Sistema (Interface entre o S.O. e os Programas do Usuário) Programas do usuário Sistema Operacional Chamadas ao Sistema 36
Os Passos de uma Chamada ao Sistema Os 11 passos para fazer uma chamada ao sistema read (fd, buffer, nbytes) 37
Algumas Chamadas ao Sistema para Gerenciamento de Processos 38
Algumas Chamadas ao Sistema para Gerenciamento de Arquivos 39
Algumas Chamadas ao Sistema para Gerenciamento de Diretório 40
Algumas Chamadas ao Sistema para Tarefas Diversas 41
Chamadas ao Sistema (1) O interior de um shell: 42
Chamadas ao Sistema (2) Os processos têm três segmentos: texto, dados e pilha 43
Chamadas ao Sistema (3) (a) Dois diretórios antes da ligação de /usr/jim/memo ao diretório ast (b) Os mesmos diretórios depois dessa ligação 44
Chamadas ao Sistema (4) (a) Sistema de arquivos antes da montagem (b) Sistema de arquivos depois da montagem 45
Chamadas ao Sistema (5) Algumas chamadas da interface API Win32 46
Estrutura de Sistemas Operacionais (1) Sistemas Monolíticos Chamada para kernel 1 2 Programa do Usuário 2 Programa do Usuário 1 4 3 Tabela de Despacho Programas do usuário rodam em modo usuário SO roda em modo núcleo 1 Programa do usuário emite chamada do sistema 2 S.O. determina número de serviço solicitado 3 S.O. localiza e chama procedimento de serviço 4 Controle é retornado ao programa do usuário 47
Estrutura de Sistemas Operacionais (1) Modelo simples de estruturação de um sistema monolítico 48
Estrutura de Sistemas Operacionais (2) Estrutura do sistema operacional THE 49
Estrutura de Sistemas Operacionais (3) Estrutura do VM/370 com o CMS 50
Estrutura de Sistemas Operacionais (4) O modelo cliente-servidor 51
Estrutura de Sistemas Operacionais (5) O modelo cliente-servidor em um sistema distribuído 52
Unidades Métricas Os prefixos métricos 53