sistemas operativos - autenticação · pdf filesistemas operativos leic/lerci 3...
TRANSCRIPT
Sistemas Operativos LEIC/LERCI 1V1. 7/30/2002
Sistemas Sistemas OperativosOperativos
Sistemas Operativos LEIC/LERCI 2V1. 7/30/2002
Objectivos da Disciplina
• Perceber a função do Sistema Operativo num sistema informático.
• 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 através das funções 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 3V1. 7/30/2002
Questões de base
• Para que serve um Sistema Informático?– Um sistema informático tem por objectivo executar uma ou
várias aplicações para os seus utilizadores.– As aplicações são o que justifica o investimento que é efectuado no
sistema. É através delas que quem realiza o investimento espera ter o retorno na melhoria dos processos da empresa ou da organização.
• O que é necessário para executar uma aplicação?– Um conjunto de recursos materiais onde a aplicação se
executa – processador, memória, discos, terminais, etc. –vulgarmente o hardware
– Um conjunto de recursos lógicos: programas, ficheiros, bases de dados, interfaces utilizador, etc. – vulgarmente o software
Sistemas Operativos LEIC/LERCI 4V1. 7/30/2002
Recursos Lógicos• O que são os recursos lógicos ?
– Os recursos lógicos são abstracções que tornam mais fácil desenvolver e manter as aplicações. Foram definidos de forma a aproximar o modelo dos sistemas informáticos das entidades do mundo real que se pretendem automatizar
» Ex.: Ficheiros, Tabelas, Janelas, Ícones, Processos, Protocolos.
• Suporte para os recursos lógicos– Para construir estas abstracções sobre a máquina física (hardware)
são necessários programas normalmente bastante complexos» Compiladores para traduzir os comandos das linguagens de
programação em linguagem máquina» Sistemas de gestão de base de dados para organizar a
informação» Sistemas de gestão de interfaces para criar janelas, menus,
botões.
O Sistema Operativo inclui-se na categoria dos programas utilitários que suportam e gerem os recursos lógicos
Sistemas Operativos LEIC/LERCI 5V1. 7/30/2002
Missão do Sistema Operativo
Hardware
Sistema Operativo
Aplicações Aplicações Aplicações
Criar uma máquina virtual sobre a máquina física que ofereça os recursos lógicos básicos necessários ao desenvolvimento das aplicações
Máquina Física
Máquina Virtual
Sistemas Operativos LEIC/LERCI 6V1. 7/30/2002
Alternativas ao Sistema Operativo
• As linguagens de programação podiam produzir todo o código necessário para que um programa se executasse directamente sobre o hardware.
• Mas:– O esforço de programação seria muito grande– Um conjunto significativo de funções seria repetido– Cada aplicação poderia optimizar o seu desempenho mas
globalmente a máquina ficaria subaproveitada.– Não seria possível ter politicas globais de segurança,
tolerância a faltas, optimização
Sistemas Operativos LEIC/LERCI 7V1. 7/30/2002
Funções do Sistema Operativo
• Máquina Virtual– Cria uma camada de software que esconde o hardware,
definindo uma máquina virtual que disponibiliza diversos recursos lógicos ou objectos que podem ser utilizados pelas aplicações.
– Simplifica a utilização, cria modelos uniformes dos recursos lógicos para todas as linguagens de programação, define um modelo de segurança e de tolerância a faltas
• Gestor de Recursos– Gere e optimiza o uso dos recursos físicos e lógicos. – Como qualquer outra função de gestão esta actividade do
sistema operativo tem que ter em consideração diversos objectivos como desempenho, utilização eficaz do investimento no hardware, controlo da utilização dos recursos pelos utilizadores, etc.
Sistemas Operativos LEIC/LERCI 8V1. 7/30/2002
Principais Objectos geridos pelo Sistema Operativo
Interpretador de comandos –Shell, Sistema de Janelas
Interface
Gestão dos utilizadores •Mecanismos de Segurança•Contabilização da utilização.
Utilizadores
Gestores de Periféricos –Device Drivers
Entradas/Saídas
FicheirosInformação persistente
ProcessosOs programas aplicações – fluxos de actividade
Objecto do Sistema OperativoRecurso lógico
Sistemas Operativos LEIC/LERCI 9V1. 7/30/2002
Atributos de Qualidade do Sistema
• Desempenho– Gestão eficientemente dos recursos físicos que suportam os
recursos lógicos
• Segurança.– Isolamento dos Utilizadores– Permitir partilha segura de recursos lógicos
• Fiabilidade.– Detectar um conjunto de faltas– Tolerar um conjunto de erros
• Interface de programação completa e simples.– Facilitar a concepção das aplicações, a sua manutenção e
portabilidade
• Interface de operação e gestão dos recursos lógicos fácil de utilizar
Sistemas Operativos LEIC/LERCI 10V1. 7/30/2002
19501946 1960 1970 1980
Tempo Partilhado
Memória Virtual (UNIX)
Sistemas Distribuídos
Multiprogramação (Multics)
Tratamento por Lotes (IBM 7090)
Tratamento por Lotes Rudimentar
Sem Sistema Operativo (UNIVAC, IBM 701, IBM 650)
1ª Geração:Interruptores
e válvulas
2ª Geração:Transístores
3ª Geração:Circuitos integrados
4ª Geração:Computadores pessoais
Evolução histórica
Sistemas Operativos LEIC/LERCI 11V1. 7/30/2002
Monitor de Controlo (cont.)
UnidadeCentral de
Processamento
Leitor de Cartões
Programa
Dados
Programa
Impressora
Monitor
Memória
Sistemas Operativos LEIC/LERCI 12V1. 7/30/2002
Monitor de Controlo• Permite ao utilizador:
– carregar programas em memória, editá-los e verificar a sua execução– Resultados dos programas: listagens, fitas perfuradas
• Cada utilizador tem um determinado tempo atribuído durante o qual tem o computador apenas para si
• O monitor é formado por um conjunto de utilitários:– Interpretador de linguagem de comando– Compilador, Assemblador (Assembler)– Editor de ligações (linker)– Carregador de programas em memória (loader)– Biblioteca de rotinas para controlo de periféricos (consola, leitor de
cartões, etc.)
Desvantagem:A maior parte do tempo, o computador não está a realizar trabalho útil
Sistemas Operativos LEIC/LERCI 13V1. 7/30/2002
Tratamento em Lotes (cont.)
UtilizadorN + 1
Programa
Dados
Dados
UtilizadorN
Programa JDados J
Programa
Dados J + 1Programa J + 1
Dados
Programa
Sistema Operativo
UnidadeCentral de
Processamento
Memória
Sistemas Operativos LEIC/LERCI 14V1. 7/30/2002
Tratamento em Lotes (Batch)• Os periféricos mecânicos (ex.: impressoras, leitores/perfuradores
de fita) eram muito lentos quando comparados com a velocidade de processamento do computador
• Solução inicial:– Separar as Entradas/Saídas 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 próximo a executar-se
– Saída» Em vez de imprimir directamente os programas escrevem a saída em
ficheiros que são enviados para a impressora quando a aplicação termina -spolling
• Evolução:– Os periféricos executam tarefas autónomas e avisam o processador do fim da
sua execução através de interrupções.– Execução em paralelo dos programas e das E/S
Sistemas Operativos LEIC/LERCI 15V1. 7/30/2002
Multiprogramação
• O mecanismo de interrupções permite multiplexar o processador entre várias actividades concorrentes.
– No exemplo anterior entre um programa e as entradas/saidas,– Mas esta capacidade de alternar a execução pode ser
estendida à multiplexagem de vários programas residentes na memória.
• Execução concorrente de vários programas:– permite optimizar a utilização 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 16V1. 7/30/2002
Multiprogramação (cont.)
Utilizao
CPU
Espera fimde
Entrada/Saída
Utilizao
CPU
Entrada/Saída
Utilização do processador num sistema monoprogramado
t
ProgramaJ
ProgramaJ + 1 S.O S.OS.O
ProgramaJ+3S.O
ProgramaJ + 2
Sistemas Operativos LEIC/LERCI 17V1. 7/30/2002
Multiprogramação
• A multiprogramação implica mudança de contexto rápida, logo os programas têm de estar em memória, senão não compensaria comutá-los devido ao elevado tempo de carregamento em memória.
• A memória é um recurso limitado (na altura muito mais do que agora):
– Necessário desenvolver mecanismos para gerir a memória de forma a ter em memória os programas mais prioritários ou que estão em condições de continuar a execução.
– Solução: Transferência de programas - swapping (guardar P1 em disco e carregar P2 em memória)
– Quando o SO traz o programa para a memória não pode ficar limitado a ter de colocá-lo no mesmo endereço.
– Solução: código recolocável (numa outra posição de memória)
Sistemas Operativos LEIC/LERCI 18V1. 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 aviação foram pioneiros no desenvolvimento de uma classe de sistemas em que os utilizadores interactuavam directamente com o sistema (as reservas de lugares de aviões não podiam ser efectuadas em batch), fazendo executar os comandos pelas aplicações de imediato.
• Assim que o preço dos periféricos (terminais) desceu suficientemente este paradigma de utilização era claramente mais produtivo quer para os utilizadores finais das aplicações quer para os programadores.
Sistemas Operativos LEIC/LERCI 19V1. 7/30/2002
Tempo Partilhado
O escalonamento dos processos tem de criar a ilusão que o computador está permanentemente disponível para o utilizador
S.O S.OUtilizadorN
UtilizadorN + 1
UtilizadorN +2
S.O
O tempo partilhado é possível porque a maioria das aplicações interactivas usa pouco o processador. Enquanto o utilizador edita ou interactua com as aplicações, o computador apenas é usado numa fracção muito reduzida do tempo total.
Sistemas Operativos LEIC/LERCI 20V1. 7/30/2002
Consequências do Tempo Partilhado
• A multiplexagem entre vários utilizadores implica uma divisão equitativa do tempo disponível do processador, porque os utilizadores humanos não 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 informação persistentetinha de ter uma organização clara. Os sistemas de ficheiros apareceram nesta altura.
• Como vários utilizadores partilham ao mesmo tempo o sistema tiveram de se definir mecanismos de segurança para proteger a informação e as aplicações.
Sistemas Operativos LEIC/LERCI 21V1. 7/30/2002
Memoria Virtual• Os sistemas de tempo partilhado reforçam a necessidade
de ter vários programas em memória simultaneamente, para poder efectuar com rapidez a troca dos respectivos contextos de execução.
• A memória central é rápida, mas é um recurso caro; a memória de massa é muito mais económico, mas é lenta.
• A análise da execução dos programas permite detectar que quando um programa se executa numa dada zona a probabilidade de aceder a instruções ou dados na proximidade é muita elevada – propriedade da localidade.
A propriedade da localidade permitiu criar o conceito de um grande espaço de endereçamento para os programas, mas em que só uma fracção reduzida tem de ser carregada na memória central durante a execução.
Sistemas Operativos LEIC/LERCI 22V1. 7/30/2002
Memória Virtual
• A memória virtual eliminou a restrição física imposta pelo tamanho da memória permitindo um grau de multiprogramação muito superior
Memória auxiliar
EspaçoVirtual do processo A
EspaçoVirtual do processo B
EspaçoVirtual do Processo C
Memória física
Sistemas Operativos LEIC/LERCI 23V1. 7/30/2002
Sistemas Distribuídos
• Os sistemas distribuídos são consequência da evolução de diversos factores, alguns dos mais importantes foram:
– As Redes de Dados– Os Computadores Pessoais - PC– Os Sistemas Abertos– A evolução do custo e desempenho da electrónica digital.
Sistemas Operativos LEIC/LERCIV1. 7/30/2002
Evolução das Redes de Computadores
• Redes Locais – Elevado débito e custo reduzido– Consequência : Todos os computadores ligados à rede local
• Redes Geograficamente Distribuídas– Ligações de longa distância mais baratas– Débitos crescentes– Consequência: Todas as redes locais interligadas entre si
• Redes Móveis– Débitos crescentes para dados
• Futuro– Interligação de TODOS os computadores (domésticos, …)– Interligação de TODOS os dispositivos (Laptops, telemóveis,
fotocopiadoras, …)
Sistemas Operativos LEIC/LERCIV1. 7/30/2002
Evolução dos Computadores Pessoais
• Equipamentos simples, completos e autónomos• Baixo custo• Interface atraente e simples• Mercado dominado por Wintel
– Uma arquitectura: Intel– Uma família de sistemas operativos: Windows– Uma família de aplicações base: Office
• Miríade de aplicações
Sistemas Operativos LEIC/LERCIV1. 7/30/2002
Consequências da Evolução dos Computadores Pessoais
• Computadores em todos os postos de trabalho, distribuídos pelas organizações
• Confiança dos utilizadores em soluções descentralizadas• Facilidade de desenvolvimento de aplicações
departamentais e pessoais• Independência de departamentos em relação à informática
central• Quando mal gerido
– Caos de aplicações– Difícil de manter e administrar
Sistemas Operativos LEIC/LERCIV1. 7/30/2002
Sistemas Abertos
• Normalização oficial e de facto em muitos aspectos chave da indústria Informática
– Computadores pessoais (Wintel)– Protocolos de rede (TCP/IP, WWW, Internet)– Servidores Unix, Windows-NT, Mainframes IBM MVS– Acesso a bases de dados (SQL, ODBC)– Interligação de aplicações (DCOM, CORBA, J2EE, .Net)
• Consequências– Tecnologia disponível– Grande número de alternativas– Preços competitivos
Sistemas Operativos LEIC/LERCI 28V1. 7/30/2002
Evolução da Electrónica Digital
Em cada 18 meses o poder de processamento duplica e os custos mantêm-se constantes
Transistorsper chip
1,000,000,000
100,000,000
10,000,000
1,000,000
100,000
10,000
1,0001970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Year
8086
786886
1286
Lei de Moore
Sistemas Operativos LEIC/LERCI 29V1. 7/30/2002
Sistemas Distribuídos• Uma aplicação pode ser executada em diferentes máquinas
interligadas através de mecanismos que garantam a comunicação, a segurança, a gestão de nomes e a fiabilidade.
• A distribuição mais simples conduz a uma decomposição entre a parte cliente da aplicação, responsável pela interface interactiva com o utilizador, e a parte servidor, responsável pela execução da lógica de negócio e pelo acesso aos dados.
Cliente
Sistema Distribuído
Servidor
SistemaOperativo
SistemaOperativo
Sistemas Operativos LEIC/LERCI 30V1. 7/30/2002
Tipos de Sistemas Operativos
Sistemas Operativos LEIC/LERCI 31V1. 7/30/2002
Tempo Virtual e Tempo Real
• Tempo virtual: – O tempo de execução dos programas não tem relação com o
tempo cronológico exterior ao computador.– São os sistemas habituais utilizados na maioria dos
computadores quer os que se executam nas máquinas 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 contrário o sistema não cumpre a sua missão e portanto falha.
Sistemas Operativos LEIC/LERCI 32V1. 7/30/2002
Sistemas Operativos Tempo Virtual
• Evolução– Na década de 70 houve numerosos sistemas operativos
multiprogramados de memória virtual. A maioria estava directamente ligada aos fabricantes dos computadores, tinham a vantagem de explorarem eficientemente o hardware, mas o seu modelo computacional era proprietário dificultando o transporte das aplicações
»
– Unix – O sistema começou como uma experiência nos BellsLabs, teve uma enorme expansão através da sua divulgação nas Universidades. A sua versão de domínio público Linux tem hoje grande divulgação
– Windows 2000- Evolução do Windows com uma base multiprogramada baseada no Windows-NT
UnisysOS 390IBMAOS/VSData GeneralVMSVax - Digital
Sistemas Operativos LEIC/LERCI 33V1. 7/30/2002
Tempo Real• Os requisitos de tempo real não são idênticos para
aplicações que controlam equipamentos industriais, jogos, sistemas de travagem de automóveis ou de pilotagem de aviões.
• A diferença 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 não ser dadas exactamente nos intervalos de tempo específicados
– Tempo real estrito ou hard real time – sistema onde o não cumprimento de um requisito temporal corresponde a uma falha.
A gestão de tempo real estrito obriga a um escalonamento de processos que torna estes sistemas totalmente incompatíveis com o funcionamento em tempo virtual interactivo, por essa razão não os iremos considerar neste curso.
Sistemas Operativos LEIC/LERCI 34V1. 7/30/2002
Sistema Operativos Soft Real Time
• As aplicações de sistemas operativos de tempo real relaxado são cada vez mais numerosas:
– Controlo de processos– Aplicações embarcadas
» Pocket Digital Assistant - PDA» Telemóveis» Jogos
• Sistemas Operativos dedicados a soft real time– Palm Os, Windows CE, Epoch– VRTX, VxWorks, LynxOS
• Extensões de sistemas de tempo virtual– Windows 2000 – Solaris (Unix)
Sistemas Operativos LEIC/LERCI 35V1. 7/30/2002
Arquitectura do Sistema Operativo
Sistemas Operativos LEIC/LERCI 36V1. 7/30/2002
Estrutura Monolítica
•Desde a sua origem os sistemas operativos são constituídos por:• Um núcleo monolítico onde reside a maior parte da funcionalidade, normalmente designado por kernel•Um conjunto de bibliotecas de funções sistema que são ligadas com o código das aplicações e que permitem chamar os serviços de sistema.•Uma barreira de protecção separava os espaços de endereçamento onde residia o do núcleo do sistema operativo e as aplicações. (a grande excepção a este princípio foi o MS-DOS e ainda hoje sofremos com isso...)
Núcleo do Sistema OperativoBarreira de protecção
Aplicações
Bibliotecas do sistema
Sistemas Operativos LEIC/LERCI 37V1. 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 periféricos, novos protocolos de comunicação.
• O sistema operativo é um programa de grande complexidade, tal como todos os grandes programas a sua evolução, teste e manutenção são difíceis e sujeitos a diversos erros.
• Se toda a evolução fosse dependente do fabricante do sistema, não seria possível satisfazer a maioria dos requisitos e o sistema teria rapidamente uma dimensão e uma complexidade difícil de gerir.
• Uma solução para simplificar a evolução dos sistemas é permitir que os utilizadores possam efectuar as alterações para o adaptarem a requisitos específicos.
• O problema que se coloca é como garantir que essa alterações não introduzem erros ou subvertem determinadas garantias de segurança.
Sistemas Operativos LEIC/LERCI 38V1. 7/30/2002
Estrutura Monolítica
• Para permitir adaptar o sistema a diferentes periféricos era necessário desenvolver programas que tinha de utilizar mecanismos vedados às aplicações, como instruções de E/S e as interrupções.
• A solução foi permitir o desenvolvimento de gestores de periféricos –device drivers que acediam a funções internas do núcleo.
• O sistema fica expansível, mas como os programas dos gestores de periféricos eram código com os mesmo privilégios que o núcleo, qualquer erro compromete a robustez do sistema.
Barreira de protecção
Núcleo do Sistema Operativo
Gestores de Periféricos
Aplicações
Bibliotecas do sistema
Sistemas Operativos LEIC/LERCI 39V1. 7/30/2002
Estrutura em Camadas• Para facilitar a manutenção e desenvolvimento do código
do sistema foi proposto num sistema pioneiro o THE uma decomposição interna em camadas.
• A decomposição em camadas tinha por objectivo separar para cada uma das funções principais: o código e as estruturas de dados e construir as camadas superiores com base nas interfaces funcionais disponibilizas pelas camadas mais internas.
• A decomposição em camadas é uma estruturação interna do programa do sistema operativo
• Quase todos os sistemas adoptaram uma estrutura interna que procura estruturar em módulos as principais funcionalidades.
Sistemas Operativos LEIC/LERCI 40V1. 7/30/2002
Gestão de Processos
Gestão de Memória
Comunicação e E/S
Sistema de Ficheiros
Interface do Sistema
Aplicações
Estrutura em Camadas
As principais funções do sistema encontram-se associadas a uma camada
Sistemas Operativos LEIC/LERCI 41V1. 7/30/2002
Estrutura em Camadas• No sistema Multics houve a tentativa de criar um suporte
hardware de segurança à estruturação em camadas.• Definiram-se 8 níveis ou anéis de segurança nos quais se
podia segmentar o código do sistema de forma a garantir que cada camada só acede as suas estruturas de dados e que não existe subversão da decomposição.
• Este mecanismo acabou por influenciar a arquitectura de processadores actuais como os da família Intel que dispõe de 4 níveis de protecção.
Apesar do seu interesse esta forma de organizar o sistema não éutilizada na maioria dos sistemas actuais porque o custo das chamadas entre camadas torna o sistema muito mais lento
Sistemas Operativos LEIC/LERCI 42V1. 7/30/2002
Micro Núcleo
• Os micro-núcleos (micro-kernels) são outra aproximação para organizar a estrutura interna do sistema operativos separando:
– Um micro-núcleo de reduzidas dimensões e que só continha o essencial do sistema operativo:
» Gestão de fluxos de execução - threads» Gestão dos espaços de endereçamento» Comunicação entre processos» Gestão das interrupções
– Servidores sistema que executavam em processos independentes a restante funcionalidade:
» Gestão de processos» Memória virtual» Device drivers» Sistema de ficheiro
Sistemas Operativos LEIC/LERCI 43V1. 7/30/2002
Organização dos Sistemas Operativos mais divulgados
• A decomposição em camadas não érigorosamente seguida na maioria dos sistemas operativos.
• Contudo, como seria de esperar num programa tão complexo a maioria tem uma estrutura interna modular
• A arquitectura interna modular torna mais fácil a compreensão e manutenção do sistema Operativo.
• Os dois sistemas que vamos usar como exemplos: o Unix e o Windows 2000, têm funcionalmente muitas semelhanças mas as respectivas organizações internas são diferentes
Sistemas Operativos LEIC/LERCI 44V1. 7/30/2002
System calls
Terminal handing Sockets Filenaming
Map-ping
Pagefaults Signal
handlingProcess
Creation andTermination
Rawtty
Cooked tty
Interrups and traps
Linedisciplines
Networkprotocols
Filesystems
Virtualmemory
Routing Buffercache
Pagecache
Processscheduling
Characterdevices
Netwokdevice drivers
Diskdevice drivers
Processdispatching
Hardware
Unix – 4.4 BSD
Sistemas Operativos LEIC/LERCI 45V1. 7/30/2002
Unix
• O diagrama anterior mostra os principais blocos do Unix
• Ilustra a estrutura em camadas com a funcionalidade mais próxima do utilizador a ser programada com base em rotinas de nível mais baixo
• O modelo de camadas é apenas usado para estruturação do código
Sistemas Operativos LEIC/LERCI 46V1. 7/30/2002
Arquitectura Típica
• Para simplificar a exposição podemos usar um modelo de arquitectura conceptual que realça os principais módulos
Biblioteca de Funções do Sistema
Hardware
Gestão deProcessos
Gestão deMemoria
Gestores dePeriféricos
Sistema deFicheiros
Comunicação entre Processos
Sistemas Operativos LEIC/LERCI 47V1. 7/30/2002
System calls
Terminal handing Sockets Filenaming
Map-ping
Pagefaults Signal
handlingProcess
Creation andTermination
Rawtty
Cooked tty
Interrups and traps
Linedisciplines
Networkprotocols
Filesystems
Virtualmemory
Routing Buffercache
Pagecache
Processscheduling
Characterdevices
Netwokdevice drivers
Diskdevice drivers
Processdispatching
Hardware
Unix – 4.4 BSD
Gestão de Processos
Gestão de Memória
Gestão de Periféricos
Sistemas de Ficheiros
Comunicação
Sistemas Operativos LEIC/LERCI 48V1. 7/30/2002
Service
processes
Service
processes
System
Support
processes
System
Support
processes
User
applications
User
applications
Environment
subsystems
Environment
subsystems
Subsystem DLLs
User mode
Kernel mode
Windowing
and graphics
Windowing
and graphics
Executive
Kernel Device drivers
Hardware abstraction layer (HAL)
Windows 2000
Sistemas Operativos LEIC/LERCI 49V1. 7/30/2002
Windows 2000• Para além de diferenças de âmbito em relação ao diagrama
que apresentamos para o Unix convém realçar as seguintes diferenças:
– No Windows existe muita funcionalidade que é executada fora do núcleo do sistema por processos do sistema. Estes processo têm a mesma estrutura que os processos que suportam os utilizadores mas têm privilégios que lhes permitem executar funções sistemas vedadas aos utilizadores normais.
– A estrutura interna em camadas ilustra as principais subdivisõeslógicas:
» Executive» Kernel» Device drivers» Gestor de janelas e Gráficos» HAL – Hardware Abstraction Layer
– A forte ligação do sistema operativo ao PC faz com o sistema de janelas e gráfico faça parte integrante do sistema operativo.
– Como foi referido anteriormente a estrutura de camadas não corresponde a domínios de protecção diferentes.
Sistemas Operativos LEIC/LERCI 50V1. 7/30/2002
Windows 2000• HAL – Camada que permite isolar o sistema de alguns detalhes de
configuração do hardware como por exemplo, configurações do motherboard, ligações dos buses.
• Kernel – o kernel tem a funcionalidade de base do sistema, semelhante à que consideramos nos micro-núcleos. Apesar desta decomposição funcional o Windows 2000 não tem uma arquitectura de micro-núcleo pelos problemas de desempenho járeferidos. Funcionalidade do kernel:
– Escalonamento dos fluxos de execução – threads– Sincronização de multiprocessadores– Tratamento de excepções e interrupções.
• Executive – Nesta camada estão as funções habituais do sistema. Na figura seguinte descreve-se o detalhe interno. É interessante compará-la com o da Unix. A maioria dos módulos tem correspondência directa. Contudo, outros correspondem a funções genéricas que no Unix estão distribuídas por vários módulo como o gestor de objectos do núcleo, o módulo de segurança, o módulo de inicialização (registry).
Sistemas Operativos LEIC/LERCI 51V1. 7/30/2002
Windows 2000
Ntdll.dll
System service dispatcher
I/O manager
Device and file system
drivers
(Kernel-mode callable interfaces)
File systemcache
Objectm
anager
Win32 USER GDI
Graphicsdrivers
Kernel
Hardware abstraction layer (HAL)Plug and Play
manager
Powerm
anager
Securityreference
monitor
Virtual mem
ory
Processand threads
Configuration
manager
(registry)
Local procedurecall
Sistemthreads
User mode
Kernel mode
Sistemas Operativos LEIC/LERCI 52V1. 7/30/2002
Windows 2000• Enviroments Subsystems – Os subsistema tem por objectivo
poder adaptar o sistema de base a diferentes personalizações de sistema ou seja a diferentes modelos computacionais
– No Windows 2000 existem três ambientes standard:» WIN32 – ambiente nativo que tem de estar sempre presente» POSIX – interface Posix versão normalizada da interface Unix» OS/2 – sistema desenvolvido pela IBM e a Microsoft e antecessor do
Windows – NT– Cada aplicação está ligada a um ambiente sendo registado qual dos ambientes
vai ser usado quando se inicia a execução– É interessante notar que este conceito de personalização dos sistema é um dos
conceitos introduzidos pelos micro-núcleos.• Subsystem DLL – Ntdll.dll – As DLL (Dynamic Loadable Libraries)
são as funções do sistema organizadas em bibliotecas que são dinamicamente ligadas às aplicações.
– A vantagem desta organização é permitir que as bibliotecas sejam partilhadas por diversas aplicações.
– Nas DLL existem as funções sistema que chamam os módulos do executive(chamadas sistema clássicas) e que são essencialmente as funções da WIN32
– Interface para os subsistemas e funções auxiliares. Estas funções são invocadas através dos environments.
Sistemas Operativos LEIC/LERCI 53V1. 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 sessão do utilizador), o gestor de serviços (service control manager- serviços lançadas automaticamente), o idle process, etc.
– As funções executadas pelos processo sistema são complexas como veremos mais adiante e correspondem a funcionalidade indispensável no sistema mas que não precisa de estar no núcleo podendo executar-se em processos independentes.
• Service Processes – Servidores ou gestores de periférico semelhantes aos processos daemon do Unix.
– São aplicações Win32 com código adicional para interactuarem com o Service Control Manager.
– São também utilizados para executarem parte de aplicações complexas. Ex.: Exchange, SQL server.
Sistemas Operativos LEIC/LERCI 54V1. 7/30/2002
Windows 2000
Service ControlManager
System supportproceses
Lsass
Winligon
SessionManager
Ntdll.dll
Svchost.exe
Winmgmt.exe
Spooler
Services.exe
Task Manager
Windows Explorer
SubsystemDLLs
Userapplication
OS/2
POSIX
Win32
System service dispatcher
I/O manager
Device and file system
drivers
(Kernel-mode callable interfaces)
File systemcache
Objectm
anager
Win32 USER GDI
Graphicsdrivers
Kernel
Hardware abstraction layer (HAL)Plug and Play
manager
Powerm
anager
Securityreference
monitor
Virtual mem
ory
Processand
threads
Configuration
manager(registry)
Local procedurecall
Service processes ApplicationsEnvironment
subsystems
Sistemthreads
User mode
Kernel mode
Sistemas Operativos LEIC/LERCI 55V1. 7/30/2002
Modelo Computacional
Sistemas Operativos LEIC/LERCI 56V1. 7/30/2002
Modelo Computacional• O que é o modelo computacional
– Conjunto de objectos do sistema operativo e operações que os permitemmanipular
• Conceptualmente para cada tipo de objecto do sistema existe uma Interface de Programação ou API (Application DevelopmentInterface) que permite criar, eliminar , utilizar, gerir o objecto
• Ex. Em Unix
Mount, read, write, stdio
PeriféricosBreak, shmgetMemóriaFork, execProcesso
Open, read, write seek, close
FicheiroFunçõesObjecto
Sistemas Operativos LEIC/LERCI 57V1. 7/30/2002
Modelo Computacional
Modelo Computacional
Gestão de Processos
Gestão de Memória
Comunicação e E/S
Sistema de Ficheiros
Gestão de Processose
Sincronização
Gestão de Memória
Comunicação e E/S
Sistema de Ficheiros
As funções do sistema podem ser vistas como uma interface funcional disponibilizada por cada camada do sistema operativos
Sistemas Operativos LEIC/LERCI 58V1. 7/30/2002
Programação Sistema
• Porque utilizar o modelo de programação sistema?
• O modelo computacional do sistema operativo éuma extensão do modelo das linguagens de programação. Indispensável quando se pretende desenvolver aplicações complexas.
– Múltiplos processos– Sincronização e comunicação entre processos– Controlo directo do espaço de endereçamento– Trtamanto de condições de excepção
• Muitas vezes esta aplicações são elas próprias software de suporte como sistemas de gestão de bases de dados, monitores transaccionais, browsers internet, etc.
Sistemas Operativos LEIC/LERCI 59V1. 7/30/2002
Plataformas de Desenvolvimento de Aplicações
• Diversas linguagens de programação procuraram incorporar os conceitos do sistema operativo na linguagem : processos; tarefas; sincronização; comunicação; excepções
– 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 aplicações existe uma nova geração de plataformas integradas que procura reunir novamente num modelo de programação coerente a visão dos conceitos do SO:
• .Net• J2EE