Você está na página 1de 41

Sistemas Operativos

Estruturas dos Sistemas Operativos

Ibria Medeiros
Licenciatura Informtica: Redes e Multimdia
Departamento de Matemtica
Universidade dos Aores
2010/2011

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Sumrio

Sumrio

Servios do sistema operativo


Interface com o utilizador
Interface com o sistema operativo: Chamadas ao
sistema
Programas de sistema
Desenho e implementao de sistema operativo
Gerao e inicializao do sistema operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Sumrio

Sumrio

Servios do sistema operativo


Interface com o utilizador
Interface com o sistema operativo: Chamadas ao
sistema
Programas de sistema
Desenho e implementao de sistema operativo
Gerao e inicializao do sistema operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Servios do Sistema Operativo

Servios do Sistema Operativo


Servios relacionados com o utilizador
Interface com o Utilizador (UI)

Command-Line Interpreter (CLI)

Graphics User Interface (GUI)

Batch

Execuo de programas o sistema carrega um programa em memria,


executa-o e termina-o, reportando eventuais erros.
Operaes de I/O - Um programa em execuo requer operaes de I/O
relativamente a ficheiros ou perifricos
Manipulao do Sistema de Ficheiros a grande maioria de operaes das
aplicaes tm a ver com:

UA

ficheiros: ler, escrever, apagar, mover

directrios: listar, procurar, gesto de acesso

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Servios do Sistema Operativo

Servios do Sistema Operativo


Servios relacionados com o utilizador (cont.)
Comunicaes troca e/ou partilha de dados entre aplicaes residentes no
mesmo computador ou em computadores ligados por rede

Podem ser feitas por memria partilhada ou atravs de mensagens


(pacotes movimentados pelo SO atravs de protocolos)

Deteco de Erros o SO tem de estar constantemente a par de todos os


erros, a tentar report-los ou mesmo corrigi-los.

UA

Podem ocorrer no CPU ou na memria, perifricos ou na maioria dos


casos, em programas do utilizador
Para cada tipo de erro, o SO toma a aco apropriada para garantir a
continuidade da execuo do sistema como um todo
A utilizao de debug pode aumentar as capacidades dos utilizadores e
programadores utilizarem o sistema correctamente

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Servios do Sistema Operativo

Servios do Sistema Operativo


Outros servios...
Alocao de recursos quando mltiplos utilizadores ou processos esto a
utilizar o mesmo sistema simultaneamente. Tipos de Recursos:

CPU Memria e Armazenamento: algoritmos especficos

Perifricos: controle dos pedidos e o seu encadeamento

Accounting/Logging Guardar historial das aces dos utilizadores e da


utilizao que fizeram dos recursos do sistema
Proteco e Segurana Garantir que a informao que existe ou transita
num sistema multiutilizador e ligado em rede no acedida ou modificada por
quem no deve.

UA

A Proteco implica que todos os acesso a recursos geridos pelo sistema


so controlados
Segurana implica que a utilizao do sistema por quaisquer entidades
envolve uma autenticao prvia e pode implicar armazenar ou transferir
dados de forma cifrada
Para que um sistema seja protegido e seguro, deve haver uma coerncia
entre as precaues tomadas.

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Servios do Sistema Operativo

Servios do Sistema Operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Sumrio

Sumrio

Servios do sistema operativo


Interface com o utilizador
Interface com o sistema operativo: Chamadas ao
sistema
Programas de sistema
Desenho e implementao de sistema operativo
Gerao e inicializao do sistema operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o Utilizador

Linha de Comandos (CLI)


Command Line Interpreter permite a execuo directa de comandos

A implementao pode ser realizada no kernel ou num programa sistema


(Shell)

Recebe comandos do utilizador, pela consola

UA

Alguns comandos so interpretados pelo CLI

Alguns comandos so tratados por programas especficos

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o Utilizador

Linha de Comandos (CLI)

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o Utilizador

Interface Grfica (GUI)


Graphic User Interface
Interface amigvel
Rato + teclado
cones representam ficheiros, pastas, programas
Criada na Xerox PARC e generalizada com os Apple McIntosh
A maioria dos sistemas actuais inclui interfaces CLI e GUI

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o Utilizador

Interface Grfica (GUI)

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Sumrio

Sumrio

Servios do sistema operativo


Interface com o utilizador
Interface com o sistema operativo: Chamadas ao
sistema
Programas de sistema
Desenho e implementao de sistema operativo
Gerao e inicializao do sistema operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Chamadas ao sistema operativo (system calls)


Interface de programao fornecida pelo SO
Geralmente escrita em linguagem programao de alto nvel (C, C++ ou Java)
Similar a chamadas de funes
Acedidas pelos programas pelas Application Program Interface (API) que
encapsula o acesso directo aos system calls

