Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Capitulo 2: Estruturas de Sistemas Operacionais.

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

Laboratório de Sistemas Distribuídos (LSD) – Universidade Federal de Campina Grande (UFCG)EELA Grid School – December 04, 2006 Enhancing SegHidro/BRAMS.
MANUAL EBSCONET.
Chapter Six Pipelining
Chapter Five The Processor: Datapath and Control (Parte B: multiciclo)
Slide Title: Title Slide Keywords: Title Key Message: Title Slide
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
MC Prof. Paulo Cesar Centoducatte MC542 Organização de Computadores Teoria e Prática.
MC Prof. Paulo Cesar Centoducatte MC542 Organização de Computadores Teoria e Prática.
Listas Encadeadas Circulares Listas Duplamente Encadeadas
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
DIRETORIA ACADÊMICA NÚCLEO DE CIÊNCIAS HUMANAS E ENGENHARIAS DISCIPLINA: INGLÊS FUNDAMENTAL - NOITE PROFESSOR: JOSÉ GERMANO DOS SANTOS PERÍODO LETIVO
Sistemas Distribuídos Introdução: Modelos de Arquitetura de Sistemas Distribuídos Instituto de Informática – UFG Verão 2005 Baseado em: Coulouris, Cap.
Ronaldo Celso Messias Correia
Sistemas Operacionais
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
SQL Procedural Junho/2006.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Treinamento GP3 USP – GEFIM Abril de 2004 Alcides Pietro, PMP.
Sistemas Operacionais
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
(Como implementar multiplicação e divisão uma vez só :-)
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Servidores e Programação Web Redes de Computadores.
Mais sobre classes Baseada no Livro: Deitel&Deitel - C++ How To program Cap. 7 Prentice Hall 1994 SCE 213 Programação Orientada a Objetos, ICMC - USP 2.
Snap Together Visualization. Introdução - Exploração Visual de Dados Aplicada em conjuntos de dados abstratos. Facilitar a percepção de padrões, tendências,
O Fluxo de Testes © Alexandre Vasconcelos
Funções de um computador
GT Processo Eletrônico SG Documentos Eletrônicos Segunda reunião – 28/08/2009 Interlegis.
ITA - Instituto Tecnológico de Aeronáutica Aula #1.1 – Tutorial de Web Services utilizando o NetBeans 5.5 Disciplina: CE 262 – Ontologias e Web Semântica.
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
FUNDAÇÃO CARLOS CHAGAS
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
The Data Warehouse Toolkit
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Programação Concorrente com Thread Java
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
Uniform Resource Identifier (URI). Uniform Resource Identifiers Uniform Resource Identifiers (URI) ou Identificador de Recursos Uniforme provê um meio.
Protocolo HTTP.
Knowledge-editing using WYSIWYM Richard Power & Donia Scott ITRI University of Brighton.
7 FuncionalidadeRecurso Windows Server 2008 R2 Hyper-V Windows Server 2012 Hyper-V VMware vSphere 5.1 Ent Plus Escalabilidade,
Provas de Concursos Anteriores
OER LIFE CYCLE Andrew Moore and Tessa Welch.
Tópicos Especiais em Aprendizagem Reinaldo Bianchi Centro Universitário da FEI 2012.
Sincronização com Locks. Locks É um mecanismo de sincronização de processos/threads em que estas devem ser programadas de modo que seus efeitos sobre.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Definição do MoC Subjacente a Aplicação Prof. Dr. César Augusto Missio Marcon Parcialmente extraído de trabalhos de Axel Jantch, Edward Lee e Alberto Sangiovanni-Vincentelli.
Introdução à Criptografia Moderna – 2ª Lista de Exercícios
Metodologia de Desenvolvimento de Software Hermano Moura Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo.
Hoje é domingo, 14 de setembro de 2014 Agora mesmo são 22:54 h. Relaxe por uns momentos e aprecie … Com som Today is Monday, 1 st December Relax.
Cigré/Brasil CE B5 – Proteção e Automação Seminário Interno de Preparação para a Bienal 2006 Rio de Janeiro, setembro/06.
Lei de Cotas: Looking at the Implementation of the Brazilian Employment Quota in São Paulo, Brazil Anna C. O’Kelly.
Capítulo 17: Sistemas de Arquivos Distribuídos Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 4, 2005 Capítulo.
RELATÓRIO CEMEC 06 COMPARAÇÕES INTERNACIONAIS Novembro 2013.
Microprocessadores 8051 – Aula 3 Interrupção
Andre Facciolli – Diretor Netbr Automação no Data Center.
Unit 22 Relative Clauses and Pronouns.
VOCÊ JÁ FALA INGLÊS FLUENTEMENTE?
Administração e Exploração Avançada de Bases de Dados Mestrado em Engenharia de Sistemas Braga, 2014.
Transcrição da apresentação:

Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Capitulo 2: Estruturas de Sistemas Operacionais

