71
Estudo de caso do Windows Profª Jocelma Rios 23/05/2011

Estudo de caso do windows

Embed Size (px)

Citation preview

Page 1: Estudo de caso do windows

Estudo de caso do Windows

Profª Jocelma Rios23/05/2011

Page 2: Estudo de caso do windows

O que pretendemos esta semana:

● Apresentar a história da evolução do Windows como sistema operacional

● Conhecer os principais aspectos de projeto do Windows, como base no Windows XP

● Discutir sobre as diferenças apresentadas pelas diversas versões do Windows ao longo do tempo e o impacto sobre o mercado de software e os usuários

Page 3: Estudo de caso do windows

História● MS-DOS

– Win 1.0 / Win 2.0 / Win 3.0 / Win 3.1 / Win 3.11● Windows 95

– Ainda precisava do DOS● Windows 98● Windows Millenium● Windows 2000● Windows 2003● Windows XP → Windows Vista → Windows 7

Page 4: Estudo de caso do windows

MS-DOS● Monousuário● Memória limitada a 1 Mb → 640 Kb para

programas de usuário● 16 bits● FAT 16

Page 5: Estudo de caso do windows

Windows 1.0● Inspirado no Apple Lisa (Macintosh)

Page 6: Estudo de caso do windows

Windows 2.0● 1987● PC-AT

Page 7: Estudo de caso do windows

Windows 3.1● 1990● Sucesso comercial● Interface gráfica do

MS-DOS● Espaço de

endereçamento compartilhado (bugs!)

Page 8: Estudo de caso do windows

Windows 95

● Não elimina o MS-DOS, mas já faz algumas operações típicas de SO

● FAT-16– a versão Win 95 OEM

Release 2 implementava a FAT-32

● Já vinha com o Internet Explorer 1.0

Page 9: Estudo de caso do windows

Windows 95

● Memória virtual● 32 bits, mas não em sua

totalidade – alguma coisa ainda com16 bits

● Multiprogramação● Nomes de arquivos mais

longos – até 256 caracteres

Page 10: Estudo de caso do windows

Windows 98

● Mais funcionalidades são transferidas do MS-DOS● Ainda há partes do SO em 16 bits

Page 11: Estudo de caso do windows

Windows 98

● 4 Gb de memória virtual– 2 Gb privados para processo– 1 Gb compartilhado (bugs!)– 1 Mb para compatibilidade para o MS-DOS

● Kernel não re-entrante – Não permite executar vários processos em

modo kernel simultaneamente● Integração entre desktop e internet

– Acusação de monopólio

Page 12: Estudo de caso do windows

Windows Me – Windows Millenium Edition

● Muito semelhante ao Windows 98, só que com muito mais problemas

● Embora, com algumas facilidades:● Melhor

compartilhamento de imagens e músicas

● Aplicações voltadas para a Internet

● Jogos multiusuários● Restore System

Page 13: Estudo de caso do windows

Windows NT

● Windows New Technology

● 1a versão em 1999

● Esperava-se grande sucesso, mas...

● … exigia máquinas com muitos recursos, que na época não era muito comum

Page 14: Estudo de caso do windows

Windows NT 4.0

● Mesma interface do Win98

● Portabilidade✔ 16 milhões de

linhas de código em C, C++ e Assembly

✔ Pentium, Alpha, MIPS e Power PC

Page 15: Estudo de caso do windows

Windows NT

Page 16: Estudo de caso do windows

Win95/Win98 X Windows NT

Page 17: Estudo de caso do windows

Windows 2000

● Mesma interface do Windows 98● Era, na verdade, o Windows NT 5.0

– Por que será?● Modo usuário e modo supervisor● Possibilidade de cluster: duas ou mais máquinas

como se fosse uma única● Finalmente, livre do MS-DOS

Page 18: Estudo de caso do windows

Windows 2000

Quadro comparativo entre as versões

Page 19: Estudo de caso do windows

Estrutura do Windows 2000

Page 20: Estudo de caso do windows

Windows XP

● Eliminou alguns cenários de reboot

● Estruturas críticas do Kernel passaram a ser read-only

