aula 2

Propaganda
Capítulo 2: Estruturas de
Sistemas Operacionais
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009
Capítulo 2: Estruturas de Sistemas Operacionais
 Serviços de Sistemas Operacionais
 Interface entre o Usuário e o Sistema Operacional
 Chamadas de Sistema
 Tipos de Chamada de Sistema
 Programas de Sistema
 Projeto e Implementação de Sistema Operacional
 Estrutura de Sistema Operacional
 Máquinas Virtuais
 Depuração do Sistema Operacional
 Geração do Sistema Operacional
 Inicialização do Sistema
Operating System Concepts – 8th Edition
2.2
Silberschatz, Galvin and Gagne ©2009
Objetivos
 Descrever os serviços que um sistema operacional fornece para
usuários, processos e outros sistemas
 Discutir as diversas maneiras de estruturar um sistema operacional
 Explicar como os sistemas operacionais são instalados e
personalizados e como são inicializados
Operating System Concepts – 8th Edition
2.3
Silberschatz, Galvin and Gagne ©2009
Serviços do Sistema Operacional

SO fornece um ambiente para execução de programas e serviços para os
programas e usuários

Um conjunto de serviços do SO fornece funções que são úteis para o usuário:

Interface do Usuário – Quase todos os SOs têm uma interface de usuário
(UI – User interface).

Vária entre linha de Comando - Command-Line (CLI), Interface
Gráfica de Usuário - Graphics User Interface (GUI), Batch

Execução de Programa – O sistema deve ser capaz de carregar um
programa na memória e executar esse programa , finalizando a sua
execução, normalmente ou anormalmente (indicando o erro).

Operações de I/O - Um programa em execução pode precisar de
operações de I/O, que pode envolver um arquivo ou um dispositivo de I/O

Manipulação de Sistema de arquivo - O sistema de arquivo é de
particular interesse. Programas têm de ler e escrever arquivos e diretórios,
criar e deletá-los, pesquisar, listas informações do arquivo, gerenciar
permissões.
Operating System Concepts – 8th Edition
2.4
Silberschatz, Galvin and Gagne ©2009
Serviços do Sistema Operacional (Cont.)

Comunicações – Processo precisa trocar informações. No mesmo
computador ou entre computadores da rede


Comunicações pode ser via memória compartilhada ou por
passagem de mensagem (pacotes movidos pelo SO)
Detecção de Erros – SO tem que ter ciência das possibilidades de
erros

Pode ocorrer na CPU, no hardware de memória, em dispositivos
de I/O, no programa do usuário

Para cada tipo de erro, o SO deve disparar ações apropriadas
para garantir a correção e computação consistência

Recursos de depuração podem melhorar muito a possibilidades
de uso eficiente do sistema pelo usuário e pelo programador
Operating System Concepts – 8th Edition
2.5
Silberschatz, Galvin and Gagne ©2009
Serviços do Sistema Operacional (Cont.)

Existe também um conjunto de funções do SO cujo objetivo é assegurar a operação
eficiente do próprio sistema, via compartilhamento de recurso
 Alocação de Recurso – Quando há múltiplos usuários ou jobs ativos executando
concorrentemente, os recursos devem ser alocados para cada um deles
 Vários tipos de recursos – Alguns (tais como ciclos de CPU, memória principal e
armazenamento de arquivo) pode ter código de alocação especial, outros (tais
como, dispositivos de I/O) pode ter um código muito mais genérico de solicitação
e liberação.
 Contabilização – Controla quais usuários utilizam que quantidade e que tipo de
recursos do computador
 Proteção e Segurança – Os proprietários de informações armazenadas no sistema
computacional de rede ou multiusuário pode querer controlar o uso da informação, de
maneira que processos concorrentes não interfiram na execução dos outros
 Proteção garante que todos os acessos aos recursos do sistema sejam
controlados
 Segurança do sistema contra ataques externos exigem a autonticação do
usuário, estendendo à defesa de dispositivo externos de I/O de tentativas de
acessos inválidos
 Para um sistema ser protegido e seguro, preocupações devem ser tomadas em
