A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estudo de caso: Windows 8

Apresentações semelhantes


Apresentação em tema: "Estudo de caso: Windows 8"— Transcrição da apresentação:

1 Estudo de caso: Windows 8

2 História do Windows até o Windows 8.1
Versões principais na história do sistema operacional da Microsoft para PC

3 MS-DOS Sistema criado para IBM Características: 16-bit Único usuário
Linha de comando 8 KB de memória

4 História do Windows até o Windows 8.1
Versões principais na história do sistema operacional da Microsoft para PC

5 MS-DOS-Based Windows Primeira interface gráfica MS-DOS ainda existente
Windows 3.0: interface gráfica Windows 95: SO mais completo: Memória Virtual; Gerenciamento de processos; Multiprogramação; Programação 32-bits. Problemas de segurança: isolação entre aplicações e SO Windows 98 e ME: algumas correções, porém continua com problemas de instabilidade Isolação: programas funcionavam no mesmo espaço de endereçamento Se uma para, o sistema para

6 História do Windows até o Windows 8.1
Versões principais na história do sistema operacional da Microsoft para PC

7 NT-based Windows NT : New Tecnology e processador Intel 860 (codinome N10) Primeiro sistema não basado sobre o MS-DOS Criado pelo projetista David Cutler, da DEC Feito para funcionar em diferentes processadores e versões antigas do Windows baseadas no MS-DOS Baseado na tecnologia OS/2, API da IBM – 32 bits

8 2000s: Windows baseados no NT (1)
Sistemas operacionais da DEC desenvolvido por Dave Cutler.

9 NT-based Windows Comuns em sistemas 32 Bits
Threads como unidade de concorrência Bibliotecas são unidades de composição Fork/exec implementadas por uma única operação sem que se faça uma cópia do processo primeiro Suporte para as API OS/2, porém, utilizava a API da Microsoft Win32

10 NT-based Windows Demandava muita memória
Poucas aplicações 32 bits disponíveis Incompatibilidade entre drivers e aplicações Era forte em servidores

11 NT-based Windows Lançamento do Windows 2000 Características:
Suportava apenas processadores x86 Características: Plug-and-play Serviço de diretório de redes Melhora de gerenciamento de energia Lançamento do Windows XP Interface gráfica mais agradável Versão do XP para servidores: Windows 2003

12 2000s: Windows baseados no NT (2)
A Win32 API assegura a execução dos programas em quase todas as versões do Windows.

13 NT-based Windows Lançamento do Windows Vista (2006) Características:
Inovações na interface gráfica Novas características de segurança Limpeza de código Melhoras no desempenho Escalabilidade Confiabilidade Versão de servidor: Windows 2008 Número maior de linhas de código para manter compatibilidade Número maior DLL, exe (system32 maior) Lançamento do Windows 7: otimizado para várias arquiteturas

14 História do Windows até o Windows 8.1
Versões principais na história do sistema operacional da Microsoft para PC

15 Modern Windows Crescente sucesso: Criação do Windows 8
Tablets, smartphones Serviços em nuvem Serviços da web: vídeos, redes sociais, etc Criação do Windows 8 Integração com vários dispositivos Reclamações: Menu iniciar Interface de tablets em desktops Lançamento do Windows 8.1 para sanar essas reclamações Melhor integração com serviços em nuvem Aumento no número de programas

16 Diferenças entre versões

17 Arquivos principais do Windows 8.1

18 Programação Windows 8.1 As interfaces de programação que as aplicações são construídas ficam abaixo das camadas applet e GUI Windows é composto por várias DLLs: Dynamic Library Links: bibliotecas que contém pequenos códigos que permitem os programas acessarem recursos do SO de forma dinâmica. Windows inclui interfaces de programação que são implementadas como serviços (processos separados)

