Você está na página 1de 25

Departamento de Engenharia Informtica

Introduo
Sistemas Operativos 2009/ 2010

Departamento de Engenharia Informtica

Primeiras Perguntas
Onde est o valor de um sistema informtico? O valor est na automatizao dos processos de negcio efectuado pelas Aplicaes Informticas Nos dados de negcio

2009

Jos Alves Marques

Page 1
1

Departamento de Engenharia Informtica

Primeiras Perguntas
Para que serve o Sistema Operativo? Para suportar eficientemente as aplicaes Para garantir segurana e fiabilidade das operaes Garantir que no so afectadas pela mudana de hardware e configurao

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Para que serve um Sistema Operativo?


Gerir Recursos
Seria difcil s aplicaes controlar todos os aspectos da mquina fsica (interrupes, organizao da memria, dispositivos, ...) SO permite abstrair os recursos fsicos, oferecendo s aplicaes um conjunto de recursos lgicos. Exemplos?

2009

Jos Alves Marques

Page 2
2

Departamento de Engenharia Informtica

Alternativas ao Sistema Operativo


As linguagens de programao podiam produzir todo o cdigo necessrio para que um programa se executasse directamente sobre o hardware. Desvantagens?
O esforo de programao seria muito grande Um conjunto significativo de funes seria repetido Cada aplicao poderia optimizar o seu desempenho mas globalmente a mquina ficaria subaproveitada. No seria possvel ter politicas globais de segurana, tolerncia a faltas, optimizao
2009 Jos Alves Marques

Departamento de Engenharia Informtica

Para que serve um Sistema Operativo?


Fornecer uma interface de acesso / gesto dos recursos lgicos Existem duas interfaces:
1. Interface Operacional
Comandos para usar / criar / eliminar recursos Exemplos? API para interagir com recursos do SO Exemplos?

2. Biblioteca de Funes do Sistema Operativos

2009

Jos Alves Marques

Page 3
3

Departamento de Engenharia Informtica

Misso do Sistema Operativo

Aplicaes
Mquina Virtual

Aplicaes

Aplicaes

Sistema Operativo
Mquina Fsica

Hardware Criar uma mquina virtual sobre a mquina fsica que oferea os recursos lgicos bsicos necessrios ao desenvolvimento das aplicaes Independente do hardware onde se executa
2009 Jos Alves Marques

Departamento de Engenharia Informtica

Recursos Lgicos Processos Espaos de endereamento virtuais Ficheiros Perifricos virtuais Canais de Comunicao Utilizadores

Recursos Fsicos virtualizados CPU Memria RAM, Unidade de Gesto de Memria Discos e dispositivo de memria de massa Perifricos fsicos Partilha de memria, redes de dados Utilizadores humanos

2009

Jos Alves Marques

Page 4
4

Departamento de Engenharia Informtica

CRITRIOS DE QUALIDADE DO SISTEMAS OPERATIVOS


2009 Jos Alves Marques

Departamento de Engenharia Informtica

Critrios de Qualidade do SO
Desempenho
Gesto eficiente dos recursos fsicos que suportam os recursos lgicos

Segurana.
Isolamento dos Utilizadores Permitir partilha segura de recursos lgicos

Fiabilidade e Disponibilidade
Detectar um conjunto de faltas Tolerar um conjunto de erros

Interface de programao completa e simples.


Facilitar a concepo das aplicaes, a sua manuteno e portabilidade

Interface de operao e gesto dos recursos lgicos fcil de utilizar

2009

Jos Alves Marques

Page 5
5

Departamento de Engenharia Informtica

2009

Jos Alves Marques

Departamento de Engenharia Informtica

2009

Jos Alves Marques

Page 6
6

Departamento de Engenharia Informtica

UMA PERSPECTIVA DA EVOLUO HISTRICA


2009 Jos Alves Marques

Departamento de Engenharia Informtica

Evoluo histrica
Sem sistema operativo (UNIVAC, IBM 701, IBM 650) Tratam ento por lotes rudimentar Tratamento por lotes (IBM 7090) Multiprogram ao (Multics) Tem po partilhado Mem ria virtual (UNIX) Sistemas distribudos 1946 1950 1 gerao: interruptores e vlvulas 1960 2 gerao: transstores 1970 3 gerao: circuitos integrados 1980 4 gerao: computadores pessoais

2009

Jos Alves Marques

Page 7
7

Departamento de Engenharia Informtica

Monitor de Controlo
Permite ao utilizador:
Carregar programas em memria, edit-los, etc. Resultados dos programas: listagens, fitas perfuradas