2.2 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Frase do Dia “A ignorancia é vizinha da maldade” Proverbio Arabe

2.3 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Fique Ligado !  Neste mês, a Microsoft abandonou o plano de embutir o IE 8 ao novo sistema operacional Windows 7, devido à pressão da União Europeia. A Microsoft vai dar uma opção de que o usuário escolha o software que deseja instalar o IE 8 ou outro navegador de fabricantes diferentes.  O Google entrou no mercado dos browsers no último ano com o Chrome, que, de acordo com suspeitas dos analistas de mercado, deve ser distribuído com o novo sistema operacional, a ser lançado em “We designed Google Chrome for people who live on the web — searching for information, checking , catching up on the news, shopping or just staying in touch with friends. However, the operating systems that browsers run on were designed in an era where there was no web. So today, we're announcing a new project that's a natural extension of Google Chrome — the Google Chrome Operating System. It's our attempt to re-think what operating systems should be.” Google

2.4 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Cap. 2 : Estruturas de SOs  Servicos de Sistemas Operacionais  Interface do SO com Usuario  Chamadas ao Sistema  Tipos de Chamadas ao Sistema  Programas do Sistema  Projeto e Implementação do SO  Estrutura do SO  Maquinas Virtuais  Geração do SO  Inicio (boot) do Sistema

2.5 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Objetivos  Descrever os serviços que um SO prove para os usuarios, processos e outros sistemas  Discutir as varias formas de estruturar um SO  Explicar como sistema operacionais são instalados e como eles iniciam (boot)

2.6 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Serviços do Sistema Operacional  Um conjunto de serviços do SO prove funcoes que são úteis para o usuário: Interface com o usuario – A maioria dos sistemas operacionais tem uma interface com o usuário (UI)  Variam entre linha de comando (CLI), Interface Grafica com Usuario (GUI) Varies between Command-Line (CLI), Batch (em lote) Execução de programas – O sistema deve permitir a carga de um programa em memoria, executar este programa, e finalizar sua execução, tanto normalmente como de forma anormal (indicando erro) Operacoes de E/S - Um programa em execução pode requisitar E/S, a qual pode involver um arquivo ou um dispositivo de E/S. Manipulação do sistema de arquivos - O sistema de arquivo é de particular interesse. Obviamente, programas precisam ler e gravar arquivos e diretorios, criando e eliminando-os, procurando eles, apresentando informacoes sobre os mesmos e gerenciando suas permissoes.

2.7 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Serviços do Sistema Operacional (Cont.)  Um conjunto de servicos do SO prove funcoes que sao uteis para o usuario (Cont): Comunicações – Processos podem trocar informações, no mesmo computador ou através da rede  Comunicação pode ser via memoria compartilhada or atraves passagem de mensagens (pacotes movidos pelo SO) Detecção de erro – SO precisa estar consciente dos possiveis erros  Podem ocorrer na CPU e memoria, nos dispositivos de E/S, no programa do usuario  Para cada tipo de erro, o SO deve escolher a ação apropriada para garantir a computação correta e consistente  Facilidades de depuração podem ajudar bastante em enriquecer as habilidades dos usuarios e programadores no uso eficiente do sistema

2.8 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Serviços do Sistema Operacional (Cont.)  Outro conjunto de funcoes do SO existem para garantir a operacao eficiente do proprio sistema via recurso compartilhado Alocação de Recurso – Quando multiplos usuarios ou multiplos jobs executam concorretemente, recursos devem ser alocados para cada um deles  Varios tipos de recursos – Alguns (do tipo ciclo de CPU, memoria principal, e armazemento de arquivo) podem ter codigo de alocacao especial, outros (tais como dispositivos de E/S) podem ter codigo de requisicao e liberacao gerais. Contabilidade – Para manter o rastro de quais usuarios usam o quanto e quais tipos de recursos do computador Protecao e seguranca - Os donos da informacao armazenada em um computador multiusuario ou de rede, podem desejar controlar uso desta informacao, processos concorrentes nao podem interferir uns nos outros  Protecao – involve a garantia de que todos os acessos aos recursos do sistema sao controlados  Seguranca do sistema requer atenticacao do usuario, extendido para defesa dos dispositivos de E/S das tentativas de acesso invalido  Se um sistema deve ser protegido e seguro, preocacoes devem ser instituidas. Uma corrente é tao forte quanto seu elo mais fraco.

