Anda di halaman 1dari 59

Sistemas

Operativos

Sistemas Operativos LEIC/LERCI 1


V1. 7/30/2002
Objectivos da Disciplina
Perceber a funo do Sistema Operativo num
sistema informtico.
Compreender a arquitectura do Sistema
Operativo.
Compreender o modelo computacional do
Sistema Operativo, conhecer os objectos mais
relevantes e a forma como podem ser
incorporados nos programas atravs das
funes sistema.
Analisar a estrutura interna do Sistema Operativo,
detalhando os principais mecanismos.
Exemplificar com sistemas operativos mais
relevantes actualmente Unix, Windows 2000.
Sistemas Operativos LEIC/LERCI 2
V1. 7/30/2002
Questes de base
Para que serve um Sistema Informtico?
Um sistema informtico tem por objectivo executar uma ou
vrias aplicaes para os seus utilizadores.
As aplicaes so o que justifica o investimento que efectuado no
sistema. atravs delas que quem realiza o investimento
espera ter o retorno na melhoria dos processos da empresa ou
da organizao.
O que necessrio para executar uma aplicao?
Um conjunto de recursos materiais onde a aplicao se
executa processador, memria, discos, terminais, etc.
vulgarmente o hardware
Um conjunto de recursos lgicos: programas, ficheiros, bases
de dados, interfaces utilizador, etc. vulgarmente o software

Sistemas Operativos LEIC/LERCI 3


V1. 7/30/2002
Recursos Lgicos
O que so os recursos lgicos ?
Os recursos lgicos so abstraces que tornam mais fcil
desenvolver e manter as aplicaes. Foram definidos de forma a
aproximar o modelo dos sistemas informticos das entidades do
mundo real que se pretendem automatizar
Ex.: Ficheiros, Tabelas, Janelas, cones, Processos, Protocolos.
Suporte para os recursos lgicos
Para construir estas abstraces sobre a mquina fsica (hardware)
so necessrios programas normalmente bastante complexos
Compiladores para traduzir os comandos das linguagens de
programao em linguagem mquina
Sistemas de gesto de base de dados para organizar a
informao
Sistemas de gesto de interfaces para criar janelas, menus,
botes.

O Sistema Operativo inclui-se na categoria dos programas


utilitrios que suportam e gerem os recursos lgicos
Sistemas Operativos LEIC/LERCI 4
V1. 7/30/2002
Misso do Sistema Operativo

Aplicaes Aplicaes Aplicaes


Mquina Virtual

Sistema Operativo
Mquina Fsica

Hardware

Criar uma mquina virtual sobre a mquina fsica que oferea


os recursos lgicos bsicos necessrios ao desenvolvimento das aplicaes

Sistemas Operativos LEIC/LERCI 5


V1. 7/30/2002
Alternativas ao Sistema Operativo
As linguagens de programao podiam produzir
todo o cdigo necessrio para que um programa
se executasse directamente sobre o hardware.
Mas:
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

Sistemas Operativos LEIC/LERCI 6


V1. 7/30/2002
Funes do Sistema Operativo

Mquina Virtual
Cria uma camada de software que esconde o hardware,
definindo uma mquina virtual que disponibiliza diversos
recursos lgicos ou objectos que podem ser utilizados pelas
aplicaes.
Simplifica a utilizao, cria modelos uniformes dos recursos
lgicos para todas as linguagens de programao, define um
modelo de segurana e de tolerncia a faltas
Gestor de Recursos
Gere e optimiza o uso dos recursos fsicos e lgicos.
Como qualquer outra funo de gesto esta actividade do
sistema operativo tem que ter em considerao diversos
objectivos como desempenho, utilizao eficaz do
investimento no hardware, controlo da utilizao dos recursos
pelos utilizadores, etc.
Sistemas Operativos LEIC/LERCI 7
V1. 7/30/2002
Principais Objectos geridos pelo
Sistema Operativo
Recurso lgico Objecto do Sistema Operativo