19 Programação Windows 8.1 Aplicações se comunicam com serviços em modo usuário atrás de RPCs (Remote Procedures Calls) O núcleo do Windows: NTOS Oferece interface para chamadas ao sistema Somente programadores da Microsoft possuem acesso a essa camada

20 Programação Windows 8.1 Todas as interfaces de modo usuário são implementadas utilizando subsistemas. Executam em camadas acima do NTOS Suportava: OS/2 -> acabou no Windows XP POSIX -> Removida no Windows 8.1 Win32 -> Todas as aplicações são escritas no topo desse subsistema (WinFX, por exemplo)

21 Programação no Windows (1)
Camadas de programação nos modernos sistemas Windows

22 Programação Windows 8.1 Devido a necessidade de um único SO executar em desktops, celulares, tablets, etc, foi caindo em desuso o Win32 em favor do WinRT API WinRT provê um conjunto mais consistente de interfaces e comportamentos Win32 foi mantida pois WinRT não é capaz de prover todas as funcionalidades Separar gestão de recursos do modelo de programação Criação de processos

23 Programação Windows 8.1 Sistema Operacional decide o tempo de vida do processo (ao contrário de aplicações comuns do Win32): Executam apenas o atual Pouca capacidade de hardware = morte do processo Tarefas em background devem ser especificadas no WinRT Objetivo: economizar energia (bateria) e otimizar aplicativo corrente Melhor em dispositivos portáteis

24 Programação Windows 8.1 Uma aplicação é executada em uma sandbox chamada AppContainer. Se a aplicação precisa acessar recursos do sistema chama os processos intermediários Subsistemas são constituídos por quatro componentes: Processos de subsistemas; Conjunto de bibliotecas; “Ganchos” no CreateProcess; Suporte ao kernel.

25 Programação no Windows (2)
Os componentes usados para construir subsistemas NT.

26 Programação Windows 8.1 Processos de subsistemas: Um serviço
Inicializado pelo programa smss.exe como resposta a uma solicitação de CreateProcess no Win32 ou API correspondente smss.exe: gerenciador de sessões, programa inicial do modo usuário inicializado

27 Programação Windows 8.1 Conjunto de bibliotecas:
Implementa funções de alto nível do SO Contém rotinas de comunicação entre os processos utilizando o subsistema e o processo do subsistema Essa comunicação é feita pela LPC (local procedure call)

28 Programação no Windows (2)
Os componentes usados para construir subsistemas NT.

29 Programação Windows 8.1 “Ganchos” no CreateProcess
O gancho na chamada CreateProcess do Win32 detecta qual subsistema é necessário para o processo Consulta na imagem binária Solicita ao smss.exe a inicialização do subsistema O subsistema fica responsável pelo carregamento do programa

30 Programação Windows 8.1 Suporte ao kernel
O núcleo NT oferece facilidades na criação de subsistemas específicos do SO. Alguns códigos são obrigatórios Chamada ao sistema NtCreateProcess As chamadas ao sistema nativas incluem: Gerenciamento de endereços virtuais Threads Manipuladores e exceções nos processos

31 Categorias comuns de tipos de objeto em modo kernel.
A API nativa do NT (1) Objetos: estruturas de dados que encapsulam chamadas ao sistema executas em modo núcleo Microsoft não disponibilizou as chamadas nativas Força a utilização do Win32 Definição de objeto: primeiro tópico Categorias comuns de tipos de objeto em modo kernel.

32 A API nativa do NT (1) A cada criação de um novo objeto em modo núcleo é retornado um manipulador. Utilizado para realizar operações sobre o objeto Únicos por processos que os criaram Não há compartilhamento de manipuladores entre processos Entretanto, cria-se uma cópia protegida para outros processos acessarem Cada objeto tem um descritor de segurança Indica quem pode e quem não pode realizar operações sobre ele