toda a sua extensão.
Operating System Concepts – 8th Edition
2.6
Silberschatz, Galvin and Gagne ©2009
Uma visão de Serviços dos SO
Operating System Concepts – 8th Edition
2.7
Silberschatz, Galvin and Gagne ©2009
Interface do Sistema Operacional - CLI
 Interface de linha de Comando (CLI) ou interpretador de comando
permite que os usuários insiram diretamente os comandos

Alguns implementados no kernel, em outros em Programas

Programas especiais – shells

Primeiramente, captura um comando do usuário e executa
–
Duas abordagens: (1) o próprio intepretador executa os
comandos, (2) os comandos são implementados como
programas do sistema
Operating System Concepts – 8th Edition
2.8
Silberschatz, Galvin and Gagne ©2009
Interface do Sistema Operacional - GUI
 Interface de usuário gráfica – simulando uma área de trabalho (desktop)

Integram mouse, teclado, e monitor

Icons representa os arquivos, programas e ações, etc

Várias botões do mouse sobre o objetos desencadeiam ações
diferentes

Desenvolvido inicialmente pela Xerox PARC
 Vários sistemas incluem interfaces CLI and GUI

Microsoft Windows é GUI com CLI o shell “command”

Apple Mac OS X interface GUI com linha de comando do kernel UNIX

Solaris é CLI com interface GUI opcional (Java Desktop, KDE)
Operating System Concepts – 8th Edition
2.9
Silberschatz, Galvin and Gagne ©2009
Interpretador de Comando Bourne Shell
Operating System Concepts – 8th Edition
2.10
Silberschatz, Galvin and Gagne ©2009
The Mac OS X GUI
Operating System Concepts – 8th Edition
2.11
Silberschatz, Galvin and Gagne ©2009
Chamadas de Sistema
 Interface de Programação para os serviços providos pelo SO
 Geralmente, escrito em linguagem de alto nível (C or C++)
 Normalmente acessados pelos programas via Application Program
Interface (API) de alto nível, ao invés de diretamente usar as
chamadas de sistema
 Três APIs mais comuns Win32 API para Windows, POSIX API para
sistemas POSIX (incluindo todas as versões de UNIX, Linux, e Mac
OS X), and API Java API para Máquina Virtual Java (JVM)
Operating System Concepts – 8th Edition
2.12
Silberschatz, Galvin and Gagne ©2009
Exemplos de Chamadas de Sistema
 Sequência de chamada de sistema para copiar o conteúdo de um arquivo
para outro
Operating System Concepts – 8th Edition
2.13
Silberschatz, Galvin and Gagne ©2009
Exemplo de API Padrão

Considere a função ReadFile() na Win32 API—uma função para leitura de de arquivo

Descrição dos parâmetros passados para ReadFile()

HANDLE file—o arquivo a ser lido

LPVOID buffer—um buffer onde o dado ser lido e escrito

DWORD bytesToRead—o número de bytes a ser lido para o buffer

LPDWORD bytesRead—o número de bytes lido durante a última leitura

LPOVERLAPPED ovl—indica se overlapped I/O está sendo usado
Operating System Concepts – 8th Edition
2.14
Silberschatz, Galvin and Gagne ©2009
Iimplementação de Chamada de Sistema
 Geralmente, um número associado a cada chamada de sistema

A interface de Sistema mantêm uma tabela indexada de acordo
com estes números
 A interface de chamada de sistema invoca a chamada de sistema
associada no kernel do SO e retorna o status da chamada de sistema
e o valor de retorno
 O chamador não necessita conhecer com as chamada de sisetma são
implementadas

Necessita respeitar a API e conhecer o que o SO faz como
resultado da chamada

Muitos detalhes da interface do SO são ocultados do programador
pela API

Gerenciado pela biblioteca de suporte de run-time (conjunto de
funções incluído com o compilador)
Operating System Concepts – 8th Edition
2.15
Silberschatz, Galvin and Gagne ©2009
API – Chamada de Sistema – Relacionamento SO
Operating System Concepts – 8th Edition
2.16
Silberschatz, Galvin and Gagne ©2009
Exemplo de Biblioteca C padrão
 Programa C invocando a chamada de biblioteca printf(), que chama a