● 1o SO para usuários com o núcleo do NT

● 32 e 64 bits● Problemas com acusação

de monopólio, por causa do Windows Media Player

Sucessor do Windows 2000, nos computadores

pessoais

Page 21: Estudo de caso do windows

Princípios de projeto – Windows XP

● Segurança● Confiabilidade● Compatibilidade com aplicações● Desempenho● Extensibilidade● Portabilidade● Suporte internacional

Page 22: Estudo de caso do windows

Windows XP - Segurança

O Windows NT recebeu o certificado C2 de segurança do governo dos Estados Unidos, ou seja, nível de proteção moderado contra software defeituoso e ataques

Page 23: Estudo de caso do windows

Windows XP - Confiabilidade● O Windows 2000 é tido como um dos SO mais

confiáveis da Microsoft● O Windows XP acrescenta algumas

funcionalidades para verificação da saúde da máquina

● Faz verificação de falhas mais sutis em drivers● Interface gráfica mais fácil de usar que os

anteriores

Page 24: Estudo de caso do windows

Windows XP - Compatibilidade

● Melhor compatibilidade com aplicações de usuário que o Win95 e Win98

– Não é tão simples quanto parece...– Muitos problemas por conta das inúmeras versões

do Windows ainda em funcionamento– Muitos problemas com o uso das API,

especialmente pelo fato de que alguns de seus componentes ainda são em 16 bits, para que se possa manter-se compatíveis com aplicações de usuário mais antigas

Page 25: Estudo de caso do windows

Windows XP - Desempenho

● Foi muito além do Win98, e até mesmo do Win 2000, porém com custos na confiabilidade e segurança

● Seus subsistemas se comunicam entre si através das LPC (Local Procedure Call)

● Projetado para multiprocessamento simétrico– Vários threads podem ser executados

simultaneamente em computadores multiprocessados

Page 26: Estudo de caso do windows

Windows XP - Extensibilidade

● Arquitetura em camadas– Para facilitar os upgrades

● O executivo do SO roda no kernel e fornece serviços básicos do sistema

– Os subsistemas de servidor operam em modo usuário● Permite que aplicações MS-DOS e do POSIX executem

em locais apropriados, semelhante a uma máquina virtual● Admite processamento distribuído Refere-se à capacidade Refere-se à capacidade

do sistema operacional do sistema operacional acompanhar os avanços acompanhar os avanços

na tecnologia de na tecnologia de computaçãocomputação

Page 27: Estudo de caso do windows

Windows XP - Suporte internacional

● As API NLS (National-Language-Support) fornece rotinas especializadas para formatar datas, horas e moedas de acordo com cada país

● Código de caracteres nativo – UNICODE– Aceita caracteres ANSI

Page 28: Estudo de caso do windows

Windows XP - Componentes do sistema● Arquitetura em camadas

– Em modo protegido● HAL (hardrware abstraction layer)● Kernel● Executivo (núcleo)

– Em modo usuário● Sub-sistemas de ambiente● Sub-sistemas de proteção● Etc.

● Esse tipo de arquitetura possibilita maior performance, pela facilidade de comunicação entre os diversos componentes do SO

Page 29: Estudo de caso do windows

Windows Server 2003

● Lançado em 2003, substituindo o W2K● Conhecido como Windows NT 5.2● Acrescentou melhorias com o serviço de rede e

no Active Directory● 4 versões

– Web edition, Standard edition, Enterprise edition e Datacenter edition

Page 30: Estudo de caso do windows

Windows Vista● Lançado em janeiro de 2007● Mudanças na interface em relação aos antecessores● Exige muitos recursos da máquina

– 1 Gb de RAM mínimo → ideal 2 Gb● 32 e 64 bits● Melhorou o compartilhamento peer-to-peer● Introduz a versão 3.0 do Microsoft NET Framework ● Instalação de drivers em modo kernel● Segurança: proteção contra vírus e worms via rede● Mais redução do reboot● IE7 / Windows Media Player 11

Page 31: Estudo de caso do windows

Windows Vista

Versões do Windows VistaVer detalhes em http://windows.microsoft.com/pt-BR/windows7/products/compare

