Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture
Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java Saber o que é um sistema de operação Conhecer o processo de arranque (boot) de um computador Introdução aos Sistemas e Redes de Computadores 2
Organização estruturada Nível 3: Sistema de Operação Introdução aos Sistemas e Redes de Computadores 3
Sistema de Operação Actua como intermediário entre o utilizador de um computador e o hardware deste Pode ser visto como Um gestor de recursos o S.O. é responsável por garantir a partilha controlada dos recursos do computador bem como coordenar as actividades em execução Uma máquina virtual o S.O. esconde a especificidade da máquina real onde as aplicações estão de facto a ser executadas Introdução aos Sistemas e Redes de Computadores 4
Papel do Sistema de Operação Facilita a programação Implementa abstracções e oferece uma interface com o hardware mais fácil de usar Melhorar a utilização dos recursos disponíveis Suportar a execução de vários programas (e.g. partilha do tempo de CPU) Gerir o hardware: Acede realmente aos periféricos Permite a protecção entre os programas Introdução aos Sistemas e Redes de Computadores 5
Máquinas Virtuais Representam uma abstracção (por software) de um computador Os recursos da máquina física são partilhados para criar máquinas virtuais semelhantes a reais O escalonamento do CPU pode criar a aparência de que os utilizadores têm o seu próprio CPU Idem para a memória Os periféricos são representados por entidades virtuais Com frequência executam sobre um S.O. nativo Introdução aos Sistemas e Redes de Computadores 6
Virtualização Correspondência entre os recursos virtuais ou estado (registos, memória, ficheiros) em recursos reais da máquina subjacente Uso de instruções da máquina real e/ou chamadas ao sistema para efectuar as acções especificadas pelas instruções e/ou chamadas ao sistema (isto é a emulação ao nível ISA) Introdução aos Sistemas e Redes de Computadores 7
Máquina real System API System ISA (Instruction Set Architecture) Aplicações Chamadas ao sistema Sistema de Operação Hardware User ISA (Instruction Set Architecture) Introdução aos Sistemas e Redes de Computadores 8
Máquina virtual Uma máquina virtual executa software da mesma maneira que a máquina para a qual o software foi desenvolvido O hardware e S.O. podem variar que o programa é o mesmo Guest Programa Runtime Host Software de virtualização SO hardware Virtual Machine Introdução aos Sistemas e Redes de Computadores 9
Tipos de ambientes de operação [1] O S.O. da máquina virtual Gere os recursos (virtuais) disponibilizados pela VM Aplicações/usos de VMs Permite que múltiplas instâncias de um S.O. executem concorrentemente Permite que múltiplas instâncias de diferentes S.O. executem concorrentemente Emulação Simular hardware que não existe na máquina real Promove a portabilidade Melhor uso do HW e poupa energia 10
Tipos de ambientes de operação [2] Esquema de um sistema com máquinas virtuais 11
JAVA inclui os conceitos referidos Os programas Java (classes) executam no âmbito de uma máquina virtual Java Virtual Machine (JVM). Isto permite que programas escritos em Java possam ser executados em qualquer plataforma para a qual exista uma implementação da JVM Introdução aos Sistemas e Redes de Computadores 12
JAVA inclui os conceitos referidos A JVM implementa alguns dos serviços típicos de um sistema de operação: Carrega código dinamicamente para memória Faz a sua ligação (linking) Inicia os threads de execução Faz a gestão dos recursos dos programas Liberta estes recursos quando o programa termina Introdução aos Sistemas e Redes de Computadores 13
JAVA inclui os conceitos referidos A linguagem de programação Java é uma linguagem compilada e interpretada O processo de compilação gera bytecode (código intermédio tipo assembly) da JVM O bytecode é interpretado pela JVM Muitas das JVM actuais compilam o bytecode para código máquina nativo (nível ISA) com um just-in-time compiler (JIT) Introdução aos Sistemas e Redes de Computadores 14
Java ciclo de desenvolvimento Java Compiler Java Virtual Machine Class Loader Bytecode Interpreter Host System (Windows, Linux, etc.) 15
Java ciclo de desenvolvimento HelloWorld.java javac HelloWorld.java Java Compiler HelloWorld.class java HelloWorld Java Virtual Machine Class Loader Bytecode Interpreter Host System (Windows, Linux, etc.) 16
Funcionamento do S.O. Conjunto de código carregado em memória central (RAM) Também chamado núcleo (kernel) Normalmente está permanentemente em RAM A sua acção é complementada por Programas/processos de sistema interpretador de comandos, carregadores, ligadores, O SO é carregado na RAM quando há um power up ou um reset hardware Introdução aos Sistemas e Redes de Computadores 17
Arranque do S.O. O carregador inicial (bootstrap loader) em ROM lê o programa de arranque (boot) para memória O programa de arranque (boot) lê o resto do sistema de operação para memória Introdução aos Sistemas e Redes de Computadores 19
Inicialização do S.O. Inicialização do hardware controladores, sistema de interrupções, vector de interrupções Inicialização das estruturas de dados representam os vários recursos de sistema suportam os algoritmos de gestão desses recursos Criação dos primeiros processos processos auxiliares de sistema rede, sistema de ficheiros, interpretador de comandos Wait for interrupt Introdução aos Sistemas e Redes de Computadores 20
Interpretador de comandos Vários nomes e formas: CLI (command-line interpreter) Shell (UNIX) Gráfico (Windows, Macintosh, X-Windows) Loop: - apresentar prompt - ler comando - executar comando - goto Loop Introdução aos Sistemas e Redes de Computadores 21
Conclusões A linguagem de programação Java incorpora a ideia de máquina virtual, um compilador e um interpretador O sistema de operação é o componente do software de sistema que serve de suporte a todo software Os sistemas de operação controlam a execução de programas, a gestão de recursos, protecção e segurança Introdução aos Sistemas e Redes de Computadores 22