chamada de sistema write()
Operating System Concepts – 8th Edition
2.17
Silberschatz, Galvin and Gagne ©2009
Passagem de Parâmetro via Chamada de Sistema
 Frequentemente, mais informações são necessárias além de
identificar simplesmente a chamada desejada
 O tipo exato e a quantidade de informção varia de acordo com o
SO e a chamada
 Três métodos são usados para passar parâmetros para o SO

Mais simples: passar os parâmetros nos registradors
 Em alguns casos, pode ter mais parâmetros do que
registradores

Parâmetros armazenados em um bloco, ou tabela, na memória, e
o endereço do bloco é passado como parâmetro em um
registrador
 Esta abordagem é adotada pelo Linux e Solaris
 Parâmetros colocados no stack pelo programa e retirados do
stack pelo SO

Métodos de bloco e stack não estão limitados pelo número ou
tamanho dos parâmetros
Operating System Concepts – 8th Edition
2.18
Silberschatz, Galvin and Gagne ©2009
Passagem de Parâmetro via Tabela
Operating System Concepts – 8th Edition
2.19
Silberschatz, Galvin and Gagne ©2009
Tipos de Chamadas de Sistema
 Controle de Processo

end, abort

load, execute

create process, terminate process

get process attributes, set process attributes

wait for time

wait event, signal event

allocate and free memory
 Gerenciamento de Arquivo

create file, delete file

open, close file

read, write, reposition

get and set file attributes
Operating System Concepts – 8th Edition
2.20
Silberschatz, Galvin and Gagne ©2009
Tipos de Chamadas de Sistema (Cont.)
 Gerenciamento de Dispositivo

request device, release device

read, write, reposition

get device attributes, set device attributes

logically attach or detach devices
 Manutenção de Informação

get time or date, set time or date

get system data, set system data

get and set process, file, or device attributes
 Comunicações

create, delete communication connection

send, receive messages

transfer status information

attach and detach remote devices
Operating System Concepts – 8th Edition
2.21
Silberschatz, Galvin and Gagne ©2009
Exemplos do Windows e Chamada de
Sistema UNIX
Operating System Concepts – 8th Edition
2.22
Silberschatz, Galvin and Gagne ©2009
Exemplo: MS-DOS
 Única tarefa
 O Shell é invocado quando o sistema é bootado
 Método simples para executar um programa

Nenhum processo é criado
 Um único espaço de memória
 Carrega o programa na memória, sobrepondo todos menos o kernel
 Programa exit -> shell recarregado
Operating System Concepts – 8th Edition
2.23
Silberschatz, Galvin and Gagne ©2009
Execução do MS-DOS
(a) At system startup (b) running a program
Operating System Concepts – 8th Edition
2.24
Silberschatz, Galvin and Gagne ©2009
Exemplo : FreeBSD
 Variante do Unix
 Multitasking
 User login -> invoca o shell escolhido pelo usuário

Shell executa o chamada de sistema fork() para criar o processo

Executa o exec() para carregar o programa para o processo

Shell espera pelo fim do processo ou continua com os comandos dos
usuários
 Processo sai com código 0– nenhum erro ou > 0 – código de erro
Operating System Concepts – 8th Edition
2.25
Silberschatz, Galvin and Gagne ©2009
Programas Múltiplos executando em
FreeBSD
Operating System Concepts – 8th Edition
2.26
Silberschatz, Galvin and Gagne ©2009
Programas de Sistema
 Programas de sistema provém um ambiente conveniente para
desenvolvimento de programa e execução. Podem ser divididos
em:

Manipulação de Arquivo

Informação de Status

Modificação de Arquivo

Suporte a linguagem de Programação

Carregamento de execução de Programa

Comunicações

Programas de aplicação
 A visão do usuário do SO é definida pelos programas de sistema,
não pelas chamadas de sistema
Operating System Concepts – 8th Edition
2.27
Silberschatz, Galvin and Gagne ©2009
Programas de Sistemas
 Provêm um ambiente para o desenvolvimento e execução de