Page 32: Estudo de caso do windows

Windows Server 2008● Lançado em fevereiro de 2008● 4 versões: Standard, Web, Enterprise e Datacenter● Substituto do Windows Server 2003● Suporte a multiprocessamento simétrico em duas e

quatros vias● Standard → Memória

– Até 4 Gb para sistemas de 32 bits– Até 64 Gb para sistemas de 64 bits

● Datacenter– Suporte até 64 CPU

Page 33: Estudo de caso do windows

Windows Server 2008● Núcleo do servidor

– Pode-se optar por instalar somente os serviços essenciais, liberando os recursos da máquina

– Requer menos manutenção e atualização● Windows Power Shell

– Mais ferramentas– Linguagem de script integrada– Mais de 130 ferramentas

● Gerenciador do servidor– Guia para os administradores

Page 34: Estudo de caso do windows

Windows Server 2008● Virtualização nativa● NAP (Network Access Protection)

– Validação da política de integridade– Limitação de acesso à rede– Conformidade contínua

● RODC (Read-Only Domain Controller)– Permite manter um servidor somente leitura, para

casos de reduzida segurança da máquina física● Clustering Failover

– Avalia se os recursos do servidor estão disponíveis e suficientes para ativar o cluster

Page 35: Estudo de caso do windows

Windows 7● Lançado em Julho de 2009

– 7o Windows User estável: W95 → W98 → ME → 2000 → XP → Vista → 7

● Poucas atualizações se comparado ao Vista● Leitura nativa de Blu-Ray e HD-DVD● Instalação do sistema em HD virtual (imagens)● IE 8 e 9 / Win Media Player 12● Conceito de bibliotecas● Modo Windows XP● Arquitetura modular, semelhante ao Windows Server 2008

(?)

Page 36: Estudo de caso do windows

Windows 7

Mais detalhes em: http://windows.microsoft.com/pt-BR/windows7/products/compare?T1=tab20

Page 37: Estudo de caso do windows

Funcionamento do Windows XP● Componentes do sistema

– HAL / Kernel / Executivo● Subsistema de ambiente

– MS-DOS / Win 16 bits / Win 32 bits / POSIX● Interface de programação

– Gerência de processos / Gerência de memória● Sistemas de arquivos

– NTFS / Recuperação / Segurança● Rede

– Interface / Protocolos / Processamento distribuído / Servidores / Domínios / Active Directory / DNS

Page 38: Estudo de caso do windows

HAL● É a camada de software que esconde as diferenças

de hardware dos níveis superiores do sistema operacional

– Cria uma espécie de máquina virtual para os subsistemas

– Auxilia na portabilidade– No Win XP, bastava uma versão de driver para

qualquer que seja a plataforma da máquina

Page 39: Estudo de caso do windows

HAL● Por questões de eficiência, às vezes opta-se por

fazer o acesso direto ao hardware, porém...

Page 40: Estudo de caso do windows

Kernel

● Constrói abstrações de nível mais alto a partir das fornecidas pela HAL

● Permanece sempre na memória e sua execução nunca é preemptada, ou seja, tem prioridade máxima

● Maior parte escrita em C● Possui 5 'responsabilidades' principais:

– Despachante (semáforos, locks, timers)– Threads e escalonamento– Implementação de primitivas de sincronismo– Interrupções de software– Exceções e interrupções

Page 41: Estudo de caso do windows

Kernel

● Despachante (semáforos, locks, timers)– Fornece o alicerce para o executivo e os

subsistemas– Prioridade em 32 níveis

● Threads e escalonamento– Para cada processo → uma ou mais threads– 6 estados: ready, standy (1a da fila), running,

waiting, transition (blocked) e terminated – Funciona em tempo real, mas não rigidamente, pois

não garante que uma thread de tempo real começará a executar dentro de um limite de tempo em particular

Page 42: Estudo de caso do windows

Kernel

● Implementação de primitivas de sincronismoAs estruturas de dados fundamentais do SO são gerenciadas como objetos usando facilidades comuns de alocação, contagem de referência e segurançaObjetos despachantes: controlam despacho e sincronismo

