Estudo de caso do windows

6,664 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,664
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
173
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Estudo de caso do windows

  1. 1. Estudo de caso do WindowsProfª Jocelma Rios23/05/2011
  2. 2. 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
  3. 3. 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
  4. 4. MS-DOS● Monousuário● Memória limitada a 1 Mb → 640 Kb para programas de usuário● 16 bits● FAT 16
  5. 5. Windows 1.0● Inspirado no Apple Lisa (Macintosh)
  6. 6. Windows 2.0● 1987● PC-AT
  7. 7. Windows 3.1● 1990● Sucesso comercial● Interface gráfica do MS-DOS● Espaço de endereçamento compartilhado (bugs!)
  8. 8. 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
  9. 9. 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
  10. 10. Windows 98● Mais funcionalidades são transferidas do MS-DOS● Ainda há partes do SO em 16 bits
  11. 11. 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
  12. 12. 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
  13. 13. Windows NT ● 1a versão em 1999● Windows New Technology ● Esperava-se grande sucesso, mas... ● … exigia máquinas com muitos recursos, que na época não era muito comum
  14. 14. 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
  15. 15. Windows NT
  16. 16. Win95/Win98 X Windows NT
  17. 17. 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
  18. 18. Windows 2000Quadro comparativo entre as versões
  19. 19. Estrutura do Windows 2000
  20. 20. Windows XP● Eliminou alguns cenários Sucessor do Windows de reboot 2000, nos computadores pessoais● 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
  21. 21. Princípios de projeto – Windows XP● Segurança● Confiabilidade● Compatibilidade com aplicações● Desempenho● Extensibilidade● Portabilidade● Suporte internacional
  22. 22. Windows XP - SegurançaO Windows NT recebeu o certificado C2 de segurança dogoverno dos Estados Unidos, ou seja, nível de proteçãomoderado contra software defeituoso e ataques
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. 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 do sistema operacional acompanhar os avanços na tecnologia de computação
  27. 27. 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
  28. 28. 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
  29. 29. 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 –
  30. 30. 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
  31. 31. Windows Vista Versões do Windows VistaVer detalhes em http://windows.microsoft.com/pt-BR/windows7/products/compare
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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 (?)
  36. 36. Windows 7Mais detalhes em:http://windows.microsoft.com/pt-BR/windows7/products/compare?T1=tab20
  37. 37. 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
  38. 38. 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
  39. 39. HAL● Por questões de eficiência, às vezes opta-se por fazer o acesso direto ao hardware, porém...
  40. 40. 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
  41. 41. 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
  42. 42. Kernel● Implementação de primitivas de sincronismo As estruturas de dados fundamentais do SO são gerenciadas como objetos usando facilidades comuns de alocação, contagem de referência e segurança Objetos 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
  43. 43. 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
  44. 44. 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.
  45. 45. 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.
  46. 46. 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
  47. 47. Executivo● Tipos de objetos
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. 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
  52. 52. 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+
  53. 53. 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
  54. 54. 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
  55. 55. 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
  56. 56. 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
  57. 57. Informações de controle● Arquivos .ini● A partir do Win 95: registry● Editor: regedit.exe
  58. 58. 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
  59. 59. Interface do programador● Gerenciamento 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)
  60. 60. Interface do programador● Escalonamento 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()
  61. 61. Interface do programador● Escalonamento 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)
  62. 62. Interface do programador● Escalonamento 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()
  63. 63. Interface do programador● Escalonamento 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
  64. 64. Interface do programador● Escalonamento 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
  65. 65. 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
  66. 66. 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
  67. 67. 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
  68. 68. 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
  69. 69. 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
  70. 70. Para refletir... Analisando tecnicamente o Windows sempre perde para o Unix. Por que então algumasempresas ainda mantém parte de seus servidores na plataforma Windows?
  71. 71. 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

×