programa
 Alguns deles são interfaces para as chamadas de sistema; outras
são mais complexas
 Gerenciamento de Arquivo - Create, delete, copy, rename, print,
dump, list, e geralmente manipulate arquivos e diretórios
 Informação de Status




Solicita informações do sistema - date, time, quantidade de
memória disponível, disk space, número de usuários
Outras provêm informações de performance, logging, and
debugging
Geralmente, estes programas formatam e imprimem a saída para
o terminal ou outros dispositivos de saída
Alguns sistemas implementam um registrador – usado para
armazenar e recuperar informação de configuração
Operating System Concepts – 8th Edition
2.28
Silberschatz, Galvin and Gagne ©2009
Programas de Sistemas (Cont.)
 Modificação de Arrquivo

Editores de texto para criar e modificar arquivos
 Comandos especiais para pesquisar conteúdo de arquivos ou
executar transformações do texto
 Suporte a linguagem de Programação - Compilers, assemblers,
debuggers and interpreters
 Carregamento de Programa e execução - Absolute loaders,
relocatable loaders, linkage editors, and overlay-loaders, debugging
systems for higher-level and machine language
 Comunicações – Provêm mecanismos para criar conexões virtuais
entre processos, usuários e sistemas computacionais
 Permite aos usuários enviar mensagens para outros através de
tela, browse web pages, send electronic-mail messages, log in
remotely, transfer files from one machine to another
Operating System Concepts – 8th Edition
2.29
Silberschatz, Galvin and Gagne ©2009
Projeto de Implementação de Sistema
Operacional
 Não existe consenso no Projeto e implementação de OS, mas
algumas abordagem tem prevalecido
 Estrutura interna dos SOs diferem
 Iniciando pelos objetivos e especificações
 Afetados pela escolha de hardware, tipo de sistema
 Objetivos do User e Objetivos do System

Objetivos do Usuário – o SO deve ser conveniente para usar, facil
de aprender , confiável, seguro e rápido

Objetivos do sistema – o SO deve ser fácil de projetar,
implementar e manter, bem como ser flexível, confiável, livre de
erro e eficiente.
Operating System Concepts – 8th Edition
2.30
Silberschatz, Galvin and Gagne ©2009
Projeto de Implementação de Sistema
Operacional (Cont.)
 Princípios importantes a serem separados
Política: O quê deve ser feito?
Mecanismo: Como será feito?
 Mecanismos determinam como fazer alguma coisa, política define o
que ser feito

A separação da política do mecanismo é um importante princípio,
ele permite a flexibilização se a decisão da política mudar mais
tarde.
Operating System Concepts – 8th Edition
2.31
Silberschatz, Galvin and Gagne ©2009
Estrutura Única
 MS-DOS – escrito para prover as funcionalidades em um espaço mínimo

Não divido em módulos

Embora o MS-DOS tenha alguma estrutura, suas interfaces e níveis de
funcionalidades não são bem separadas
Operating System Concepts – 8th Edition
2.32
Silberschatz, Galvin and Gagne ©2009
Estrutura em Camada MS-DOS
Operating System Concepts – 8th Edition
2.33
Silberschatz, Galvin and Gagne ©2009
Abordagem em Camada
 O SO é dividido em vários camadas (níveis), cada um construído no
topo do nível mais baixo. A cada de baixo (camada 0), é o hardware
e a mais alta (camada N) é a interface do usuário.
 Com modularidade, as camadas são selecionadas de maneira que
cada uma usa as funções (operacões) e serviços da camada
imediatamente inferior
Operating System Concepts – 8th Edition
2.34
Silberschatz, Galvin and Gagne ©2009
Estrutura do sistema do Sistema UNIX
Tradicional UNIX
Operating System Concepts – 8th Edition
2.35
Silberschatz, Galvin and Gagne ©2009
UNIX
 UNIX – limitado pelas funcionalidades de hardware, o SO UNIX
original tinha uma estrutura limitada. O SO UNIX consiste de duas
partes separadas

Programas de sistema

O kernel