2.9 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Interface do SO com o usuario - CLI CLI (command line interface) permite entrada direta do usuario  Algumas vezes implementada no kernel, outras vezes pelos programas do sistema  Algumas vezes multiplos sabores sao implementados – shells  Primariamente recupera um comando do usuario e executa-o  Algumas vezes comandos embutidos, outras vezes apenas nomes de programas  No ultimo caso, a adicao de novas funcionalidades nao requer modificacao do shell

2.10 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Interface do SO com o usuario - GUI  Interface que usa a metafora da area de trabalho (desktop) Usualmente mouse, teclado, e monitor Icones representam arquivos, programas, acoes, etc Varios butoes do mouse sobre objetos da interface causam varias acoes (prove informacoes, opcoes, executa funcoes, abre arquivos (conhecido como pasta) Inventado pela Xerox PARC  Varios sistemas agora incluem tanto interfaces CLI como interfaces GUI Microsoft Windows é GUI com CLI usando shell Apple Mac OS X usa interface GUI com kernel UNIX e shells disponiveis Solaris é CLI com uso opcional de interfaces GUI (Java Desktop, KDE)

2.11 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Chamadas ao sistema  Interface de programação para serviços providos pelo SO  Tipicamente escritas em uma linguagem de alto-nivel (C ou C++)  Em sua maioria acessadas por programas via uma interface de aplicacao (API) de alto-nivel do que chamadas diretas ao sistema  As 3 mais conhecidas APIs sao: Win32 API para Windows, POSIX API para sistemas baseados em POSIX (incluindo todas as versoes do UNIX, Linux, e Mac OS X), e Java API para maquina virtual Java (JVM)  Por que usar APIs do que chamadas diretas ao sistema ? (Note que nomes de chamadas ao sistema usadas ao longo deste texto sao genericas)

2.12 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006

2.13 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Exemplos de Chamadas ao Sistema  Sequencia de chamada ao sistema para copiar o conteudo de um arquivo para outro

2.14 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Exemplo de uma API padrao  Considere a funcao read() do Java byte[] b – o buffer no qual o dado é lido int off – o offset inicial em b onde o dado é lido int len – o numero maximo de bytes para ler

2.15 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Implementacao de Chamada ao Sistema  Tipicamente, um numero associado com cada chamada ao sistema Interface de chamada ao sistema mantem uma tabela indexada de acordo com esses numeros  Uma interface de chamada ao sistema invoca chamada do sistema no kernel do SO e retorna o estado da chamada e alguns valores de retorno  O chamador nao precisa saber sobre como a chamado ao sistema é implementada So precisa obdecer a API e entender o que o SO retornara como resultado a chamada A maioria dos detalhes da interface do SO sao escondidas do programador pela API  Gerenciada pela bibioteca de suporte em tempo de execucao (conjunto de funcoes incorporadas nas bibliotecas incluidas no compilador)

2.16 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Relacionameno da API de chamadas ao sistema com SO

2.17 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Exemplo da biblioteca padrao C  Programa C invocando printf(), o qual chama a system call write()

2.18 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Passagem de parametro a System Call  Em geral, mais informacoes sao necessarias do que simplesmente a identidade da system call Tipo exato e quantidade de informacao variam de acordo com o SO e a chamada  Tres metodos usados para passar parametros para o SO Mais simples: passando os parametros em registradores  Em alguns casos, pode existir mais parametros do que registradores Parametros armazenados em um bloco, ou tabela, em memoria, e o endereco do bloco passado como parametro em um registrador  Esta abordagem é usada pelo Linux e Solaris Parametros colocado em uma pilha pelo programa e recuperadas da pilha pelo SO Metodos de bloco e pilha nao limitam o numero e tamanho dos parametros que estao sendo passados

2.19 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Passagem de Parametro via Tabela

2.20 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Tipos de System Calls  Controle de Processo  Gerenciamento de Arquivo  Gerenciamento de Dispositivo  Manutencao de Informacao  Comunicacoes

2.21 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Execucao MS-DOS (a) At system startup (b) running a program

2.22 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 FreeBSD Executando Multiplos Programas

2.23 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Programas do Sistema  Provem um ambiente conveniente para desenvolvimento e execucao de programas. Eles podem ser divididos em: Manipulacao de Arquivo Informacao sobre estado Modificacao de Arquivo Suporte a linguagem de programacao Carga e execucao de programa Comunicacoes Programas de Aplicacao  A maior parte da visao dos usuarios sobre o SO é definida pelos programas do sistema, nao sobre as system calls

2.24 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Solaris 10 dtrace rastreando System Call

2.25 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Programas do Sistema  Provem um ambiente conveniente para desenvolvimento e execucao de programas. Alguns deles sao simples interfaces com usuario para as system calls; outros sao consideravelmente mais complexos  Gerenciamento de arquivos – criar, eliminar, copiar, renomear, imprimir, dump, listar, e geralmente manipular arquivos e diretorios  Informacao de estado Alguem pergunta sobre uma informacao – data, hora, memoria disponivel, espaco em disco, numero de usuarios Outros provem informacoes detalhadas sobre performance, logging, e depuracao Tipicamente, esses programas formatam e imprimem a saida para terminal ou outros dispositivos de saida Alguns sistemas implementam um registry – usado para armazenar e recuperar informacao sobre configuracao

2.26 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Programas do Sistema (cont)  Modificacao de Arquivo Editores de texto para criar e modificar arquivos Comandos especiais para pesquisar conteudo dos arquivos ou para executar transformacoes no texto  Suporte a linguagem de programacao – Compiladores, assemblers, debuggers, e interpretadores algumas vezes sao providos  Carga e execucao de programas – Carregadores absolutos, carreadores realocaveis, editores de linkage, e carregadores de overlay, sistemas de depuracao para alto-nivel e linguagem de maquina  Comunicacoes – Prover os mecanismos para criacao virtual de conecoes entre processos, usuarios, e sistemas de computador Permite usuarios enviar mensagens para outra telas, navega em paginas web, enviar eletronico, logar remotamente, transferir dados de uma maquina para outra

2.27 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006

2.28 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Operating System Design and Implementation  Design and Implementation of OS not “solvable”, but some approaches have proven successful  Internal structure of different Operating Systems can vary widely  Start by defining goals and specifications  Affected by choice of hardware, type of system  User goals and System goals User goals – operating system should be convenient to use, easy to learn, reliable, safe, and fast System goals – operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient

2.29 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Operating System Design and Implementation (Cont.)  Important principle to separate Policy: What will be done? Mechanism: How to do it?  Mechanisms determine how to do something, policies decide what will be done The separation of policy from mechanism is a very important principle, it allows maximum flexibility if policy decisions are to be changed later

2.30 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Simple Structure  MS-DOS – written to provide the most functionality in the least space Not divided into modules Although MS-DOS has some structure, its interfaces and levels of functionality are not well separated

2.31 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 MS-DOS Layer Structure

2.32 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Layered Approach  The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.  With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers

2.33 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006

2.34 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 UNIX  UNIX – limited by hardware functionality, the original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts Systems programs The kernel  Consists of everything below the system-call interface and above the physical hardware  Provides the file system, CPU scheduling, memory management, and other operating- system functions; a large number of functions for one level

2.35 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 UNIX System Structure

2.36 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Microkernel System Structure  Moves as much from the kernel into “user” space  Communication takes place between user modules using message passing  Benefits: Easier to extend a microkernel Easier to port the operating system to new architectures More reliable (less code is running in kernel mode) More secure  Detriments: Performance overhead of user space to kernel space communication

2.37 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Mac OS X Structure

2.38 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Modules  Most modern operating systems implement kernel modules Uses object-oriented approach Each core component is separate Each talks to the others over known interfaces Each is loadable as needed within the kernel  Overall, similar to layers but with more flexible

2.39 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Solaris Modular Approach

2.40 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Virtual Machines  A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the operating system kernel as though they were all hardware  A virtual machine provides an interface identical to the underlying bare hardware  The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory

2.41 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Virtual Machines (Cont.)  The resources of the physical computer are shared to create the virtual machines CPU scheduling can create the appearance that users have their own processor Spooling and a file system can provide virtual card readers and virtual line printers A normal user time-sharing terminal serves as the virtual machine operator’s console

2.42 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Virtual Machines (Cont.) (a) Non-virtual Machine Virtual Machine

2.43 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Virtual Machines (Cont.)  The virtual-machine concept provides complete protection of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing of resources.  A virtual-machine system is a perfect vehicle for operating- systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation.  The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine

2.44 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 VMware Architecture

2.45 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006

2.46 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java  Java consists of 1. Programming language specification 2. Application programming interface (API) 3. Virtual machine specification

2.47 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 The Java Virtual Machine

2.48 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 The Java Virtual Machine Java portability across platforms.

2.49 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 The Java Development Environment

2.50 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Operating Systems The JX operating system

2.51 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Operating System Generation  Operating systems are designed to run on any of a class of machines; the system must be configured for each specific computer site  SYSGEN program obtains information concerning the specific configuration of the hardware system  Booting – starting a computer by loading the kernel  Bootstrap program – code stored in ROM that is able to locate the kernel, load it into memory, and start its execution

2.52 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 System Boot  Operating system must be made available to hardware so hardware can start it Small piece of code – bootstrap loader, locates the kernel, loads it into memory, and starts it Sometimes two-step process where boot block at fixed location loads bootstrap loader When power initialized on system, execution starts at a fixed memory location  Firmware used to hold initial boot code

Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 End of Chapter 2