Os programas Processos
aplicaes fluxos de
actividade
Informao persistente Ficheiros

Entradas/Sadas Gestores de Perifricos


Device Drivers
Utilizadores Gesto dos utilizadores
Mecanismos de Segurana
Contabilizao da utilizao.
Interface Interpretador de comandos
Shell, Sistema de Janelas
Sistemas Operativos LEIC/LERCI 8
V1. 7/30/2002
Atributos de Qualidade do
Sistema
Desempenho
Gesto eficientemente dos recursos fsicos que suportam os
recursos lgicos
Segurana.
Isolamento dos Utilizadores
Permitir partilha segura de recursos lgicos
Fiabilidade.
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
Sistemas Operativos LEIC/LERCI 9
V1. 7/30/2002
Evoluo histrica
Sem Sistema Operativo (UNIVAC, IBM 701, IBM 650)
Tratamento por Lotes Rudimentar

Tratamento por Lotes (IBM 7090)

Multiprogramao (Multics)
Tempo Partilhado
Memria Virtual (UNIX)

Sistemas Distribudos

1946 1950 1960 1970 1980


1 Gerao: 2 Gerao: 3 Gerao: 4 Gerao:
Interruptores Transstores Circuitos integrados Computadores pessoais
e vlvulas

Sistemas Operativos LEIC/LERCI 10


V1. 7/30/2002
Monitor de Controlo (cont.)

Programa

Leitor de Cartes

Unidade Dados
Central de
Processamento Programa

Monitor
Memria
Impressora

Sistemas Operativos LEIC/LERCI 11


V1. 7/30/2002
Monitor de Controlo
Permite ao utilizador:
carregar programas em memria, edit-los e verificar a sua execuo
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.)

Desvantagem:
A maior parte do tempo, o computador no est a realizar trabalho til
Sistemas Operativos LEIC/LERCI 12
V1. 7/30/2002
Tratamento em Lotes (cont.)
Dados
Programa
Dados
Programa
Utilizador
N+1

Utilizador
N
Unidade Dados
Central de
Processamento Programa
Sistema Operativo
Memria
Programa J
Dados J
Programa J + 1
Dados J + 1

Sistemas Operativos LEIC/LERCI 13


V1. 7/30/2002
Tratamento em Lotes (Batch)
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:
Uma componente do SO que l os trabalhos e executar e que os escreve
para ficheiros
Quando o trabalho em cursos termina o SO vai a essa 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 -
spolling
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

Sistemas Operativos LEIC/LERCI 14


V1. 7/30/2002
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

Sistemas Operativos LEIC/LERCI 15


V1. 7/30/2002
Multiprogramao (cont.)

Utiliza Espera fim Utiliza Entrada


o de o /Sada
CPU Entrada/Sada CPU

Utilizao do processador num sistema monoprogramado

Programa Programa Programa Programa


J S.O J+1 S.O J+2 S.O J+3 S.O

Sistemas Operativos LEIC/LERCI 16


V1. 7/30/2002
Multiprogramao
A multiprogramao implica mudana de
contexto rpida, logo os programas tm de estar
em memria, seno no compensaria comut-los
devido ao elevado tempo de carregamento em
memria.
A memria um recurso limitado (na altura muito
mais do que agora):
Necessrio desenvolver mecanismos para gerir a memria de
forma a ter em memria os programas mais prioritrios ou que
esto em condies de continuar a execuo.
Soluo: Transferncia de programas - swapping (guardar P1
em disco e carregar P2 em memria)
Quando o SO traz o programa para a memria no pode ficar
limitado a ter de coloc-lo no mesmo endereo.
Soluo: cdigo recolocvel (numa outra posio de
memria)
Sistemas Operativos LEIC/LERCI 17
V1. 7/30/2002
Tempo Partilhado
Nos sistemas de tratamento em lotes os utilizadores
entregavam aos operadores do computador os seus
trabalhos (jobs) e aguardavam que lhes fosse devolvido o
resultado, normalmente sob a forma de listagem.
Os sistemas de reserva das companhias de aviao foram
pioneiros no desenvolvimento de uma classe de sistemas
em que os utilizadores interactuavam directamente com o
sistema (as reservas de lugares de avies no podiam ser
efectuadas em batch), fazendo executar os comandos pelas
aplicaes de imediato.
Assim que o preo dos perifricos (terminais) desceu
suficientemente este paradigma de utilizao era
claramente mais produtivo quer para os utilizadores finais
das aplicaes quer para os programadores.