Consiste de tudo que está abaixo da interface de chamada de
sistema e acima do hardware

Provém o sistema de arquivo, escalonamento de CPU,
gerenciamento de memória e outros funções do SO
Operating System Concepts – 8th Edition
2.36
Silberschatz, Galvin and Gagne ©2009
Sistema Operacional em Camada
Operating System Concepts – 8th Edition
2.37
Silberschatz, Galvin and Gagne ©2009
Estrutura de Sistema Microkernel
 Move tudo que não é kernel para o espaço do usuário
 Comunicações são realizadas entre os módulos usuários usando
passagem de mensagem
 Benefícios:

Facil de estender um microkernel

Mais fácil de portar um SO para novas arquiteturas

Mais confiável (menos código está executando em modo kernel)

Mais seguro
 Desvantagens:

Overhead de desempenho na comunicação do espação do
usuário para o espaço kernel
Operating System Concepts – 8th Edition
2.38
Silberschatz, Galvin and Gagne ©2009
Estrutura do Sistema Mac OS X
Operating System Concepts – 8th Edition
2.39
Silberschatz, Galvin and Gagne ©2009
Módulos
 Muito dos Sistemas Operacionais modernos implementam módulos de
kernel

Usam abordagem orientada a objeto

Cada componente core é separado

Cada um interage com os outros com interfaces bem conhecidas

Cada módulo é carregado quando necessário
 Em linhas gerais é similar a camadas mas mais flexível
Operating System Concepts – 8th Edition
2.40
Silberschatz, Galvin and Gagne ©2009
Abordagem Modular Solaris
Operating System Concepts – 8th Edition
2.41
Silberschatz, Galvin and Gagne ©2009
Máquinas Virtuais
 Máquina Virtual é uma evolução lógica da abordagem de camada.
Ela tata o hardware e o kernel do SO como se tudo fosse hardware
 Uma máquina virtual provém uma interface indêntica para o
hardware.
 O SO cria a ilução que um processo tem seu próprio processador e
memória virtual
 Cada guest é provido com uma cópia (virtual) do computador
Operating System Concepts – 8th Edition
2.42
Silberschatz, Galvin and Gagne ©2009
Máquinas Virtuais (Cont.)
(a) Nonvirtual machine (b) virtual machine
Operating System Concepts – 8th Edition
2.43
Silberschatz, Galvin and Gagne ©2009
Máquina Virtual Java
Operating System Concepts – 8th Edition
2.44
Silberschatz, Galvin and Gagne ©2009
Depuração de Sistema Operacional
 Debugging é realizado para encontrar e fixar os erros, ou bugs
 OS geram arquvivos de log contendo informação de erro
 Falhas de uma aplicação pode gerar arquivo de core dump que
captura a memória dos processos
 Falha do SO pode gerar arquivo de crash dump contendo a memória
do kernel
Operating System Concepts – 8th Edition
2.45
Silberschatz, Galvin and Gagne ©2009
Chamada de Sistema dtrace
Operating System Concepts – 8th Edition
2.46
Silberschatz, Galvin and Gagne ©2009
Geração do Sistema Operacional
 SO são projetados para ser executados em qualquer classe de
máquina; o sistema deve ser configurado para cada computador
específico
 Programa SYSGEN obtém informação relacionada a configuração
específica do hardware
 Booting – inicia uma computador por meio do carregamento do kernel
 Programa Bootstrap program – código armazenado em ROM que é
capaz de localizar o kernel, carregá-lo na memória, e iniciar sua
execução
Operating System Concepts – 8th Edition
2.47
Silberschatz, Galvin and Gagne ©2009
System Boot
 SO deve estar disponível para cada hardware
 Parte pequena de código – bootstrap loader, localiza o kernel,
carrega na memória, e inicia
 Algumas vezes existem dois processos um o bloco de boot é fixado
em uma localização e carrega o botstrap

Quando o sistema é iniciado, a execução inicia em um local fixo
da memória

Firmware é usado para carregar o código inicial
Operating System Concepts – 8th Edition
2.48
Silberschatz, Galvin and Gagne ©2009
Fim do capítulo 2
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009
Download