33 A API nativa do NT (1) Nem todas as estruturas de dados criadas pelo sistema são objetos Nem todos os objetos são do modo núcleo Os únicos objetos do modo núcleo são aqueles que precisam ser nomeados, protegidos ou compartilhados. Representam algum tipo de abstração de programação implementada no núcleo Possuem tipo definido pelo sistema Possuem operações bem definidas Ocupam armazenamento no núcleo

34 A API nativa do NT (2) Exemplos de chamadas nativas à API do NT que usam manipuladores (descritores) para manipular objetos ao longo de fronteiras de processos.

35 A API do Win32 (usada em linguagens como C/C++)
Win32 tem várias chamadas o que as tornam complexas Estudaremos as de mais baixo nível Exemplos de chamadas do Win32 API e sua relação com as chamadas nativas da API do NT.

36 A API do Win32 (usada em linguagens como C/C++)
Windows dá suporte para WOW (Windows on Windows): WOW32 usado em sistemas 32 bits para executar aplicações 16 bits WOW64 usando em sistemas 64 bits para executar aplicações 32 bits

37 O registro do Windows (1)
Registros são um tipo especial de sistema de arquivos. Organizados em volumes separados chamados colmeias (hives) Quando o Windows é inicializado, uma colmeia específica (SYSTEM) é carregada para a memória SYSTEM carrega muitas informações do sistema, como drivers de determinados dispostivos conectados ao computador, etc. Antigamente, as informações ficavam em arquivos .ini (inicialização) espalhados no disco Registro reúne esses arquivos

38 O registro do Windows (1)
Problemas: -Complicado -Confuso -Qualquer um pode alterar (Interface regedit) Microsoft prometeu remover. Android e iOS não implementam pois é complexo e não há segurança As chaves do registro do Windows. HKLM é uma abreviatura para HKEY LOCAL MACHINE.

39 O registro do Windows (2)
Registros são guardados em disco Backup automático periódico Algumas das chamadas da API Win32 API que usam o registro.

40 Estrutura do sistema operacional
Seção anterior: programação em modo usuário Agora: SO internamente Pouco se sabe da estrutura do SO Microsoft libera pouca parte do código para universidades Organização do sistema em modo kernel.

41 O Hardware Abstraction Layer (HAL) – camadas de abstração do hardware
Windows não pode ser recompilado todas as vezes para hardwares diferentes Algumas das funções de hardware gerenciadas pelo HAL.

42 Drivers de dispositivo (1)
São bibliotecas de ligação dinâmica (DLL) Visão simplificada da pilha de dispositivos para dois volumes do NTFS file volumes. O pacote de requisição de E/S (IRP) é passado para do topo até a base. As rotinas apropriadas dos drivers associados são invocadas em cada nível da pilha. As pilhas dos dispositivos também consistem em objetos alocados especificamente para cada pilha.

43 Drivers de dispositivo (2)

44 Handles (descritores) (1)
Objetos: estruturas de dados que encapsulam chamadas ao sistema executas em modo núcleo Estrutura de dados para a tabela de descritores para uma tabela mínima com até 512 descritores.

45 Estrutura para uma tabela com até 16 milhões de descritores.
Handles (2) Estrutura para uma tabela com até 16 milhões de descritores.

46 Espaço de nomes dos objetos (1)
Procedimentos associados à manipulação de um novo objeto mesmo quando não há processo utilizando

47 Espaço de nomes dos objetos (2)
Alguns diretórios típicos no espaço de nomes dos objetos.

48 Espaço de nomes dos objetos (3)
Alguns tipos de objeto do executivo mais comuns gerenciados pelo gerenciador de objetos.

49 Espaço de nomes dos objetos (4)
Alguns tipos de objeto do executivo mais comuns.

50 Jobs, Processes, Threads, Fibers
Filamentos – threads leves gerenciadas inteiramente no espaço do usuário Figure The relationship between jobs, processes, threads and fibers. Jobs and fibers are optional; not all processes are in jobs or contain fibers. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