Sistemas Operativos LEIC/LERCI 18


V1. 7/30/2002
Tempo Partilhado

Utilizador S.O Utilizador S.O Utilizador S.O


N N+1 N +2

O escalonamento dos processos tem de criar a


iluso que o computador est permanentemente
disponvel para o utilizador
O tempo partilhado possvel porque a maioria das aplicaes
interactivas usa pouco o processador.
Enquanto o utilizador edita ou interactua com as aplicaes, o
computador apenas usado numa fraco muito reduzida do tempo total.

Sistemas Operativos LEIC/LERCI 19


V1. 7/30/2002
Consequncias do Tempo
Partilhado
A multiplexagem entre vrios utilizadores
implica uma diviso equitativa do tempo
disponvel do processador, porque os
utilizadores humanos no toleram ter tempos
irregulares de funcionamento. Os algoritmos de
escalonamento do processador foram
completamente revistos
Como os utilizadores acedem directamente aos
sistema, o arquivo da informao persistente
tinha de ter uma organizao clara. Os sistemas
de ficheiros apareceram nesta altura.
Como vrios utilizadores partilham ao mesmo
tempo o sistema tiveram de se definir
mecanismos de segurana para proteger a
informao
Sistemas Operativos LEIC/LERCIe as aplicaes. 20
V1. 7/30/2002
Memoria Virtual
Os sistemas de tempo partilhado reforam a necessidade
de ter vrios programas em memria simultaneamente, para
poder efectuar com rapidez a troca dos respectivos
contextos de execuo.
A memria central rpida, mas um recurso caro; a
memria de massa muito mais econmico, mas lenta.
A anlise da execuo dos programas permite detectar que
quando um programa se executa numa dada zona a
probabilidade de aceder a instrues ou dados na
proximidade muita elevada propriedade da localidade.

A propriedade da localidade permitiu criar o conceito de um grande


espao de endereamento para os programas, mas em que s uma
fraco reduzida tem de ser carregada na memria central durante a
execuo.
Sistemas Operativos LEIC/LERCI 21
V1. 7/30/2002
Memria Virtual
A memria virtual eliminou a restrio fsica
imposta pelo tamanho da memria permitindo um
grau de multiprogramao muito superior

Espao
Virtual do
processo A
Memria fsica
Espao
Virtual do
Memria auxiliar processo B

Espao
Virtual do
Processo C

Sistemas Operativos LEIC/LERCI 22


V1. 7/30/2002
Sistemas Distribudos
Os sistemas distribudos so consequncia da
evoluo de diversos factores, alguns dos mais
importantes foram:

As Redes de Dados
Os Computadores Pessoais - PC
Os Sistemas Abertos
A evoluo do custo e desempenho da electrnica digital.

Sistemas Operativos LEIC/LERCI 23


V1. 7/30/2002
Evoluo das Redes de
Computadores
Redes Locais
Elevado dbito e custo reduzido
Consequncia : Todos os computadores ligados rede local
Redes Geograficamente Distribudas
Ligaes de longa distncia mais baratas
Dbitos crescentes
Consequncia: Todas as redes locais interligadas entre si
Redes Mveis
Dbitos crescentes para dados
Futuro
Interligao de TODOS os computadores (domsticos, )
Interligao de TODOS os dispositivos (Laptops, telemveis,
fotocopiadoras, )
Sistemas Operativos LEIC/LERCI
V1. 7/30/2002
Evoluo dos Computadores
Pessoais
Equipamentos simples, completos e autnomos
Baixo custo
Interface atraente e simples
Mercado dominado por Wintel
Uma arquitectura: Intel
Uma famlia de sistemas operativos: Windows
Uma famlia de aplicaes base: Office
Mirade de aplicaes

