Baixe o app para aproveitar ainda mais
Prévia do material em texto
Adaptado de: FSO1ed : Fundamentos de Sistemas Operacionais, 1ª. ed. , Silberschatz, Galvin, Gagne, LTC, 2013. ASOM5ed: Arquitetura de Sistemas Operacionais, 5ª. ed, Francis Berenger; Machado, Maia, Luiz Paulo, LTC. 2013. SOMTB3ed: Sistemas Operacionais Modernos, TANENBAUM, A. S., 3a. ed. Pearson, 2010. SOD3ed: Sistemas operacionais, DEITEL, Harvey M.; DEITEL, Paul J.; CHOFFNES, David R, Pearson, 3 ed, 2005. SOJ7ed: Sistemas Operacionais com Java, SILBERSCHATZ, Abraham; GALVIN, Peter B.; GAGNE., 7a. ed., Campus. 2008. OECTB5ed: Organização Estruturada de Computadores, 5ª. ed., A. S. Tanenbaum AOCS8ed: Arquitetura e Organização de Computadores, 8ª. ed., W. Stallings. Sistemas Operacionais (SO) UD I: Fundamentos Básicos 2 SISTEMA COMPUTACIONAL (Fig 1.1 FSO1ed modificada) 3 DEFINIÇÕES DE SO - 1 “É uma camada de software que separa as aplicações do hardware e fornece serviços que permitem que cada aplicação seja executada com segurança e efetivamente. É um software que habilita as aplicações a interagir com o hardware de um computador. É, primordialmente, um gerenciador dos recursos de hardware (processadores, memória, dispositivos (E/S e comunicação) e software (aplicações e outras abstrações) que diferentemente do hardware, não são objetos físicos.” (Deitel) 4 DEFINIÇÕES DE SO - 2 •“É um programa de controle do computador responsável por alocar recursos de hardware e escalonar tarefas. Além disto, ele deve prover uma interface com o usuário, ou seja, fornecer ao usuário um modo de acessar os recursos do computador.” (Sobell) •“Um Sistema Operacional pode ser definido como um gerenciador dos recursos que compõem o computador (processador, memória, E/S, arquivos, etc). Os problemas centrais que o Sistema Operacional deve resolver são o compartilhamento ordenado, a proteção dos recursos a serem usados pelas aplicações do usuário e a interface entre este e a máquina.” (Stemmer) 5 DEFINIÇÕES DE SO - 3 “É um programa que atua como intermediário entre o usuário e hardware do computador, com o propósito de propiciar um ambiente para o usuário executar programas de forma conveniente e eficiente.” (Silberschatz&Galvin) 6 FUNÇÕES DO SO (VISÃO DO USUÁRIO: “TOP-DOWN”) INTERFACE COM O USUÁRIO: oferece um ambiente amigável para o usuário interagir com o computador. Funciona como uma MÁQUINA VIRTUAL(MV) ou ESTENDIDA, fornecendo uma abstração de alto nível dos recursos de hardware da máquina, livrando o programador dos detalhes de funcionamento dos mesmos. 7 FUNÇÕES DO SO (VISÃO DO PROGRAMADOR DE SISTEMAS: “BOTTON-UP”) GERENCIADOR DE RECURSOS : processadores, arquivos, memórias, dispositivos de E/S, etc. Estabelecer critérios de ALOCAÇÃO, USO E PROTE-ÇÃO DOS RECURSOS e ordem de acesso aos mesmos, impedindo violação de espaço de memória entre os programas dos usuários e tentativas de acesso simultâneo a um mesmo recurso. 8 SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 1 PRIMEIRA GERAÇÃO (1945 - 1955): VÁLVULAS Programação em linguagem de máquina (L1G): chaves e painéis Inexistência de LP (linguagem de programação) ou Sistema Operacional (SO), o operador “fazia tudo” 9 SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 2 SEGUNDA GERAÇÃO (1955-1965): TRANSISTORES Separação entre programação e operação Desenvolvimento das LP: FORTRAN e ASSEMBLY Surgimento do SO (Sistema Operacional: seqüenciador automático de tarefas, também chamado de MONITOR (Ex: FMS e JCL)), dos SISTEMAS EM LOTE (“BATCH”) e da técnica de ”BUFFERING”. 10 PROCESSAMENTO EM LOTES: BATCH (Fig. 1.3 SOM3ed) Colocar os cartões no 1401 Ler cartões para a fita Colocar a fita no 7094 e fazer o processamento Colocar a fita no 1401 e imprimir a saída 11 PROCESSAMENTO EM LOTES: BATCH (Fig. 1.4 ASOM5ed) Processamento Processamento Processamento (a) (b) (c) fita de entrada fita de entrada cartões perfurados fita de saída relatórios fita de saída job 2 job n relatório 1 relatório 2 relatório n job 1 Processamento em lotes (“batch”) Programas são organizados em lotes de características comuns e executados sequencialmente e sem interação com o usuário 13 SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 3 TERCEIRA GERAÇÃO (1965-1980): CIRCUITOS INTEGRADOS MULTIPROGRAMAÇÃO , TEMPO COMPARTILHADO, (“Time-sharing”), MULTIUSUÀRIO e MULTITAREFA -> MULTICS --> UNIX Técnicas de ”BUFFERING” e SPOOL (“Simultaneous Peripheral Operation On Line” : Operação simultânea de periféricos em linha) L3G: Cobol, C, Pascal, Basic 14 Memória Principal Dispositivos de E/ S UCP programa/ tarefa MONOPROGRAMAÇÃO (Fig. 1.6 ASOM5ed) 15 Monoprogramação: um único programa 16 Multiprogramação (Fig 1.5 SOMTB3ed) 17 MULTIPROGRAMAÇÃO PARTIÇÃO DE MEMÓRIA 4 MONITOR, SUPERVISOR OU SISTEMA OPERACIONAL PARTIÇÃO DE MEMÓRIA 3 PROGRAMA 3 (“JOB3”) PARTIÇÃO DE MEMÓRIA 2 PROGRAMA 2 (“JOB2”) PARTIÇÃO DE MEMÓRIA 1 PROGRAMA 1 (“JOB1”) 18 Multiprogramação (dois programas) 19 Multiprogramação (três programas) 20 Tempo Compartilhado: Time Sharing (Fig. 1.7 ASOM5ed) MULTIPROGRAMAÇÃO E MULTITAREFA Memória Principal Dispositivos de E/ S UCP programa/ tarefa programa/ tarefa programa/ tarefa programa/ tarefa programa/ tarefa 21 Tempo Compartilhado: Time Sharing Systems A Multiprogramação possibilitou o tempo compartilhado, permitindo que diversos usuários possam interagir diretamente com o computador (interativo) 22 TÉCNICA DE BUFFERING (Fig. 3.5 ASOM5ed) Memória Principal UCP Buffer gravação gravação leitura leitura Controlador 23 TÉCNICA DE SPOOLING (Fig. 3.6 ASOM5ed) Programa ImpressoraArquivo de Spool Sistema OperacionalSistema Operacional 24 Buffer e Spooling • Buffers • Área de memória para armazenamento temporário que guarda dados durante transferências de E/S. • São usados principalmente para: • Coordenar comunicações entre dispositivos que funcionam em diferentes velocidades. • Armazenar dados para processamento assíncrono. • Permitir que alguns sinais sejam emitidos assincronamente. • Spooling • Técnica de buffer por meio da qual um dispositivo intermediário, como um disco, é interposto entre um processo e um dispositivo de E/S de baixa velocidade. • Permite que os processos solicitem operações a um dispositivo periférico sem que esse dispositivo esteja preparado para atender a essa solicitação. 25 SO: EVOLUÇÃO E CONCEITOS BÁSICOS - 4 QUARTA GERAÇÃO (1980 -> ? ): CIs LSI e VLSI VLSI (Very Large Scale Integration) microcomputadores, multiprocessadores, SOs para computadores pessoais (mais amigáveis) (DOS -> Windows). Surgimento das L4G (SQL, C++ e Java), dos SOs de Redes (SOR) e dos SOs Distribuídos (SOD) 26 EVOLUÇÃO DO UNIX (Fig. 15.1 ASOM4ed) 19 76 19 69 UNICS 19 71 UNIX V1 UNIX V6 19 88 19 79 UNIX V7 19 81 System III 19 82 System V 19 84 SVR2 19 86 SVR3 SVR4 19 92 SVR4.2 Xenix Minix AIX Chorus SCO Unix Linux UnixWare 1BSD 19 86 19 78 19 79 2BSD 19 803BSD 4BSD 19 81 4.1BSD 19 83 4.2BSD 4.3BSD 19 93 4.4BSD Ultrix SunOS Mach Irix FreeBSD OpenBSD OSF/1 Solaris 27 EVOLUÇÃO DO WINDOWS (Fig. 14.1 ASOM4ed) OS/ 2 LAN ManagerVMSDOS Windows 1.0 Windows 3.0 Windows 95 Windows 98 Windows Me 19 81 19 85 19 90 19 95 19 98 19 99 WNT 3.1 WNT 3.51 WNT 4.0 Windows 2000 19 93 19 95 19 96 20 00 Windows XP Windows.NET20 01 28 • Windows Vista (2007). • Windows 2008 Server (2008). • Windows 7 (2009). • Windows Phone 7 (2010). • Windows 8 (2012). Windows: continuação 29 EVOLUÇÃO DO SO (2007-2013) 30 Recentes (2013) • Ubuntu 13.10 (Saucy Salamander) e Ubuntu Mobile OS (Ubuntu Touch). • Firefox OS. • XBOX OS (MS). • Orbis OS (PS4): BSD • iOS 7. • Android 4.3 (Jelly Bean) e 4.4 (KitKat). • Windows 8.1 (2013). 31 PROCESSO (Fig. 5.2 ASOM5ed) Programa Contexto de Software Contexto de Hardware Espaço de Endereçamento 32 Estrutura do Processo (Fig. 5.4 ASOM5ed) Programa Contexto de Software prioridade de execução registrador PC data/hora de criação tempo de processador registrador SP quotas privilégios endereços de memória principal alocados registrador de status owner (UID) PID nome registradores gerais Contexto de Hardware Espaço de Endereçamento 33 PCB: Bloco de Controle do Processo (Fig. 5.5 ASOM5ed) . . . . .. . . ponteiros Estado do processo Registradores Nome do processo Prioridade do processo Limites de memória Lista de arquivos abertos 34 Linux PCB : struct task_struct (1) struct task_struct { long state; long counter, priority; struct task_struct *next_task, *prev_task; struct task_struct *next_run, *prev_run; int exit_code, exit_signal; int pid; struct task_struct *p_opptr, *p_cptr; struct wait_queue *wait_chldexit; struct task_struct *pidhash_next; 35 Linux PCB : struct task_struct (2) unsigned long policy; struct tms times; unsigned long start_time; unsigned short uid, gid; struct thread_struct tss; struct files_struct *files; struct mm_struct *mm; struct signal_struct *sig; sigset_t signal, blocked; }; 36 Troca (mudança) de Contexto (Fig. 5.3 ASOM5ed) Carrega reg istradores do Processo B Car rega reg istradores do Processo A Sistema Operacional Salva reg istradores do Processo A execu tando execu tando execu tando Salva reg istradores do Processo B Processo A Processo B 37 Monothread x Multithread (Fig 2.8 SOMTB3ed) 38 Monothread x Multithread (Fig 4.1 – SOJ7ed) 39 Multithread (Fig. 6.3 ASOM5ed) Contexto de hardware Contexto de hardware Contexto de hardware Espaço de endereçamento Co nt ex to d e so ftw ar e Thread 3Thread 2Thread 1 40 Suporte de hardware para sistemas operacionais (SOD3ed) • Recursos que executam funções de sistemas operacionais rapidamente em hardware para melhorar o desempenho. • Recursos que habilitam o sistema operacional para proteção. • Mecanismos de proteção no processador: evitam que os processos acessem instruções privilegiadas ou memória. • Os sistemas de computador geralmente dispõem de diferentes modos de execução: • Modo usuário (estado usuário ou estado-problema): o usuário pode executar apenas um subconjunto de instruções. • Modo núcleo (estado supervisor): o processador pode acessar instruções privilegiadas e recursos em nome dos processos. 41 Interação entre aplicações e o sistema operacional. CHAMADAS DE (AO) SISTEMA (Fig. 1.1 SOD3ed) 42 CHAMADAS DE (AO) SISTEMA (Fig. 4.3 ASOM5ed) System Call Aplicação Biblioteca Hardware Núcleo do Sistema Operacional Núcleo do Sistema Operacional 43 Suporte de hardware para sistemas operacionais (SOD3ed) • Proteção e gerenciamento da memória • Impede que processos acessem memória que não lhes foi designada. • É implementada por meio de registradores de processador que somente podem ser modificados com instruções privilegiadas. • Interrupções e exceções 44 Suporte de hardware para sistemas operacionais (SOD3ed) • Temporizadores • O temporizador de intervalo gera periodicamente uma interrupção. • Os sistemas operacionais usam temporizadores de intervalo para impedir que processos monopolizem o processador. • Relógios • Oferecem uma medida de continuidade. • Um relógio de 24 horas habilita o sistema operacional a determinar a hora e a data atuais. 45 INTERRUPÇÕES E EXCEÇÕES (Fig. 3.2 ASOM5ed) 46 INTERRUPÇÕES E EXCEÇÕES São desvios do fluxo de execução de um programa. 1. EXCEÇÃO Desvio forçado do fluxo de execução de um programa causado por um evento interno síncrono, ou seja, ocorre devido a própria execução das instruções do programa (divisão por zero, overflow, instrução inválida, etc.). As exceções podem ser geradas com uma resposta a erros ou condições de exceção. 2. INTERRUPÇÕES: HARDWARE e SOFTWARE. 47 Interrupções e exceções (AOCS8ed – Cap3 ) • Mecanismo pelo qual outros módulos (p.e. E/S) podem interromper a sequência de processamento normal. • Programa (ex: estouro da pilha, divisão por zero) • Timer (ex: gerado por timer dentro do processo, sado na multitarefa preemptiva) • E/S (controlador de E/S) • Falha de hardware (erro de paridade de memória) 48 Ciclo de interrupção (AOCS8ed - Cap3 ) Adicionado ao ciclo de instrução. Processador verifica interrupção (Indicado por um sinal de interrupção). Se não houver interrupção, busca próxima instrução. Se houver interrupção pendente: » Suspende execução do programa atual. » Salva contexto. » Define PC para endereço inicial da rotina de tratamento de interrupção. » Interrupção de processo. » Restaura contexto e continua programa interrompido. 49 Transferência de controle (Fig 3.8 AOCS8ed) 50 Ciclo de instrução com interrupções (Fig 3.9 AOCS8ed) 51 Interrupções e exceções (SOD3ed) • Quando ocorre um evento, a maioria dos dispositivos envia ao processador um sinal denominado interrupção. • As exceções são interrupções geralmente geradas em resposta a erros ou condições de exceção. • O sistema operacional pode responder a uma interrupção notificando os processos que estão à espera desses eventos. 52 INTERRUPÇÃO DE HARDWARE (evento externo) • Desvio forçado do fluxo de execução de um programa causado por um evento assíncrono externo (relógio, teclado, disco impressora, etc). • Quando ocorre um evento, a maioria dos dispositivos envia ao processador um sinal denominado interrupção 53 Pinagem lógica de uma CPU (Fig 3.32 OECTB5ed) • As setas indicam sinais de entrada e sinais de saída. • Os segmentos de reta diagonal indicam que são utilizados vários pinos. 54 PIC: Controlador de interrupção 8259A (Fig 3.40 OECTB5ed) 55 Interrupções de hardware (Fig 5.4 SOMTB3ed) 56 INTERRUPÇÃO DE HARDWARE (Fig 1.11 SOMTB3ed) 57INTERRUPÇÕES DE SOFTWARE São instruções especiais que fazem parte do conjunto de instruções de um processador, mas que tem um comportamento semelhante às interrupções de hardware. Os serviços do Sistema Operacional (SO) são geralmente obtidos através deste mecanismo (chamadas ou “traps” ao SO). Exemplos: INT 0x80 (Linux) INT 0x21 (DOS) 58 CHAMADAS AO SISTEMA: INTERRUPÇÕES DE SOFTWARE (Fig. 4.2 ASOM4ed) 59 VETORES DE INTERRUPÇÃO • Vetor de interrupção é um mecanismo usado para indicar o dispositivo está solicitando operação de E/S. Eles servem para indicar uma entrada na tabela de vetores de interrupção. • A Tabela de vetores de interrupção armazena os endereços das rotinas de tratamento de interrupção (RTI) de cada dispositivo de E/S, de exceções e das interrupções de software. 60 Tabela de vetores de interrupções e exceções para x86 (Tab 12.3 AOCS8ed) 61 Tabela de vetores de interrupções e exceções para x86 (Tab 12.3 AOCS8ed)
Compartilhar