– Eventos: registro de ocorrência de evento– Mutantes: fornece exclusão mútua– Mutex: fornece exclusão mútua livre de deadlock– Semáforos: atua como contador de threads que acessam o

recurso– Processos: encapsula um espaço de endereço virtual,

threads e temporizadores– Thread: entidade escalonada, associada ao processo– Temporizador: sinaliza tempos-limite

Page 43: Estudo de caso do windows

Kernel● Interrupções de software

– Chamada de procedimento assíncrona● Interrompem uma thread em execução e chamam

um procedimento● Usadas para iniciar uma nova thread, terminar

processos e fornecer notificação de que uma E/S assíncrona foi concluída

– Chamadas de procedimento adiadas● Usadas para postergar o processamento da

interrupção

Page 44: Estudo de caso do windows

Kernel● Exceções e interrupções

– O Win XP define várias exceções independentes de arquitetura, incluindo:

● Violência de acesso à memória● Overflow de inteiros● Overflow e underflow de ponto flutuante● Divisão de inteiro por zero● Divisão de ponto flutuante por zero● Instrução ilegal● Falta de alinhamento de dados● Instrução privilegiada● Erro de leitura de página● Violação de acesso● Cota de arquivo de página ultrapassada, etc.

Page 45: Estudo de caso do windows

Kernel● Exceções e interrupções

– Os tratadores de interceptação tratam de exceções simples.

– O tratamento de exceções elaborado é feito pelo despachante do Kernel. O despachante cria um registro de exceção Kernel contendo o motivo para exceção e encontra um tratador de exceção para lidar com ela.

– Quando ocorre uma exceção em modo kernel, o despachante da exceção chama uma rotina para localizar o tratador de exceção. Se nenhum tratador for encontrado, um erro fatal ocorrerá ('tela azul')

– O tratamento de exceções em modo usuário é mais complexo, porque um subsistema de ambiente (ex: POSIX) configura uma porta de depurador e uma orta de exceção para cada processo criado.

Page 46: Estudo de caso do windows

Executivo● Gerenciador de objetos● Gerenciador de processos● Gerenciador de chamadas● Gerenciador de E/S● Gerenciador de cache● Monitor de referência de segurança● Gerenciador de Plug-and-play● Registry● Booting Fornece um

conjunto de serviços utilizados

por todos os subsistemas de

ambiente

Page 47: Estudo de caso do windows

Executivo

● Tipos de objetos

Page 48: Estudo de caso do windows

Subsistemas de ambiente● São processos do modo usuário dispostos sobre os

serviços executivos originais do Win XP, para permitir a execução de programas desenvolvidos para outros SO

● Cada subsistema fornece um ambiente de aplicação isolado; assim uma falha não interfere nos demais processos

● Win 32 → ambiente operacional principal– avalia se o novo processo pode ser executado por ele

próprio ou se é necessário chamar um dos subsistemas

Page 49: Estudo de caso do windows

Sub-sistemas de ambiente

● Ambiente MS-DOS● Ambiente Windows de 16 bits● Ambiente Windows de 32 bits no IA64● Ambiente Win32● Subsistema POSIX● Subsistema de logon e segurança

Page 50: Estudo de caso do windows

Sistemas de arquivos● FAT 16

– Fragmentação interna– Limitação de tamanho → 2 Gb– Falha de proteção de acesso a arquivos

● FAT 32– Melhorou nas questões de tamanho e de fragmentação interna

● NTFS → atual– Recuperação de dados– Tolerância a falhas– Arquivos e sistema de arquivos grandes– Múltiplos fluxos de dados– Nomes UNICODE– Criptografia / compactação de arquivos– Cópia de sombra de volume

Page 51: Estudo de caso do windows

Sistemas de arquivos● Esquema interno do NTFS

– A entidade fundamental é o volume– Um volume pode ocupar um disco inteiro, parte dele ou

estar espalhado em vários discos– Não lida com setores individuais e sim com clusters

● Cluster é conjunto de setores como unidade de alocação de disco

– Quanto menor o cluster, menor a fragmentação interna● Volumes de até 512 Mb cluster=setor; para até 1 Gb, 1 Kb;

