Você está na página 1de 26

Departamento de Engenharia Informtica

Introduo
Sistemas Operativos 2010/ 2011

2010

Jos Alves Marques / Carlos Ribeiro

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

2010

Jos Alves Marques / Carlos Ribeiro

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

2010

Jos Alves Marques / Carlos Ribeiro

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?

2010

Jos Alves Marques / Carlos Ribeiro

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
2010 Jos Alves Marques / Carlos Ribeiro 5

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

2010

Jos Alves Marques / Carlos Ribeiro

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
2010 Jos Alves Marques / Carlos Ribeiro 7

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

2010

Jos Alves Marques / Carlos Ribeiro

Page 4
4

Departamento de Engenharia Informtica

CRITRIOS DE QUALIDADE DO SISTEMAS OPERATIVOS


2010 Jos Alves Marques / Carlos Ribeiro 9

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

2010

Jos Alves Marques / Carlos Ribeiro

10

Page 5
5

Departamento de Engenharia Informtica

2010

Jos Alves Marques / Carlos Ribeiro

11

Departamento de Engenharia Informtica

2010

Jos Alves Marques / Carlos Ribeiro

12

Page 6
6

Departamento de Engenharia Informtica

UMA PERSPECTIVA DA EVOLUO HISTRICA


2010 Jos Alves Marques / Carlos Ribeiro 13

Departamento de Engenharia Informtica

Evoluo histrica

2010

Jos Alves Marques / Carlos Ribeiro

14

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?
2010 Jos Alves Marques / Carlos Ribeiro 15

Departamento de Engenharia Informtica

Monitor de Controlo

2010

Jos Alves Marques / Carlos Ribeiro

16

Page 8
8

Departamento de Engenharia Informtica

Tratamento em Lotes (Batch)

2010

Jos Alves Marques / Carlos Ribeiro

17

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
2010 Jos Alves Marques / Carlos Ribeiro 18

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

2010

Jos Alves Marques / Carlos Ribeiro

19

Departamento de Engenharia Informtica

Multiprogramao
Utiliza o CPU t Utilizao do processador num sistema monoprogramado Espera m 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

Utilizao do processador num sistema multiprogramado

2010

Jos Alves Marques / Carlos Ribeiro

20

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)
2010 Jos Alves Marques / Carlos Ribeiro 21

Departamento de Engenharia Informtica

Consequncias do Tempo Partilhado


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

2010

Jos Alves Marques / Carlos Ribeiro

22

Page 11
11

Departamento de Engenharia Informtica

Memria Virtual

! Elimina a restrio fsica imposta pelo tamanho da memria fsica permitindo um grau de multiprogramao muito superior ! Possvel pela propriedade da localidade
2010 Jos Alves Marques / Carlos Ribeiro 23

Departamento de Engenharia Informtica

Interface Grfica

2010

Jos Alves Marques / Carlos Ribeiro

24

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
2010 Jos Alves Marques / Carlos Ribeiro 25

Departamento de Engenharia Informtica

TIPOS DE SISTEMAS OPERATIVOS


2010 Jos Alves Marques / Carlos Ribeiro 26

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.)

2010

Jos Alves Marques / Carlos Ribeiro

27

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.
2010 Jos Alves Marques / Carlos Ribeiro 28

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.
2010 Jos Alves Marques / Carlos Ribeiro 29

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.
2010 Jos Alves Marques / Carlos Ribeiro 30

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

2010

Jos Alves Marques / Carlos Ribeiro

31

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 ! No possvel responsabilizar o criador do software ! Linux software livre (free software) open source, segue a licena GPL (General Public License)
2010 Jos Alves Marques / Carlos Ribeiro 32

Page 16
16

Departamento de Engenharia Informtica

ORGANIZAO DO SISTEMA OPERATIVO


2010 Jos Alves Marques / Carlos Ribeiro 33

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
2010 Jos Alves Marques / Carlos Ribeiro 34

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)

2010

Jos Alves Marques / Carlos Ribeiro

35

Departamento de Engenharia Informtica

Base da segurana do sistema


Programa A
Call Open Open_syscall

excepo

Ncleo

Open ()

Tabela de Interrupes
Modo Modo Utilizador Ncleo

Memria do computador (podemos assumir endereamento real)

2010

Jos Alves Marques / Carlos Ribeiro

36

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

2010

Jos Alves Marques / Carlos Ribeiro

37

Departamento de Engenharia Informtica

Modo Ncleo vs. Modo Utilizador


Programa do Utilizador Executvel
Rotina de biblioteca de chamada funo sistema X trap

Agulhagem Sistema operativo Funo sistema A


2010

Funo sistema Z
38

Jos Alves Marques / Carlos Ribeiro

Page 19
19

Departamento de Engenharia Informtica

Chamada Sistema
Chamada Chamada sistema sistema

Formata parmetros Formata parmetros Retorno da chamada sistema

Verifica se endere os so vlidos

Guarda par metros na pilha e em registos Excepo

Retira par metros de sada

Modo utilizador Modo ncleo

RTI

2010

Jos Alves Marques / Carlos Ribeiro

39

Departamento de Engenharia Informtica

ORGANIZAO DO SISTEMA OPERATIVO


(ALTERNATIVAS / SUPORTE EVOLUO)

2010

Jos Alves Marques / Carlos Ribeiro

40

Page 20
20

Departamento de Engenharia Informtica

Estrutura Monoltica

! ! ! ! ! !

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?

2010

Jos Alves Marques / Carlos Ribeiro

41

Departamento de Engenharia Informtica

Sistemas em Camadas

! ! ! ! !

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 / Carlos Ribeiro 42

2010

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:


! ! ! !
2010

Gesto de processos Memria virtual Device drivers Sistema de ficheiro


Jos Alves Marques / Carlos Ribeiro 43

Departamento de Engenharia Informtica

Micro-Ncleo
Servidores

Sistema de ficheiros

Sistema de

Gestores de perifricos

Gestores de

Protocolos de rede Comunicao entre processos

Protocolos

Aplicaes

Barreira de proteco Microncleo do sistema operativo


Microncleo do sistema operativo

2010

Jos Alves Marques / Carlos Ribeiro

44

Page 22
22

Departamento de Engenharia Informtica

Micro-Ncleo vs Monoltico

2010

Jos Alves Marques / Carlos Ribeiro

45

Departamento de Engenharia Informtica

OS SISTEMAS DE REFERNCIA
2010 Jos Alves Marques / Carlos Ribeiro 46

Page 23
23

Departamento de Engenharia Informtica

Evoluo Unix

2010

Jos Alves Marques / Carlos Ribeiro

47

Departamento de Engenharia Informtica

2010

Jos Alves Marques / Carlos Ribeiro

48/51

Page 24
24

Departamento de Engenharia Informtica

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

Disk device drivers Hardware

Gesto de Processos

Gesto de Memria

Gesto de Perifricos

Sistemas de Ficheiros

Comunicao

2010

Jos Alves Marques / Carlos Ribeiro

49

Departamento de Engenharia Informtica

2010

Jos Alves Marques / Carlos Ribeiro

50

Page 25
25

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

2010

Jos Alves Marques / Carlos Ribeiro

51

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 Plug and Play manager Power manager Virtual memory Configuration manager (registry) Local procedure call Win32 USER GDI

Device and file system drivers

Graphics drivers

Kernel Hardware abstraction layer (HAL)

2010

Jos Alves Marques / Carlos Ribeiro

52

Page 26
26

Você também pode gostar