Win32 API para Windows

POSIX API para praticamente todas as verses de UNIX

Java API para a Java Virtual Machine (JVM)

O acesso aos system calls est implementada em bibliotecas que so


carregadas com as aplicaes
Motivos para utilizar APIs em vez dos system calls directamente

UA

Portabilidade independncia da plataforma

Esconder complexidade inerente aos system calls

Acrscimo de funcionalidades que optimizam o desempenho

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Exemplo de utilizao de chamadas ao sistemao


Sequncia de System Calls para copiar o contedo de um ficheiro para outro

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Exemplo de API
Funo de leitura de ficheiro

Sao passados funo:

descritor do ficheiro (fd)

endereo do buffer onde vo ser depositados os bytes lidos (*buf)

nmero mximo de bytes que estamos dispostos a ler (count)

A funo devolve o nmero de bytes lidos ou erro

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Implementao de Chamadas ao sistema


A cada system call associado um nmero

mantida uma tabela indexada pelo nmero da system call

A system call interface invoca a funcionalidade no kernel e devolve o status e


o valor de retorno

O invocador no sabe pormenores de implementao:

UA

apenas sabe usar API

biblioteca que implementa API esconde detalhes

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Mecanismos das chamadas ao sistema

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Linux system calls numbers

/usr/src/kernels/2.6.27.41-170.2.117.fc10.i686/include/asm-x86/unistd_32.h
UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Standard C Library Example


Programa em C que invoca a funo de biblioteca printf() (biblioteca stdio.h), que
por sua vez chama o system call write()

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Passagem de parmetros s system calls


Para alem do ndice da system call necessrio passar ao kernel os
parmetros da funo.
Alternativas possveis:

UA

registos do CPU, mas pode haver mais parmetros que registos


colocar parmetros em tabela. Passar endereo da tabela num registo.
Utilizado em Linux e Solaris
biblioteca faz push para o stack. Kernel faz pop do stack

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Passagem de parmetros por referncia (tabela)

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Tipos de system calls


Controle de Processos
fork(), exec(), wait(), exit(), kill(), ...
Gesto de Ficheiros
open(), creat(), read(), write(), seek(), ...
Gesto de Perifricos
mount(), umount(), ioctl(), read(), write(), ...
Informao e manuteno
stat(), time(), chmod(), getpid(), alarm(), sleep(), ...
Comunicaes
socket(), bind(), connect(), send(), receive(), ...
IPC
pipe(), dup(), shmat(), shmget(), nmap(), ...
Debug
ptrace()
UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Interface com o sistema operativo: chamadas ao sistema

Tipos de system calls Exemplos de Windows e Unix

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Sumrio

Sumrio

Servios do sistema operativo


Interface com o utilizador
Interface com o sistema operativo: Chamadas ao
sistema
Programas de sistema
Desenho e implementao de sistema operativo
Gerao e inicializao do sistema operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Programas de Sistema

Programas de Sistema
Software de sistema permite ter um
desenvolvimento e execuo de aplicaes:

ambiente

manipulao de ficheiros

suporte a linguagens de programao

carregamento e execuo de programas

obter informao sobre estado do sistema e histrico

acesso remoto e comunicao entre utilizadores

apropriado

para

Maioria dos utilizadores (excepto os programadores):

UA

v o sistema operativo como os programas de sistema

nao se apercebe da existncia das chamadas ao sistema

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Sumrio

Sumrio

Servios do sistema operativo


Interface com o utilizador
Interface com o sistema operativo: Chamadas ao
sistema
Programas de sistema
Desenho e implementao de sistemas operativos
Gerao e inicializao do sistema operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Concepo e implementao
Nao existe uma nica receita. Vrias alternativas com provas dadas
Estrutura interna varia muito
Definio de objectivos para:

utilizador: convenincia, facilidade de uso, confiabilidade, segurana,


desempenho
sistema: facilidade de
confiabilidade, eficincia

desenho

implementao,

flexibilidade,

Princpio da separao entre poltica e mecanismo:

UA

poltica: deciso sobre o que fazer; fim a atingir

mecanismo: como o fazer; implementar a poltica

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Estrutura simples: MS-DOS


Concebido para fornecer o mximo de funcionalidades num mnimo de espao

UA

No um sistema modular

Sem separao das interfaces e funcionalidades

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Estruturao em camadas
O SO dividido em vrias camadas ou nveis, cada um construdo em cima do
anterior

O nvel mais baixo o hardware

O mais elevado a interface utilizador

O princpio da modularidade implica que os nveis sejam escolhidos de forma