51 Jobs, Processes, Threads, Fibers
Figure Basic concepts used for CPU and resource management. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

52 Thread Pools and User-Mode Scheduling (1)
Key elements of UMS implementation: User-mode switching Re-entering the user-mode scheduler System call completion Surgiu no Windows 7 Expõe diferença entre threads do modo usuário e núcleo 3 – Término da chamada ao sistema Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

53 Job, Process, Thread, and Fiber Management API Calls (1)
Diferenças do UNIX: A busca pelo caminho para encontrar o programa a ser executado é embutida no código de biblioteca para Win32. O diretório corrente de trabalho é um conceito do modo kernel do UNIX, mas uma string do modo usuário do Windows. UNIX analisa a linha de comando e passa um vetor de parâmetros, enquanto o Win32 deixa a análise de argumentos para o programa individual (pode tratar caracteres curingas, por exemplo, *txt) Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

54 Job, Process, Thread, and Fiber Management API Calls (2)
Differences from UNIX: No UNIX, o descritor define se os descritores de arquivos podem ou não ser herdados. No Windows é uma propriedade do descritor e do parâmetro de criação do processo. Novos processos passam informações diretamente sobre a sua janela primária no Win32. No UNIX essa informação é passada como parâmetros. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

55 Job, Process, Thread, and Fiber Management API Calls (3)
Differences from UNIX: 6.Windows não possui um bit SETUID como uma propriedade do executável, mas um processo pode criar outro que seja executado como um usuário diferente (com o token apropriado). O descritor de processos retornado pelo Windows pode ser usado para modificar o novo processo/thread de várias maneiras. UNIX apenas faz modificações ao novo processo entre as chamadas fork e exec. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

56 Comunicação entre Processos
As threads podem se comunicar de várias maneiras: Pipes Enviam bytes ou mensagens Mailslots Característica do OS/2 (compatibilidade) Semelhante aos pipes, mas unidirecional Soquetes Igual aos pipes, mas conectam processos em máquinas diferentes RPC (chamadas de procedimentos remota) Processo A pede para o Processo B abrir um espaço de endereçamento em B e retorne o resultado para A.

57 Sincronização entre Processos
Semáforos Mutexes Semelhante aos semáforos, porém mais simples por não conter contadores Regiões Críticas Semelhantes ao mutexes, porém utilizam espaço de endereçamento do processo criador Eventos Todos mecanismos funcionam em threads e não processos: Uma thread é bloqueada, enquanto outras threads do mesmo processo podem continuar

58 Implementation of Processes and Threads (1)
Figure Some of the Win32 calls for managing processes, threads, and fibers. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

59 Implementation of Processes and Threads (2)
Figure Some of the Win32 calls for managing processes, threads, and fibers. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

60 Criação de processos Um processo é criado quando há chamada ao comando CreateProcess, no Win32. Essa chamada invoca um procedimento (em modo usuário) na kernel32.dll que cria o processo.

61 Scheduling (1) Windows não possui uma thread de escalonamento central.
Quando a thread não pode mais executar, ela entra em modo núcleo e verifica qual thread vai ser executada. As condições que fazem com a que thread execute o escalonador são: A thread em execução se bloqueia devido a um semáforo, mutex, evento, I/O, etc Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

62 Scheduling (1) 2.Ela sinaliza um objeto (por exemplo, faz um up em um semáforo). 3.O quantum expira. 4.Uma operação de I/O é completada. 5.Um tempo de espera (wait) expira. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

63 Figure 11-25. Mapping of Win32 priorities to Windows priorities.
Scheduling (2) Prioridades sobre as threads e não processos -> um mesmo processo pode ter threads com diferentes prioridades Figure Mapping of Win32 priorities to Windows priorities. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

64 Figure 11-26. Windows supports 32 priorities for threads.
Scheduling (3) Prioridades do sistema (a primeira) também é conhecida como tempo real Usuário não pode executar threads de tempo real Figure Windows supports 32 priorities for threads. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