Cada utilizador tem um determinado tempo atribudo durante o qual tem o computador apenas para si O monitor formado por um conjunto de utilitrios:
Interpretador de linguagem de comando Compilador, Assemblador (Assembler) Editor de ligaes (linker) Carregador de programas em memria (loader) Biblioteca de rotinas para controlo de perifricos (consola, leitor de cartes, etc.)

Limitao Principal?
2009 Jos Alves Marques

Departamento de Engenharia Informtica

Monitor de Controlo

Unidade Central de Processamento

Dados Programa Monitor

Memria

Programa

Leitor de cartes

Impressora

2009

Jos Alves Marques

Page 8
8

Departamento de Engenharia Informtica

Tratamento em Lotes (Batch)

Dados

Unidade Central de Processamento

Programa Monitor

Memria

Programa J Dados J Programa J + 1 Dados J + 1

Leitor de cartes Memria Secundria


2009 Jos Alves Marques

Impressora

Departamento de Engenharia Informtica

Tratamento em Lotes (cont.)


Os perifricos mecnicos (ex.: impressoras, leitores/perfuradores de fita) eram muito lentos quando comparados com a velocidade de processamento do computador Soluo inicial:
Separar as Entradas/Sadas do processamento Entrada:
Computador auxiliar l os trabalhos e executar escreve-os para ficheiros em banda magntica Quando o trabalho em curso termina o SO vai lista de trabalhos e selecciona o prximo a executar-se

Sada
Em vez de imprimir directamente os programas escrevem a sada em ficheiros que so enviados para a impressora quando a aplicao termina - spooling

Evoluo:
Os perifricos executam tarefas autnomas e avisam o processador do fim da sua execuo atravs de interrupes. Execuo em paralelo dos programas e das E/S
2009 Jos Alves Marques

Page 9
9

Departamento de Engenharia Informtica

Multiprogramao
O mecanismo de interrupes permite multiplexar o processador entre vrias actividades concorrentes.
No exemplo anterior entre um programa e as entradas/saidas, Mas esta capacidade de alternar a execuo pode ser estendida multiplexagem de vrios programas residentes na memria.

Execuo concorrente de vrios programas:


permite optimizar a utilizao do processador ex.: Programa P1 acede ao disco e fica bloqueado enquanto o controlador de disco funciona; durante esse tempo, o Programa 2 pode ser executado pelo processador

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Multiprogramao
Utiliza o CPU t Utilizao do processador num sistema monoprogramado Espera fim de Entrada/Sada Utiliza o CPU Entrada /Sada

Programa J S.O

Programa J+1

S.O

Programa J+2

S.O

Programa J+3 S.O

2009

Jos Alves Marques

Page 10
10

Departamento de Engenharia Informtica

Tempo Partilhado
Utilizador N S.O Utilizador N+1 S.O Utilizador N +2 S.O

Cria a iluso que o computador est permanentemente disponvel para o utilizador Impulsionado por:
Aplicaes em que vrios utilizadores interactuavam directamente com o sistema (sistemas de reservas) Descida dos preos dos terminais

Possvel porque a maioria das aplicaes interactivas usa pouco o processador Ex.: CTSS (incio dos anos 60)
2009 Jos Alves Marques

Departamento de Engenharia Informtica

Consequncias do Tempo Partilhado


Reviso dos algoritmos de escalonamento Definio de mecanismos de segurana Aparecimento dos sistemas de ficheiros

2009

Jos Alves Marques

Page 11
11

Departamento de Engenharia Informtica

Memria Virtual

Espao virtual do processo A Memria Secundria

Espao virtual do processo B

Espao virtual do processo C

Elimina a restrio fsica imposta pelo tamanho da memria fsica permitindo um grau de multiprogramao muito superior Posssvel pela propriedade da localidade
2009 Jos Alves Marques

Memria Primria

Departamento de Engenharia Informtica

Interface Grfica

2009

Jos Alves Marques

Page 12
12

Departamento de Engenharia Informtica

Sistemas Distribudos
Consequncia da evoluo de:
Redes de dados Computadores pessoais PC Sistemas abertos (normalizao oficial e de facto) Custo e desempenho da electrnica digital

Aplicaes iniciais: Mail, FTP SO tem vindo a englobar funcionalidade dos sistemas distribudos
Exemplos: protocolos de rede, sistema de ficheiros distribudo
2009 Jos Alves Marques

Departamento de Engenharia Informtica

TIPOS DE SISTEMAS OPERATIVOS


2009 Jos Alves Marques

Page 13
13

Departamento de Engenharia Informtica

Tempo Virtual vs. Tempo Real


