Sistemas Operativos
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
1
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 V1. 7/30/2002
2
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 V1. 7/30/2002
3
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 V1. 7/30/2002
4
Missão do Sistema Operativo Aplicações
Aplicações
Aplicações
Máquina Virtual
Sistema Operativo Máquina Física
Hardware
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
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
5
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 V1. 7/30/2002
6
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 V1. 7/30/2002
7
Principais Objectos geridos pelo Sistema Operativo Recurso lógico
Objecto do Sistema Operativo
Os programas aplicações – fluxos de actividade Informação persistente
Processos
Entradas/Saídas
Gestores de Periféricos – Device Drivers
Utilizadores
Gestão dos utilizadores •Mecanismos de Segurança •Contabilização da utilização. Interpretador de comandos – Shell, Sistema de Janelas
Interface Sistemas Operativos LEIC/LERCI V1. 7/30/2002
Ficheiros
8
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 V1. 7/30/2002
9
Evolução histórica Sem Sistema Operativo (UNIVAC, IBM 701, IBM 650) Tratamento por Lotes Rudimentar Tratamento por Lotes (IBM 7090) Multiprogramação (Multics) Tempo Partilhado Memória Virtual (UNIX) Sistemas Distribuídos 1946 1950 1ª Geração: Interruptores e válvulas
1960 2ª Geração: Transístores
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
1970 3ª Geração: Circuitos integrados
1980 4ª Geração: Computadores pessoais
10
Monitor de Controlo (cont.)
Programa
Leitor de Cartões
Unidade Central de Processamento
Dados Programa Monitor
Memória Impressora
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
11
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 V1. 7/30/2002
12
Tratamento em Lotes (cont.) Dados Programa Dados Programa
Utilizador N+1 Utilizador N
Unidade Central de Processamento
Dados Programa Sistema Operativo
Memória Programa J Dados J Programa J + 1 Dados J + 1
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
13
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 V1. 7/30/2002
14
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 V1. 7/30/2002
15
Multiprogramação (cont.) Utiliza o CPU
Espera fim de Entrada/Saída
Utiliza o CPU
Entrada /Saída
t Utilização do processador num sistema monoprogramado
Programa J S.O
Programa J+1
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
S.O
Programa J+2
S.O
Programa S.O J+3
16
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 V1. 7/30/2002
17
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 V1. 7/30/2002
18
Tempo Partilhado Utilizador N
S.O
Utilizador N+1
S.O
Utilizador N +2
S.O
O escalonamento dos processos tem de criar a ilusão que o computador está permanentemente disponível para o utilizador 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 V1. 7/30/2002
19
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 persistente tinha 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 Sistemas Operativos LEIC/LERCIe as aplicações. V1. 7/30/2002
20
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 V1. 7/30/2002
21
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 Espaço Virtual do processo A
Memória auxiliar
Espaço Virtual do processo B
Memória física
Espaço Virtual do Processo C
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
22
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/LERCI V1. 7/30/2002
23
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/LERCI V1. 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/LERCI V1. 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/LERCI V1. 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 V1. 7/30/2002
Evolução da Electrónica Digital Transistors per chip
1286
1,000,000,000
Lei de Moore 100,000,000
Em cada 18 meses o poder de processamento duplica e os custos mantêm-se constantes
886
10,000,000 786 1,000,000
100,000 8086 10,000
1,000 1970
1975
1980
1985
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
1990
1995 Year
2000
2005
2010
2015
2020
28
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.
Servidor
Cliente
Sistema Distribuído Sistema Operativo Sistemas Operativos LEIC/LERCI
V1. 7/30/2002
Sistema Operativo
29
Tipos de Sistemas Operativos
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
30
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 V1. 7/30/2002
31
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
Vax» - Digital Data General IBM Unisys
VMS AOS/VS OS 390
– Unix – O sistema começou como uma experiência nos Bells Labs, 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 Sistemas Operativos LEIC/LERCI V1. 7/30/2002
32
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 V1. 7/30/2002
33
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 V1. 7/30/2002
34
Arquitectura do Sistema Operativo
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
35
Estrutura Monolítica Aplicações Bibliotecas do sistema Barreira de protecção
Núcleo do Sistema Operativo •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...) Sistemas Operativos LEIC/LERCI V1. 7/30/2002
36
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 V1. 7/30/2002
37
Estrutura Monolítica Aplicações Bibliotecas do sistema Barreira de protecção
Núcleo do Sistema Operativo
Gestores de Periféricos
• 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.
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
38
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 V1. 7/30/2002
39
Estrutura em Camadas Aplicações Interface do Sistema Sistema de Ficheiros Comunicação e E/S Gestão de Memória Gestão de Processos
As principais funções do sistema encontram-se associadas a uma camada Sistemas Operativos LEIC/LERCI V1. 7/30/2002
40
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 V1. 7/30/2002
41
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 V1. 7/30/2002
42
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 V1. 7/30/2002
43
Unix – 4.4 BSD System calls Terminal handing
Raw tty
Sockets
Cooked tty
Network protocols
Line disciplines
Routing
Character devices
Netwok device drivers
Interrups and traps File Map- Page naming ping faults File Virtual systems memory Buffer cache
Process Signal handling Creation and Termination
Page cache
Process scheduling
Disk device drivers
Process dispatching
Hardware
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
44
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 V1. 7/30/2002
45
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 Gestão de Gestão de Gestores de Sistema de Comunicação Processos Memoria Periféricos Ficheiros entre Processos Hardware
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
46
Unix – 4.4 BSD System calls Terminal handing
Raw tty
Sockets
Cooked tty
Network protocols
Line disciplines
Routing
Character devices
Netwok device drivers
Interrups and traps File Map- Page naming ping faults File Virtual systems memory Buffer cache
Process Signal handling Creation and Termination
Page cache
Process scheduling
Disk device drivers
Process dispatching
Hardware
Gestão de Processos
Gestão de Memória
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
Gestão de Periféricos
Sistemas de Ficheiros
Comunicação 47
Windows 2000 System System Support Support processes processes
Service Service
User User
Environment Environment
processes processes
applications applications
subsystems subsystems
Subsystem DLLs User mode Kernel mode Executive Kernel
Device drivers
Windowing Windowing and and graphics graphics
Hardware abstraction layer (HAL)
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
48
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ões ló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 V1. 7/30/2002
49
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 V1. 7/30/2002
50
Windows 2000 Sistem threads
Ntdll.dll User mode Kernel mode System service dispatcher (Kernel-mode callable interfaces)
Win32 USER GDI Local procedure call
Process and threads
Virtual memory
Security reference monitor
Power manager
Plug and Play manager
Object manager
File system cache
Device and file system drivers
Configuration manager (registry)
I/O manager
Graphics drivers
Kernel Hardware abstraction layer (HAL)
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
51
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 V1. 7/30/2002
52
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 executarse 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 V1. 7/30/2002
53
Windows 2000 Environment
System support proceses
Service processes
Applications
subsystems
Service Control Manager Svchost.exe
Lsass
Task Manager OS/2
Winmgmt.exe Winligon
Windows Explorer
Spooler
POSIX User application
Services.exe
Session Manager
Win32 Subsystem DLLs
Sistem threads
Ntdll.dll User mode Kernel mode System service dispatcher (Kernel-mode callable interfaces) Local procedure call
Configuration manager (registry)
Process and threads
Virtual memory
Security reference monitor
Power manager
Plug and Play manager
File system cache
Device and file system drivers
Object manager
I/O manager
Win32 USER GDI
Graphics drivers
Kernel Hardware abstraction layer (HAL)
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
54
Modelo Computacional
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
55
Modelo Computacional • O que é o modelo computacional – Conjunto de objectos do sistema operativo e operações que os permitem manipular
• Conceptualmente para cada tipo de objecto do sistema existe uma Interface de Programação ou API (Application Development Interface) que permite criar, eliminar , utilizar, gerir o objecto • Ex. Em Unix
Objecto
Funções
Ficheiro Processo
Open, read, write seek, close Fork, exec
Memória
Break, shmget
Periféricos
Mount, read, write, stdio
Sistemas Operativos LEIC/LERCI V1. 7/30/2002
56
Modelo Computacional Sistema de Ficheiros Comunicação e E/S
Modelo Computacional
Sistema de Ficheiros Gestão de Memória Comunicação e E/S Gestão de Processos e Sincronização
Gestão de Memória Gestão de Processos
As funções do sistema podem ser vistas como uma interface funcional disponibilizada por cada camada do sistema operativos Sistemas Operativos LEIC/LERCI V1. 7/30/2002
57
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 V1. 7/30/2002
58
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 Sistemas Operativos LEIC/LERCI V1. 7/30/2002
59