a que cada um s utilize servios dos nveis inferiores

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Estrutura do sitema UNIX


O sistema Unix original era limitado pelas funcionalidades do hardware
Constitudo por duas partes:

Programas de sistema

Kernel (ncleo do SO):

consistido por toda a funcionalidade que est abaixo da interface dos


system calls

Fornece a gesto de processos, de memria e de ficheiros, os


protocolos de rede, assim como as funes de mais baixo nvel

Muitas funcionalidades para um s nvel

Sistema pouco modular

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Estrutura do sitema UNIX

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Estrutura de sistema Microkernel


Problema/Motivao
Aumento da dimenso do ncleo dificulta a sua gesto/manuteno
Soluo
Ncleos pequenos: apenas colocado no ncleo o essencial

Gesto de memria, gesto de processos e comunicao entre processos

O ncleo suporta a comunicao entre processos atravs de mensagens

Vantagens
Fcil estender o SO: novos servios so adicionados no espao do
utilizador, no requerem a alterao do ncleo
Fiabilidade: a maior parte dos servios correm em modo utilizador (vs
modo ncleo)
Desvantagens
Desempenho: a comunicao entre processos passa pelo ncleo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Estruturao por mdulos


A maioria dos sistemas operativos modernos utilizam o conceito de mdulo para
implementar o ncleo

Utilizam uma aproximao orientada aos objectos

Cada componente fundamental isolado

Os mdulos comunicam por interfaces bem definidas

Os mdulos podem ser carregados dinamicamente no ncleo

Aproximao semelhante das camadas mas mais flexvel e dinmica - ex: Sun Solaris

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Mquina Virtual
Mquinas virtuais (VM - virtual machines) extendem a abordagem por
camadas: encapsulam o hardware e sistema operativo como se fossem
hardware
Oferecem aos clientes uma interface idntica a oferecida por determinada
arquitectura de hardware
Podem ter como clientes sistemas operativos a correr sobre o hardware
virtualizado
Os recurso fsicos do computador so partilhados pelas diferentes instncias
das mquinas virtuais
Oferecem ao cliente a iluso de ter uma mquina s para si

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Mquina Virtual

(a) Sistema Normal

UA

2011 Ibria Medeiros. Todos os direitos reservados

(b) Mquina Virtual

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Exemplo do VMware

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Desenho e implementao de sistemas operativos

Mquina virtual Java (JVM)


Aplicaes fazem uso da Java API, ignorando o hardware
Compilador de Java gera java bytecode
Verificador de bytecode assegura certos invariantes:

permite proteco no acesso memria sem ajuda do hardware

til para hardware restricto (e.g. telemveis)

Runtime executa bytecode com interpretador ou compilador JIT (just-in-time).

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Sumrio

Sumrio

Servios do sistema operativo


Interface com o utilizador
Interface com o sistema operativo: Chamadas ao
sistema
Programas de sistema
Desenho e implementao de sistemas operativos
Gerao e inicializao do sistema operativo

UA

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Gerao e inicializao do sistema operativo

Gerao do sistema operativo


Os sistemas operativos so concretizados de forma a poderem correr em
diferentes mquinas
Tm de ser configurados e gerados para uma mquina especfica
Configurao e gerao

Programa system generation SYSGEN

Programa que obtm a informao especfica da mquina

UA

Ficheiro

Utilizador

Determina ele prprio o hardware existente

Usada para (Dimenso vs generalidade):

Compilar uma verso especfica do sistema operativo

Ou

Seleccionar os mdulos utilizados no processo de ligao (link) dos mdulos


que constituiro o sistema operativo (o cdigo no recompilado)

Ou

Seleccionar o cdigo a executar (todo o cdigo faz parte do sistema operativo

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Captulo II Estruturas dos Sistemas Operativos

Gerao e inicializao do sistema operativo

Inicializar o sistema (booting the system)


Bootstrap program ou bootstrap loader

Pequeno pedao de cdigo

Localiza o ncleo, carrega-o para memria e d incio sua execuo

Este procedimento pode ser feito em duas fases (por exemplo, nos PC)

Um bootstrap loader simples carrega um boot program mais complexo a partir


do disco, o qual carrega o ncleo

Quando o CPU recebe um evento de reset:

O registo IP inicializado com um endereo de memria pr-definido

Neste endereo de memria est o Bootstrap program

Este programa est em ROM (read only memory) (firmware)

Sistemas que guardam o SO em ROM

PDA, telefones celulares,....

SOs pequenos

Alteraes no SO

UA

Problema pode ser resolvido com EPROM erasable programmable ROM

2011 Ibria Medeiros. Todos os direitos reservados

Sistemas Operativos

Você também pode gostar