01 - intro 2010

26
1 Page 1 Departamento de Engenharia Informática Introdução Sistemas Operativos 2010/ 2011 2010 1 José Alves Marques / Carlos Ribeiro Departamento de Engenharia Informática Primeiras Perguntas Onde está o valor de um sistema informático? O valor está na automatização dos processos de negócio efectuado pelas Aplicações Informáticas Nos dados de negócio 2010 José Alves Marques / Carlos Ribeiro 2

Upload: catwoman12

Post on 26-Nov-2015

21 views

Category:

Documents


3 download

TRANSCRIPT

  • 1 Page 1

    Departamento de Engenharia Informtica

    Introduo

    Sistemas Operativos

    2010/ 2011

    2010 1 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 2

  • 2 Page 2

    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 3

    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 4

  • 3 Page 3

    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?

    2.Biblioteca de Funes do Sistema Operativos API para interagir com recursos do SO Exemplos?

    2010 Jos Alves Marques / Carlos Ribeiro 6

  • 4 Page 4

    Departamento de Engenharia Informtica

    Misso do Sistema Operativo

    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

    Hardware

    Sistema Operativo

    Aplicaes Aplicaes Aplicaes

    Mquina Fsica

    Mquina Virtual

    7

    Departamento de Engenharia Informtica

    2010 Jos Alves Marques / Carlos Ribeiro

    Recursos Lgicos Recursos Fsicos virtualizados

    Processos CPU

    Espaos de endereamento virtuais Memria RAM, Unidade de Gesto de Memria

    Ficheiros Discos e dispositivo de memria de massa

    Perifricos virtuais Perifricos fsicos

    Canais de Comunicao Partilha de memria, redes de dados

    Utilizadores Utilizadores humanos

    8

  • 5 Page 5

    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

  • 6 Page 6

    Departamento de Engenharia Informtica

    2010 Jos Alves Marques / Carlos Ribeiro 11

    Departamento de Engenharia Informtica

    2010 Jos Alves Marques / Carlos Ribeiro 12

  • 7 Page 7

    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

  • 8 Page 8

    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

  • 9 Page 9

    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

  • 10 Page 10

    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

    2010 Jos Alves Marques / Carlos Ribeiro

    Utiliza o

    CPU Espera fim

    de Entrada/Sada

    Utiliza o

    CPU Entrada /Sada

    Utilizao do processador num sistema monoprogramado t

    Programa J Programa J + 1 S.O S.O S.O

    Programa J+3 S.O

    Programa J + 2

    20

    Utilizao do processador num sistema multiprogramado

  • 11 Page 11

    Departamento de Engenharia Informtica

    Tempo Partilhado

    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

    S.O S.O Utilizador N

    Utilizador N + 1

    Utilizador N +2 S.O

    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

  • 12 Page 12

    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

  • 13 Page 13

    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

  • 14 Page 14

    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.

    2010 Jos Alves Marques / Carlos Ribeiro

    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.

    28

  • 15 Page 15

    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

  • 16 Page 16

    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

  • 17 Page 17

    Departamento de Engenharia Informtica

    ORGANIZAO DO SISTEMA OPERATIVO

    2010 Jos Alves Marques / Carlos Ribeiro 33

    Departamento de Engenharia Informtica

    Organizao Tpica

    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

    Biblioteca de Funes do Sistema

    Hardware

    Gesto de Processos

    Gesto de Memoria

    Gestores de Perifricos

    Sistema de Ficheiros

    Comunicao entre Processos

    34

  • 18 Page 18

    Departamento de Engenharia Informtica

    Base da segurana do sistema

    Problema base

    2010 Jos Alves Marques / Carlos Ribeiro

    Memria do computador (podemos assumir endereamento real)

    Programa A

    Call Open

    Ncleo

    Open ()

    35

    Departamento de Engenharia Informtica

    Base da segurana do sistema

    2010 Jos Alves Marques / Carlos Ribeiro

    Memria do computador (podemos assumir endereamento real)

    Programa A

    Call Open

    Ncleo

    Open ()

    Open_syscall

    Tabela de Interrupes

    excepo

    Modo Utilizador Modo Ncleo

    36

  • 19 Page 19

    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

    2010 Jos Alves Marques / Carlos Ribeiro

    Rotina de biblioteca de chamada funo sistema X

    Programa do Utilizador Executvel

    Sistema operativo

    Agulhagem

    Funo sistema A

    Funo sistema Z

    trap

    38

  • 20 Page 20

    Departamento de Engenharia Informtica

    Chamada Sistema

    2010 Jos Alves Marques / Carlos Ribeiro

    Formata parmetros

    Chamada sistema

    Excep o RTI

    Guarda par metros na pilha e em registos Guarda par metros na pilha e em registos

    Verifica se endere os Verifica se endere os so v lidos so v lidos

    Formata parmetros

    Chamada sistema

    Excep o Modo utilizador Modo ncleo

    Retira par metros de sa da Retira par metros de sa da

    RTI

    Retorno da chamada sistema Retorno da chamada sistema

    39

    Departamento de Engenharia Informtica

    ORGANIZAO DO SISTEMA OPERATIVO (ALTERNATIVAS / SUPORTE EVOLUO)

    2010 Jos Alves Marques / Carlos Ribeiro 40

  • 21 Page 21

    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?

    2010 Jos Alves Marques / Carlos Ribeiro 42

  • 22 Page 22

    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: Gesto de processos Memria virtual Device drivers Sistema de ficheiro

    2010 Jos Alves Marques / Carlos Ribeiro 43

    Departamento de Engenharia Informtica

    Micro-Ncleo

    2010 Jos Alves Marques / Carlos Ribeiro

    Sistema de

    Barreira de proteco Microncleo do sistema operativo

    Gestores de Protocolos Comunicao entre processos

    Sistema de ficheiros

    Microncleo do sistema operativo

    Aplicaes Gestores de perifricos Protocolos de rede

    Servidores

    44

  • 23 Page 23

    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

  • 24 Page 24

    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

  • 25 Page 25

    Departamento de Engenharia Informtica

    Unix

    2010 Jos Alves Marques / Carlos Ribeiro

    System calls

    Terminal handing Sockets File naming Map- ping

    Page faults Signal

    handling Process

    Creation and Termination

    Raw tty

    Cooked tty

    Interrups and traps

    Line disciplines

    Network protocols

    File systems

    Virtual memory

    Routing Buffer cache Page cache

    Process scheduling

    Character devices

    Netwok device drivers

    Disk device drivers

    Process dispatching

    Hardware

    Gesto de Processos

    Gesto de Memria

    Gesto de Perifricos

    Sistemas de Ficheiros

    Comunicao

    49

    Departamento de Engenharia Informtica

    2010 Jos Alves Marques / Carlos Ribeiro 50

  • 26 Page 26

    Departamento de Engenharia Informtica

    Windows NT

    2010 Jos Alves Marques / Carlos Ribeiro

    Service processes

    System Support

    processes

    User applications

    Environment subsystems

    Subsystem DLLs

    User mode

    Kernel mode

    Windowing and graphics

    Executive

    Kernel Device drivers

    Hardware abstraction layer (HAL)

    51

    Departamento de Engenharia Informtica

    Windows NT

    2010 Jos Alves Marques / Carlos Ribeiro

    Ntdll.dll

    System service dispatcher

    I/O manager

    Device and file system

    drivers

    (Kernel-mode callable interfaces)

    File system cache

    Object m

    anager

    Win32 USER GDI

    Graphics drivers

    Kernel

    Hardware abstraction layer (HAL)

    Plug and Play m

    anager

    Power m

    anager

    Security reference m

    onitor

    Virtual mem

    ory

    Process and threads

    Configuration m

    anager (registry)

    Local procedure call

    Sistem threads

    User mode

    Kernel mode

    52