Sistemas Operativos LEIC/LERCI


V1. 7/30/2002
Consequncias da Evoluo dos
Computadores Pessoais
Computadores em todos os postos de trabalho,
distribudos pelas organizaes
Confiana dos utilizadores em solues descentralizadas
Facilidade de desenvolvimento de aplicaes
departamentais e pessoais
Independncia de departamentos em relao informtica
central
Quando mal gerido
Caos de aplicaes
Difcil de manter e administrar

Sistemas Operativos LEIC/LERCI


V1. 7/30/2002
Sistemas Abertos
Normalizao oficial e de facto em muitos
aspectos chave da indstria Informtica
Computadores pessoais (Wintel)
Protocolos de rede (TCP/IP, WWW, Internet)
Servidores Unix, Windows-NT, Mainframes IBM MVS
Acesso a bases de dados (SQL, ODBC)
Interligao de aplicaes (DCOM, CORBA, J2EE, .Net)
Consequncias
Tecnologia disponvel
Grande nmero de alternativas
Preos competitivos

Sistemas Operativos LEIC/LERCI


V1. 7/30/2002
Evoluo da Electrnica Digital
Transistors
per chip
1,000,000,000 1286

Lei de Moore
100,000,000

10,000,000 886 Em cada 18 meses o


786 poder de
processamento
1,000,000
duplica e os custos
mantm-se constantes
100,000

8086
10,000

1,000
1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Year
Sistemas Operativos LEIC/LERCI 28
V1. 7/30/2002
Sistemas Distribudos
Uma aplicao pode ser executada em diferentes mquinas
interligadas atravs de mecanismos que garantam a
comunicao, a segurana, a gesto de nomes e a
fiabilidade.
A distribuio mais simples conduz a uma decomposio
entre a parte cliente da aplicao, responsvel pela
interface interactiva com o utilizador, e a parte servidor,
responsvel pela execuo da lgica de negcio e pelo
acesso aos dados.
Cliente Servidor

Sistema Distribudo

Sistema Sistema
Operativo
Sistemas Operativos LEIC/LERCI Operativo 29
V1. 7/30/2002
Tipos de Sistemas Operativos

Sistemas Operativos LEIC/LERCI 30


V1. 7/30/2002
Tempo Virtual e 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
Tempo real:
tem como objectivo garantir que o computador produz uma
resposta a um acontecimento externo num intervalo de tempo
limitado previamente especificado caso contrrio o sistema
no cumpre a sua misso e portanto falha.

Sistemas Operativos LEIC/LERCI 31


V1. 7/30/2002
Sistemas Operativos Tempo
Virtual
Evoluo
Na dcada de 70 houve numerosos sistemas operativos
multiprogramados de memria virtual. A maioria estava directamente
ligada aos fabricantes dos computadores, tinham a vantagem de
explorarem eficientemente o hardware, mas o seu modelo
computacional era proprietrio dificultando o transporte das
aplicaes
Vax - Digital VMS
Data General AOS/VS
IBM OS 390
Unisys
Unix O sistema comeou como uma experincia nos Bells
Labs, teve uma enorme expanso atravs da sua divulgao
nas Universidades. A sua verso de domnio pblico Linux tem
hoje grande divulgao
Windows 2000- Evoluo do Windows com uma base
multiprogramada baseada no Windows-NT

Sistemas Operativos LEIC/LERCI 32