Tempo virtual:
O tempo de execuo dos programas no tem relao com o tempo cronolgico exterior ao computador. So os sistemas habituais utilizados na maioria dos computadores quer os que se executam nas mquinas clientes, quer nos servidores (ex: Windows, Linux, MAC/OS)

Tempo real:
Tentam garantir que o computador produz uma resposta a um acontecimento externo num intervalo de tempo determinado. (Caso contrrio o sistema no cumpre a sua especificao falha.)

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Sistemas de Tempo Real (cont.)


Os requisitos de tempo real no so idnticos para diferentes aplicaes, o que levou a distinguir dois tipos de sistemas tempo real
Tempo real relaxado ou soft real time sistema onde se admite que certas respostas a acontecimentos externos podem no ser dadas exactamente nos intervalos de tempo especficados Tempo real estrito ou hard real time sistema onde o no cumprimento de um requisito temporal corresponde a uma falha. A gesto de tempo real estrito obriga a um escalonamento de processos que torna estes sistemas totalmente incompatveis com o funcionamento em tempo virtual interactivo, por essa razo no os iremos considerar neste curso.
2009 Jos Alves Marques

Page 14
14

Departamento de Engenharia Informtica

Sistemas de Tempo Real


Inicialmente usados para controlo de processos industriais Hoje tambm usados para jogos, sistemas de controlo em automveis, avies, etc. Oferta extensa de SO de tempo real, na sua maioria usada em sistemas embebidos: Exemplos destes ncleos
VxWorks da Wind River Systems, VRTX da Mentor Graphics, LynxOS da LynuxWorks.
2009 Jos Alves Marques

Departamento de Engenharia Informtica

Sistemas Embebidos
Oferta extensa de SO usada em sistemas embebidos:
Software integrado com o hardware O sistema no oferece interface para desenvolver aplicaes

Exemplos destes ncleos


Symbian, da empresa homnima, utilizado nos telefones Nokia, Windows CE, usado nos Smartphones e pocket PC PalmOS da Palm, usado nos PDA.
2009 Jos Alves Marques

Page 15
15

Departamento de Engenharia Informtica

Sistemas Proprietrios vs. Abertos


1970s: Vasta oferta de SOs de tempo partilhado (Unix, VMS, OS390, ...) Todos eles sistemas proprietrios:
Tinham restries (legais e tcnicas) na sua utilizao e cpia Desenvolvidos pelo fabricante de hardware Cdigo assembly, no divulgado Gera dependncias: aplicao / SO / Plataforma

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Sistemas Abertos
Sistema portvel e interopervel Oferece uma interface normalizada Gnese no sistema Unix
Divulgao do cdigo fonte Interfaces de programao standard Encorajava o desenvolvimento de SW e HW por terceiros

Linux software livre (free softeware) open source, segue a licena GPL
2009 Jos Alves Marques

Page 16
16

Departamento de Engenharia Informtica

ORGANIZAO DO SISTEMA OPERATIVO


2009 Jos Alves Marques

Departamento de Engenharia Informtica

Organizao Tpica
Biblioteca de Funes do Sistema Gesto de Gesto de Gestores de Sistema de Comunicao Processos Memoria Perifricos Ficheiros entre Processos Hardware
SO divide-se em: Ncleo (kernel) dividido em mdulos Biblioteca das funes sistema (system calls) usadas pelas aplicaes Processos sistema
2009 Jos Alves Marques

Page 17
17

Departamento de Engenharia Informtica

Base da segurana do sistema


Problema base
Programa A
Call Open

Ncleo
Open ()

Memria do computador (podemos assumir endereamento real)

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Base da segurana do sistema


Programa A
Call Open Open_syscall

excepo

Ncleo

Open ()

Tabela de Interrupes
Modo Utilizador Modo Ncleo

Memria do computador (podemos assumir endereamento real)

2009

Jos Alves Marques

Page 18
18

Departamento de Engenharia Informtica

Modo Ncleo vs. Modo Utilizador


Processos (aplicaes) dos utilizadores no podem interferir com dados/execuo do SO. Devem tambm estar vedadas s aplicaes dos utilizadores a execuo de determinadas instrues. Exemplos? Tudo se baseia no processador: espaos de endereamento disjuntos, e diferentes modos de execuo Barreira de proteco
Para saltar essa barreira, a aplicao tem de invocar uma interrupo de software

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Modo Ncleo vs. Modo Utilizador


Programa do Utilizador Executvel
Rotina de biblioteca de chamada funo sistema X trap Modo utilizador (no privilegiado) Modo sistema (privilegiado)

Agulhagem Sistema operativo

