Sistemas Operativos - Autenticação

• Analisar a estrutura interna do Sistema Operativo, detalhando os principais mecanismos. ... Questões de base • Para que serve um Sistema Informático...

72 downloads 393 Views 226KB Size
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