V1. 7/30/2002
Tempo Real
Os requisitos de tempo real no so idnticos para
aplicaes que controlam equipamentos industriais, jogos,
sistemas de travagem de automveis ou de pilotagem de
avies.
A diferena de requisitos leva 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.
Sistemas Operativos LEIC/LERCI 33
V1. 7/30/2002
Sistema Operativos Soft Real Time
As aplicaes de sistemas operativos de tempo
real relaxado so cada vez mais numerosas:
Controlo de processos
Aplicaes embarcadas
Pocket Digital Assistant - PDA
Telemveis
Jogos
Sistemas Operativos dedicados a soft real time
Palm Os, Windows CE, Epoch
VRTX, VxWorks, LynxOS
Extenses de sistemas de tempo virtual
Windows 2000
Solaris (Unix)

Sistemas Operativos LEIC/LERCI 34


V1. 7/30/2002
Arquitectura do Sistema Operativo

Sistemas Operativos LEIC/LERCI 35


V1. 7/30/2002
Estrutura Monoltica
Aplicaes
Bibliotecas do sistema
Barreira de proteco

Ncleo do Sistema Operativo

Desde a sua origem os sistemas operativos so constitudos por:


Um ncleo monoltico onde reside a maior parte da funcionalidade,
normalmente designado por kernel
Um conjunto de bibliotecas de funes sistema que so ligadas com o
cdigo das aplicaes e que permitem chamar os servios de sistema.
Uma barreira de proteco separava os espaos de endereamento onde
residia o do ncleo do sistema operativo e as aplicaes. (a grande
excepo a este princpio foi o MS-DOS e ainda hoje sofremos com isso...)
Sistemas Operativos LEIC/LERCI 36
V1. 7/30/2002
Arquitectura do Sistema Operativo
Existe uma necessidade permanente de fazer evoluir os sistemas
para se adaptarem a novos requisitos, por exemplo, novos tipos
de perifricos, novos protocolos de comunicao.
O sistema operativo um programa de grande complexidade, tal
como todos os grandes programas a sua evoluo, teste e
manuteno so difceis e sujeitos a diversos erros.
Se toda a evoluo fosse dependente do fabricante do sistema,
no seria possvel satisfazer a maioria dos requisitos e o sistema
teria rapidamente uma dimenso e uma complexidade difcil de
gerir.
Uma soluo para simplificar a evoluo dos sistemas permitir
que os utilizadores possam efectuar as alteraes para o
adaptarem a requisitos especficos.
O problema que se coloca como garantir que essa alteraes
no introduzem erros ou subvertem determinadas garantias de
segurana.

Sistemas Operativos LEIC/LERCI 37


V1. 7/30/2002
Estrutura Monoltica
Aplicaes
Bibliotecas do sistema
Barreira de proteco

Ncleo do Sistema Gestores de


Operativo Perifricos
Para permitir adaptar o sistema a diferentes perifricos era necessrio
desenvolver programas que tinha de utilizar mecanismos vedados s
aplicaes, como instrues de E/S e as interrupes.
A soluo foi permitir o desenvolvimento de gestores de perifricos
device drivers que acediam a funes internas do ncleo.
O sistema fica expansvel, mas como os programas dos gestores de
perifricos eram cdigo com os mesmo privilgios que o ncleo,
qualquer erro compromete a robustez do sistema.

Sistemas Operativos LEIC/LERCI 38


V1. 7/30/2002
Estrutura em Camadas
Para facilitar a manuteno e desenvolvimento do cdigo
do sistema foi proposto num sistema pioneiro o THE uma
decomposio interna em camadas.
A decomposio em camadas tinha por objectivo separar
para cada uma das funes principais: o cdigo e as
estruturas de dados e construir as camadas superiores com
base nas interfaces funcionais disponibilizas pelas
camadas mais internas.
A decomposio em camadas uma estruturao interna
do programa do sistema operativo
Quase todos os sistemas adoptaram uma estrutura interna
que procura estruturar em mdulos as principais
funcionalidades.

Sistemas Operativos LEIC/LERCI 39


V1. 7/30/2002
Estrutura em Camadas

Aplicaes

Interface do Sistema

Sistema de Ficheiros

Comunicao e E/S