Funo sistema A

Funo sistema Z

2009

Jos Alves Marques

Page 19
19

Departamento de Engenharia Informtica

Chamada Sistema
Chamada sistema Chamada sistema

Formata parmetros Formata parmetros

Retorno da chamadasistema Verifica seendere os so vlidos

Guarda par metrosna pilhae em registos Excep o Modo utilizador Modo ncleo

Retira par metros de sada

RTI

2009

Jos Alves Marques

Departamento de Engenharia Informtica

ORGANIZAO DO SISTEMA OPERATIVO


(ALTERNATIVAS / SUPORTE EVOLUO)
2009 Jos Alves Marques

Page 20
20

Departamento de Engenharia Informtica

Estrutura Monoltica
Aplicaes Aplicaes

Bibliotecas de chamadas sistema Barreira de proteco Ncleo do sistema operativo Gestores de perifricos

Um nico sistema Internamente organizado em mdulos Estruturas de dados globais Problema: como dar suporte evoluo
Em particular, novos perifricos

Soluo para este caso particular: gestores de dispositivos (device drivers) Problemas?

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Sistemas em Camadas
Aplicaes Chamadas sistem a

Sistem a de ficheiros

Comunicao e E/S

Gesto de mem ria Gesto de processos

Cada camada usa os servios da camada precedente Fcil modificar cdigo de uma camada Mecanismos de proteco maior segurana e robustez Influenciou arquitecturas como Intel Desvantagem principal?
Jos Alves Marques

2009

Page 21
21

Departamento de Engenharia Informtica

Micro-ncleo
Propostas de investigao separao entre: Um micro-ncleo de reduzidas dimenses e que s continha o essencial do sistema operativo:
Gesto de fluxos de execuo - threads Gesto dos espaos de endereamento Comunicao entre processos Gesto das interrupes

Servidores sistema que executavam em processos independentes a restante funcionalidade:



2009

Gesto de processos Memria virtual Device drivers Sistema de ficheiro


Jos Alves Marques

Departamento de Engenharia Informtica

Micro-Ncleo
Servidores

Aplicaes
Sistema de ficheiros
Sistema de

Gestores de perifricos

Gestores de

Protocolos de rede Comunicao entre processos

Protocolos

Barreira de proteco Microncleo do sistema operativo


Microncleo do sistema operativo

2009

Jos Alves Marques

Page 22
22

Departamento de Engenharia Informtica

OS SISTEMAS DE REFERNCIA
2009 Jos Alves Marques

Departamento de Engenharia Informtica

Evoluo Unix
5th Edition 6th Edition Mini Unix PWB 1.0 PWB 1.2 USG 2.0 USG 3.0 Unix/TS 3.0 Unix/ TS++ TS 4.0 2.8ESD Unix-11 2.9ESD 4.2ESD Unix-32 8th Edition 4.3ESD 9th Edition System V.0 System V.2 System V.3 USG 1.0 CE Unit 1 CE Unit 2 CE Unit 3 PDP 11 Sys V

LSX

IBSD

Interdata 7th Edition

Wollongong

PWB 2.0 UnitPlus+ Unix/TS 1.0

Xonix

32V 3ES D

V7M

4ES D 2ESD 4.1ESD

2009

Jos Alves Marques

Page 23
23

Departamento de Engenharia Informtica

Unix
System calls Terminal handing Cooked tty Raw tty Line disciplines Sockets Network protocols Routing Netwok device drivers Interrups and traps File Map- Page Process naming ping faults Signal handling Creation and File Virtual Termination systems memory Buffer cache Page cache Process scheduling Process dispatching

Character devices

Disk device drivers Hardware

Gesto de Processos

Gesto de Memria

Gesto de Perifricos

Sistemas de Ficheiros

Comunicao

2009

Jos Alves Marques

Departamento de Engenharia Informtica

Windows NT
System Support processes Service processes User applications Environment subsystems

Subsystem DLLs User mode Kernel mode Executive Kernel Device drivers Hardware abstraction layer (HAL) Windowing and graphics

2009

Jos Alves Marques

Page 24
24

Departamento de Engenharia Informtica

Windows NT
Sistem threads Ntdll.dll User mode Kernel mode System service dispatcher (Kernel-mode callable interfaces) I/O manager Process and threads File system cache Security reference monitor Object manager Power manager Plug and Play manager Virtual memory Configuration manager (registry) Local procedure call Win32 USER GDI

Device and file system drivers

Graphics drivers

Kernel Hardware abstraction layer (HAL)

2009

Jos Alves Marques

Page 25
25

Você também pode gostar