para até 2 Gb, 2 Kb; para maiores , 4 Kb– O endereçamento de disco é baseado em clusters lógicos

Page 52: Estudo de caso do windows

Sistemas de arquivos● Árvore B+ do NTFS

– Organização em árvore de diretórios– Cada diretório utiliza uma estrutura de dados →

árvore B, que armazena o índice dos nomes de arquivo

– Elimina o custo de reorganização, e tem a propriedade de cada caminho da raiz até a folha ser igual

– A raiz de índice de um diretório contém o nível superior da árvore B+

Page 53: Estudo de caso do windows

Sistemas de arquivos● Metadados do NTFS

– São armazenados em arquivos– Arquivo de log: registra todas as atualizações de metadados– Arquivo de volume: contém o nome do volume, a versão do NTFS que

formatou o volume e um bit que informa se o volume foi adulterado– Tabela de definição de atributo: indica quais tipos de atributos são

utilizados e quais operações podem ser realizadas em cada um deles– Diretório-raiz– Arquivo de mapa de bits: indica quais clusters em um volume estão

alocados aos arquivos e quais estão livres– Arquivo de boot: contém o código de boot– Arquivo de cluster defeitusos: registra áreas defeituosas

Page 54: Estudo de caso do windows

Sistemas de arquivos● Recuperação no NTFS

– Todas as atualizações à estrutura de dados do sistema de arquivos são realizadas dentro de transações.

– Antes de uma transação ser alterada, a transação escreve um registro de log que contém informações de restauração e desrestauração

– Depois de a estrutura de dados ter sido alterada, a transação escreve um registro commit no log para informar o sucesso da operação

Page 55: Estudo de caso do windows

Sistemas de arquivos● Segurança no NTFS

– Cada arquivo NTFS referencia um descritor de segurança que contém o token de acesso do proprietário do arquivo e uma lista de controle de acesso que indica os privilégios a cada usuário que possui acesso ao arquivo

Page 56: Estudo de caso do windows

Programação – Win 32 API

● API – Application Programming Interface– Conjunto de funções que fazem chamadas

ao sistema ou operam em espaço do usuário

● Novas funções são acrescentadas constantemente● Existe pequenas variações de uma versão do

Windows para outra, o que causa algumas incompatibilidades

● Não é orientado a objetos, pois faltam os conceitos de herança e polimorfismo

Page 57: Estudo de caso do windows

Informações de controle

● Arquivos .ini● A partir do Win 95:

registryregistry● Editor: regedit.exeEditor: regedit.exe

Page 58: Estudo de caso do windows

DLL – Dynamic Link Libraries

● .dll – arquivo contendo um conjunto de procedimentos interrelacionados

● Chamadas a procedimentos em DLL são feitas de maneira indireta por meio de um vetor

● Apenas uma cópia da DLL existe na memoria em dado momento, o que otimiza o uso desse recurso

Page 59: Estudo de caso do windows

Interface do programador● Gerenciamento de processosGerenciamento de processos

– No XP, um processo é a execução de uma aplicação, e uma thread é uma unidade de código que pode ser agendada pelo SO

– Cada processo contém uma ou mais threads– O processo é iniciado quando um processo cria

através da rotina CreateProcess(), carregando as DLL do processo a ser criado e cria também uma thread primária → CreateThread()

– Cada thread é criada com sua própria pilha, de 1 Mb (default)

Page 60: Estudo de caso do windows

Interface do programador● Escalonamento de processosEscalonamento de processos

– Descritores de instância● É o endereço virtual onde o arquivo é carregado

– Prioridades: ● IDLE_PRIORITY_CLASS (nível 4)● NORMAL_PRIORITY_CLASS (nível 8)● HIGH_PRIORITY_CLASS (nível 13)● REALTIME_PRIORITY_CLASS (nível 24)

– Somente quem tem privilégio pode alterar a prioridade de um processo → SetPriorityClass()

Page 61: Estudo de caso do windows

Interface do programador● Escalonamento de processosEscalonamento de processos

– Regra de escalonamento● Quando o usuário estiver executando em um