Gesto de Memria

Gesto de Processos

As principais funes do sistema encontram-se associadas


a uma camada
Sistemas Operativos LEIC/LERCI 40
V1. 7/30/2002
Estrutura em Camadas
No sistema Multics houve a tentativa de criar um suporte
hardware de segurana estruturao em camadas.
Definiram-se 8 nveis ou anis de segurana nos quais se
podia segmentar o cdigo do sistema de forma a garantir
que cada camada s acede as suas estruturas de dados e
que no existe subverso da decomposio.
Este mecanismo acabou por influenciar a arquitectura de
processadores actuais como os da famlia Intel que dispe
de 4 nveis de proteco.

Apesar do seu interesse esta forma de organizar o sistema no


utilizada na maioria dos sistemas actuais porque o custo das chamadas
entre camadas torna o sistema muito mais lento

Sistemas Operativos LEIC/LERCI 41


V1. 7/30/2002
Micro Ncleo
Os micro-ncleos (micro-kernels) so outra
aproximao para organizar a estrutura interna do
sistema operativos separando:
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
Sistemas Operativos LEIC/LERCI 42
V1. 7/30/2002
Organizao dos Sistemas
Operativos mais divulgados
A decomposio em camadas no
rigorosamente seguida na maioria dos sistemas
operativos.
Contudo, como seria de esperar num programa
to complexo a maioria tem uma estrutura interna
modular
A arquitectura interna modular torna mais fcil a
compreenso e manuteno do sistema
Operativo.
Os dois sistemas que vamos usar como
exemplos: o Unix e o Windows 2000, tm
funcionalmente muitas semelhanas mas as
respectivas organizaes internas so diferentes
Sistemas Operativos LEIC/LERCI 43
V1. 7/30/2002
Unix 4.4 BSD
System calls Interrups and traps

Terminal handing Sockets File Map- Page


naming ping faults Signal Process
handling Creation and
Network File Virtual Termination
Cooked tty protocols systems memory
Raw
tty Line Buffer Page Process
Routing
disciplines cache cache scheduling
Character Netwok Disk Process
devices device drivers device drivers dispatching

Hardware

Sistemas Operativos LEIC/LERCI 44


V1. 7/30/2002
Unix
O diagrama anterior mostra os principais blocos
do Unix
Ilustra a estrutura em camadas com a
funcionalidade mais prxima do utilizador a ser
programada com base em rotinas de nvel mais
baixo
O modelo de camadas apenas usado para
estruturao do cdigo

Sistemas Operativos LEIC/LERCI 45


V1. 7/30/2002
Arquitectura Tpica
Para simplificar a exposio podemos usar um
modelo de arquitectura conceptual que reala os
principais mdulos
Biblioteca de Funes do Sistema

Gesto de Gesto de Gestores de Sistema de Comunicao


Processos Memoria Perifricos Ficheiros entre Processos

Hardware

Sistemas Operativos LEIC/LERCI 46


V1. 7/30/2002
Unix 4.4 BSD
System calls Interrups and traps

Terminal handing Sockets File Map- Page


naming ping faults Signal Process
handling Creation and
Network File Virtual Termination
Cooked tty protocols systems memory
Raw
tty Line Buffer Page Process
Routing
disciplines cache cache scheduling
Character Netwok Disk Process
devices device drivers device drivers dispatching

Hardware

Gesto de Gesto de Gesto de Sistemas de Comunicao


Processos Memria Perifricos Ficheiros
Sistemas Operativos LEIC/LERCI 47
V1. 7/30/2002
Windows 2000
System
System
Service
Service User
User Environment
Environment
Support
Support
processes
processes applications
applications subsystems
subsystems
processes
processes

Subsystem DLLs

User mode
Kernel mode

Executive Windowing
Windowing
Kernel Device drivers and
and graphics
graphics
Hardware abstraction layer (HAL)

Sistemas Operativos LEIC/LERCI 48