65 Figure 11-27. An example of priority inversion.
Scheduling (4) Move a thread com prioridade 8 para prioridade 15 Figure An example of priority inversion. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

66 Memory Management Fundamental Concepts
x86: endereços de 32 bits de largura x64: endereços de 32 e 64 bits de largura Tamanho da página: 4Kb

67 Memory Management Fundamental Concepts
Figure Virtual address space layout for three user processes on the x86. The white areas are private per process. The shaded areas are shared among all processes. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

68 Memory Management Fundamental Concepts
Páginas podem estar em três estados: Inválida: página não está mapeada Referência a ela causa page fault Comprometida: dados ou código foram mapeados para a página Reservada: páginas inválidas, porém reservadas para um processo A medida que vai precisando, as páginas vão se tornando comprometidas

69 Memory Management Fundamental Concepts
Arquivo de páginas Fica no disco Serve para armazenar as páginas que estão comprometidas Uma página comprometida apenas é escrita nesse arquivo caso vá para o disco (just-in-time) Se a página retorna para a memória, a cópia em disco vai para uma lista chamada lista de espera Windows suporta até 16 arquivos de páginas (espalhados por diversos discos)

70 Memory-Management System Calls
Figure The principal Win32 API functions for managing virtual memory in Windows. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

71 Implementation of Memory Management
Figure Mapped regions with their shadow pages on disk. The lib.dll file is mapped into two address spaces at the same time. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

72 Page Fault Handling (1) Dois bits: LRU Pré-Paginação – SuperFecth
Pré carga de páginas de aplicativos recém abertos Dois bits: A – Acesso D – Sujo LRU Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

73 Page Fault Handling (1) Figure A page table entry (PTE) for a mapped page on the Intel x86 and AMD x64 architectures. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

74 Page Fault Handling (2) Categorias para falta de páginas:
A página referenciada não está comprometida. Ocorreu violação de proteção Uma página compartilhada do tipo copiar se escrita estava para ser modificada A pilha precisa crescer A página referenciada está comprometida, mas não está mapeada 1 e 2 – Violação de acesso 3 – Tentou escrever em uma página somente leitura 4 – Página não alocada ainda 5 – Página não mapeada (falta de página comum) Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

75 Input/Output API Calls
Figure Native NT API calls for performing I/O. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

76 Figure 11-36. A single level in a device stack.
Device Drivers Windows implementa uma pilha de objetos de dispositivos para executar uma operação sobre um dispositivo Figure A single level in a device stack. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

77 Device Stacks Figure Windows allows drivers to be stacked to work with a specific instance of a device. The stacking is represented by device objects. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

78 Implementation of the NT File System (1)
NTFS – desenvolvido exclusivamente para Windows Blocos de 4 KB Metadados – configuração do sistema de arquivos (representado por $ no início da tabela) Primeiro registro descreve a própria tabela (Windows tem que começar por algum ponto) Figure The NTFS master file table. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

79 Implementation of the NT File System (2)
Figure The attributes used in MFT records. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

80 Figure 11-41. An MFT record for a three-run, nine-block stream.
Storage Allocation (1) Para n blocos podem existir de 1 a n séries A quantidade de séries depende do alocador (se ele conseguir colocar um bloco do lado do outro – 1 série) Figure An MFT record for a three-run, nine-block stream. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

81 Storage Allocation (2) Quando o arquivo é tão grande (ou tão fragmentado) que não cabe em um único registro na MFT – cria-se mais registros da MFT Figure A file that requires three MFT records to store all its runs. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

82 File Compression Compactar 48 blocos para 32 Duas séries finais ficam vazias Figure (a) An example of a 48-block file being compressed to 32 blocks. (b) The MFT record for the file after compression. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

83 End Chapter 11 Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.


Carregar ppt "Estudo de caso: Windows 8"

Apresentações semelhantes


Anúncios Google