programa interativo, o sistema precisa fornecer um desempenho especialmente bom para o processo

● Por default, todos são NORMAL_PRIORITY_CLASS

● Faz distinção entre processos de primeiro e de segundo plano (ex: serviços)

● Quando o processo passa para o primeiro plano, o SO aumenta o quantum de escalonamento (geralmente 3x mais)

Page 62: Estudo de caso do windows

Interface do programador● EscalonamentoEscalonamento de processos de processos

– Prioridade de thread● Uma thread começa com prioridade igual a de sua

classe– LOWEST, BELOW_NORMAL, NORMAL, ABOVE,

HIGHEST– IDLE → sempre a mais baixa, 16 para threads de tempo

real e 1 para threads de prioridade variável– TIME_CRITICAL → NÍVEL 31– O kernel ajusta a prioridade da thread dinamicamente,

dependendo se for I/O bound ou CPU bound● A prioridade pode ser alterada pela função

SetPriorityThread()

Page 63: Estudo de caso do windows

Interface do programador● EscalonamentoEscalonamento de processos de processos

– Sincronismo de thread● Trata região crítica● Semáforos e mutex● EnterCriticalSection () → coloca threads à

espera de permissão para RC– Fibers

● Similar a uma thread, mas como processamento não-preemptivo

● Usado para manter compatibilidade com aplicações Unix escritas para este modelo

Page 64: Estudo de caso do windows

Interface do programador● EscalonamentoEscalonamento de processos de processos

– Banco de threads● Evita o dispêndio do processador com a

criação de inúmeras threads a cada processo

● Busca reduzir o número de threads pendentes adiando ligeiramente as requisições

Page 65: Estudo de caso do windows

Interface do programador● Comunicação entre processos

– Trata através do compartilhamento de objetos do kernel

– Troca de mensagens● PostMessage() → assíncrona● PostThreadMessage() → assíncrona● Send-Message() → síncrona

– Cada thread possui sua própria fila de mensagens

Page 66: Estudo de caso do windows

Interface do programador● Gerência de memória

– Memória virtual● VirtualAlloc()● VirtualFree()● Múltiplos tamanho de página de memória

– Arquivos mapeados em memória● Útil para compartilhamento de um arquivo por

mais de um processo● Os processos podem alocar o espaço de memória

para compartilhamento, sem necessariamente usar um arquivo

Page 67: Estudo de caso do windows

Interface do programador● Gerência de memória

– Pilhas heap● Região reservado do espaço de endereços de memória● Geralmente tem um 1 Mb, sendo uma para cada processo criado● Pode ser compartilhada, mas de forma sincronizada, para

garantir consistência– Armazenamento local e thread

● Útil para funções que contam com dados globais ou estáticos, e que por isso não funcionam bem em ambiente multithread

Page 68: Estudo de caso do windows

Redes● Interface → NDIS (Network Device Interface Specification)

– Permite que as configurações de um protocolo não interfiram nos demais

● Protocolos– Netware - IPX/SPX– TCP/IP– PPTP (Point-to-point tunneling protocol)– WebDAV (Web Distributed Authoring and Versioning)

● Baseado em HTTP, para autoria colaborativa na web– AppleTalk

● Conexão com Mac

Page 69: Estudo de caso do windows

Ferramentas administrativas● Agendador de tarefas● Configuração do sistema● Diagnóstico de Memória do Windows● Firewall● Fontes de dados (ODBC)● Gerenciador do computador● Iniciador iSCSI● Monitor de deseempenho● Serviços de componentes● Serviços● Visualizador de eventos● Windows PowerShell Modules

Page 70: Estudo de caso do windows

Para refletir...

Analisando tecnicamente o Windows sempre perde para o Unix. Por que então algumas

empresas ainda mantém parte de seus servidores na plataforma

Windows?

Page 71: Estudo de caso do windows

Referências

● SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G. Sistemas operacionais com Java. Tradução de Daniel Vieira. Revisão técnica de Sérgio Guedes de Souza. 7. ed. Revista e ampliada. Rio de Janeiro: Elsevier, 2008. Cap. 22