V1. 7/30/2002
Windows 2000
Para alm de diferenas de mbito em relao ao diagrama
que apresentamos para o Unix convm realar as seguintes
diferenas:
No Windows existe muita funcionalidade que executada fora do
ncleo do sistema por processos do sistema. Estes processo tm a
mesma estrutura que os processos que suportam os utilizadores mas
tm privilgios que lhes permitem executar funes sistemas vedadas
aos utilizadores normais.
A estrutura interna em camadas ilustra as principais subdivises
lgicas:
Executive
Kernel
Device drivers
Gestor de janelas e Grficos
HAL Hardware Abstraction Layer
A forte ligao do sistema operativo ao PC faz com o sistema de
janelas e grfico faa parte integrante do sistema operativo.
Como foi referido anteriormente a estrutura de camadas no
corresponde a domnios de proteco diferentes.

Sistemas Operativos LEIC/LERCI 49


V1. 7/30/2002
Windows 2000
HAL Camada que permite isolar o sistema de alguns detalhes de
configurao do hardware como por exemplo, configuraes do
motherboard, ligaes dos buses.
Kernel o kernel tem a funcionalidade de base do sistema,
semelhante que consideramos nos micro-ncleos. Apesar desta
decomposio funcional o Windows 2000 no tem uma
arquitectura de micro-ncleo pelos problemas de desempenho j
referidos. Funcionalidade do kernel:
Escalonamento dos fluxos de execuo threads
Sincronizao de multiprocessadores
Tratamento de excepes e interrupes.
Executive Nesta camada esto as funes habituais do sistema.
Na figura seguinte descreve-se o detalhe interno. interessante
compar-la com o da Unix. A maioria dos mdulos tem
correspondncia directa. Contudo, outros correspondem a
funes genricas que no Unix esto distribudas por vrios
mdulo como o gestor de objectos do ncleo, o mdulo de
segurana, o mdulo de inicializao (registry).

Sistemas Operativos LEIC/LERCI 50


V1. 7/30/2002
Windows 2000

Sistem Ntdll.dll
threads
User mode

Kernel mode
System service dispatcher

(Kernel-mode callable interfaces) Win32 USER


GDI
I/O manager

Configuration manager
Process and threads

Local procedure call


File system cache

Security reference
Object manager

Power manager

Virtual memory
Plug and Play
manager

(registry)
monitor
Device and Graphics
file system drivers
drivers

Kernel

Hardware abstraction layer (HAL)


Sistemas Operativos LEIC/LERCI 51
V1. 7/30/2002
Windows 2000
Enviroments Subsystems Os subsistema tem por objectivo
poder adaptar o sistema de base a diferentes personalizaes de
sistema ou seja a diferentes modelos computacionais
No Windows 2000 existem trs ambientes standard:
WIN32 ambiente nativo que tem de estar sempre presente
POSIX interface Posix verso normalizada da interface Unix
OS/2 sistema desenvolvido pela IBM e a Microsoft e antecessor do
Windows NT
Cada aplicao est ligada a um ambiente sendo registado qual dos ambientes
vai ser usado quando se inicia a execuo
interessante notar que este conceito de personalizao dos sistema um dos
conceitos introduzidos pelos micro-ncleos.
Subsystem DLL Ntdll.dll As DLL (Dynamic Loadable Libraries)
so as funes do sistema organizadas em bibliotecas que so
dinamicamente ligadas s aplicaes.
A vantagem desta organizao permitir que as bibliotecas sejam partilhadas
por diversas aplicaes.
Nas DLL existem as funes sistema que chamam os mdulos do executive
(chamadas sistema clssicas) e que so essencialmente as funes da WIN32
Interface para os subsistemas e funes auxiliares. Estas funes so invocadas
atravs dos environments.

Sistemas Operativos LEIC/LERCI 52


