59
Sistemas Operativos LEIC/LERCI 1 V1. 7/30/2002 Sistemas Sistemas Operativos Operativos

Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

  • Upload
    vutu

  • View
    216

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

Sistemas Operativos LEIC/LERCI 1V1. 7/30/2002

Sistemas Sistemas OperativosOperativos

Page 2: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 3: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 4: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 5: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 6: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 7: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 8: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 9: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 10: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 11: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 12: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 13: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 14: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 15: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 16: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 17: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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)

Page 18: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 19: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 20: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 21: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 22: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 23: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 24: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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, …)

Page 25: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 26: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 27: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 28: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 29: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 30: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

Sistemas Operativos LEIC/LERCI 30V1. 7/30/2002

Tipos de Sistemas Operativos

Page 31: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 32: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 33: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 34: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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)

Page 35: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

Sistemas Operativos LEIC/LERCI 35V1. 7/30/2002

Arquitectura do Sistema Operativo

Page 36: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 37: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 38: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 39: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 40: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 41: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 42: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 43: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 44: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 45: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 46: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 47: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 48: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 49: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 50: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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).

Page 51: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 52: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 53: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 54: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 55: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

Sistemas Operativos LEIC/LERCI 55V1. 7/30/2002

Modelo Computacional

Page 56: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 57: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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

Page 58: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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.

Page 59: Sistemas Operativos - Autenticação · PDF fileSistemas Operativos LEIC/LERCI 3 V1. 7/30/2002 Questões de base • Para que serve um Sistema Informático? – Um sistema informático

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