Download - 01 - intro 2010
-
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