V1. 7/30/2002
Windows 2000
System Support Processes processos auxiliares do
sistema operativo.
por exemplo o processo de login (efectua o login e o logout do
sistema), o session manager (gestor da sesso do utilizador), o gestor
de servios (service control manager- servios lanadas
automaticamente), o idle process, etc.
As funes executadas pelos processo sistema so complexas como
veremos mais adiante e correspondem a funcionalidade indispensvel
no sistema mas que no precisa de estar no ncleo podendo executar-
se em processos independentes.
Service Processes Servidores ou gestores de perifrico
semelhantes aos processos daemon do Unix.
So aplicaes Win32 com cdigo adicional para interactuarem com o
Service Control Manager.
So tambm utilizados para executarem parte de aplicaes
complexas. Ex.: Exchange, SQL server.

Sistemas Operativos LEIC/LERCI 53


V1. 7/30/2002
Windows 2000
System support Environment
proceses Service processes Applications
subsystems
Service Control
Manager
Svchost.exe Task Manager
Lsass
Winmgmt.exe OS/2
Windows
Winligon Spooler Explorer
POSIX
User
Session Services.exe application
Manager Win32
Subsystem
DLLs

Sistem Ntdll.dll
threads
User mode

Kernel mode
System service dispatcher

(Kernel-mode callable interfaces) Win32 USER


I/O manager GDI

manager (registry)
Security reference
Object manager

Local procedure
Power manager

Virtual memory
Plug and Play

Configuration
File system

Process and
manager

monitor

threads
cache

Device and

call
Graphics
file system
drivers drivers

Kernel

Hardware abstraction layer (HAL)


Sistemas Operativos LEIC/LERCI 54
V1. 7/30/2002
Modelo Computacional

Sistemas Operativos LEIC/LERCI 55


V1. 7/30/2002
Modelo Computacional
O que o modelo computacional
Conjunto de objectos do sistema operativo e operaes que os permitem
manipular

Conceptualmente para cada tipo de objecto do sistema existe uma


Interface de Programao ou API (Application Development
Interface) que permite criar, eliminar , utilizar, gerir o objecto
Ex. Em Unix

Objecto Funes
Ficheiro Open, read, write seek,
close
Processo Fork, exec
Memria Break, shmget
Perifricos Mount, read, write,
stdio
Sistemas Operativos LEIC/LERCI 56
V1. 7/30/2002
Modelo Computacional
Sistema de Ficheiros
Modelo Computacional
Comunicao e E/S

Sistema de Ficheiros
Gesto de Memria
Comunicao e E/S

Gesto de Processos Gesto de Memria


e
Sincronizao Gesto de Processos

As funes do sistema podem ser vistas como uma interface funcional


disponibilizada por cada camada do sistema operativos
Sistemas Operativos LEIC/LERCI 57
V1. 7/30/2002
Programao Sistema
Porque utilizar o modelo de programao
sistema?
O modelo computacional do sistema operativo
uma extenso do modelo das linguagens de
programao. Indispensvel quando se pretende
desenvolver aplicaes complexas.
Mltiplos processos
Sincronizao e comunicao entre processos
Controlo directo do espao de endereamento
Trtamanto de condies de excepo
Muitas vezes esta aplicaes so elas prprias
software de suporte como sistemas de gesto de
bases de dados, monitores transaccionais,
browsers internet, etc.
Sistemas Operativos LEIC/LERCI 58
V1. 7/30/2002
Plataformas de Desenvolvimento
de Aplicaes
Diversas linguagens de programao procuraram
incorporar os conceitos do sistema operativo na linguagem
: processos; tarefas; sincronizao; comunicao;
excepes
Ex.: Ada, concurrent Pascal
O sucesso foi limitado
A heterogeneidade entre sistemas operativos dificultava a
portabilidade
Desempenho era normalmente sacrificado

Hoje devido a grande complexidade das aplicaes existe


uma nova gerao de plataformas integradas que procura
reunir novamente num modelo de programao coerente a
viso dos conceitos do SO:
.Net
J2EE

Sistemas Operativos LEIC/LERCI 59


V1. 7/30/2002

Anda mungkin juga menyukai