estudo de caso: windows 8. história do windows até o windows 8.1 versões principais na história...

103
Estudo de caso: Windows 8

Upload: aurelio-vilalobos-lameira

Post on 07-Apr-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Estudo de caso: Windows 8

Page 2: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

História do Windows até o Windows 8.1

Versões principais na história do sistema operacional da Microsoft para PC

Page 3: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

MS-DOS• Sistema criado para IBM• Características:

• 16-bit• Único usuário• Linha de comando• 8 KB de memória

Page 4: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

História do Windows até o Windows 8.1

Versões principais na história do sistema operacional da Microsoft para PC

Page 5: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 6: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

História do Windows até o Windows 8.1

Versões principais na história do sistema operacional da Microsoft para PC

Page 7: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 8: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

NT-based Windows• Lançamento do Windows 2000

• 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• Características:

• Interface gráfica mais agradável

• Versão do XP para servidores: Windows 2003

Page 9: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

2000s: Windows baseados no NT (1)

Sistemas operacionais da DEC desenvolvido por Dave Cutler.

Page 10: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 11: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 12: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

2000s: Windows baseados no NT (2)

A Win32 API assegura a execução dos programas em quase todas as versões do Windows.

Page 13: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

NT-based Windows• Lançamento do Windows 2000

• 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• Características:

• Interface gráfica mais agradável

• Versão do XP para servidores: Windows 2003

Page 14: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 15: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

História do Windows até o Windows 8.1

Versões principais na história do sistema operacional da Microsoft para PC

Page 16: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Modern Windows• Crescente sucesso:

• 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

Page 17: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Diferenças entre versões

Page 18: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Estrutura do sistema

Page 19: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Arquivos principais do Windows 8.1

Page 20: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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)

Page 21: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 22: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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)

Page 23: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Programação no Windows (1)

Camadas de programação nos modernos sistemas Windows

Page 24: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 25: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 26: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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.

Page 27: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Programação no Windows (2)

Os componentes usados para construir subsistemas NT.

Page 28: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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• Somente Win32, pois foi o único mantido

Page 29: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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)

Page 30: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Programação no Windows (2)

Os componentes usados para construir subsistemas NT.

Page 31: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 32: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 33: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

A API nativa do NT (1)

Categorias comuns de tipos de objeto em modo kernel.

• Objetos: chamadas ao sistema executas em modo núcleo• Microsoft não disponibilizou as chamadas nativas

• Força a utilização do Win32

Page 34: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 35: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 36: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

A API nativa do NT (2)

Exemplos de chamadas nativas à API do NT que usam manipuladores para manipular objetos ao longo de fronteiras de processos.

Page 37: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

A API do Win32 (usada em linguagens como C/C++)

Exemplos de chamadas do Win32 API e sua relação com as chamadas nativas da API do NT.

Page 38: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 39: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

O registro do Windows (1)

As chaves do registro do Windows. HKLM é uma abreviatura para HKEY LOCAL MACHINE.

Page 40: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

O registro do Windows (2)

Algumas das chamadas da API Win32 API que usam o registro.

Page 41: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Estrutura do sistema operacional

Organização do sistema em modo kernel.

Page 42: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

O Hardware Abstraction Layer (HAL) – camadas de abstração do hardware

Algumas das funções de hardware gerenciadas pelo HAL.

Page 43: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Drivers de dispositivo (1)

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.

Page 44: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Drivers de dispositivo (2)

Page 45: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Implementação do gerenciador de

objetos

A estrutura do objeto no nível executivo gerenciado pelo gerenciador de objetos.

Page 46: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Handles (descritores) (1)

Estrutura de dados para a tabela de descritores para uma tabela mínima com até 512 descritores.

Page 47: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Handles (2)

Estrutura para uma tabela com até 16 milhões de descritores.

Page 48: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Espaço de nomes dos objetos (1)

Procedimentos associados à manipulação de um novo objeto.

Page 49: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Espaço de nomes dos objetos (2)

Alguns diretórios típicos no espaço de nomes dos objetos.

Page 50: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Object Name Space (3)

Use of parse procedure:1.Executive component passes Unicode pathname for namespace2.Object manager searches through directories and symbolic links3.Object manager calls the Parse procedure for object type4.I/O manager creates IRP, allocate file object, send request to stack of I/O devices

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

Page 51: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Object Name Space (4)

Use of parse procedure:5.IRP passed down the I/O stack until it reaches device object representing the file system instance6.Device objects encountered as the IRP heads toward the file system represent file system filter drivers7.File system device object has a link to file system driver object

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

Page 52: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Object Name Space (5)

Use of parse procedure:8.NTFS fills in file object and returns it to I/O manager, which returns back up through all devices on the stack9.Object manager is finished with its namespace lookup10.Final step is to return back to the user-mode caller

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

Page 53: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Espaço de nomes dos objetos (6)

Passos usados no gerenciador de objetos e E/S na criação/abertura de um arquivo e obtenção do descritor de arquivo.

Page 54: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Espaço de nomes dos objetos (7)

Alguns tipos de objeto do executivo mais comuns gerenciados pelo gerenciador de objetos.

Page 55: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Espaço de nomes dos objetos (8)

Alguns tipos de objeto do executivo mais comuns.

Page 56: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Jobs, Processes, Threads, Fibers

Figure 11-22. 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.

Page 57: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Thread Pools and User-Mode Scheduling (1)

Key elements of UMS implementation:1.User-mode switching2.Re-entering the user-mode scheduler3.System call completion

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

Page 58: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Thread Pools and User-Mode Scheduling (2)

Figure 11-23. Basic concepts used for CPU and resource management.

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

Page 59: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Job, Process, Thread, and Fiber Management API Calls (1)

Diferenças do UNIX:1.A busca pelo caminho para encontrar o programa a ser executado é embutida no código de biblioteca para Win32.2.O diretório corrente de trabalho é um conceito do modo kernel do UNIX, mas uma string do modo usuário do Windows.3.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.

Page 60: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Job, Process, Thread, and Fiber Management API Calls (2)

Differences from UNIX:4. 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.5.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.

Page 61: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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

Page 62: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Comunicação entre ProcessosAs 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.

Page 63: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Sincronização entre Processos• Semáforos• Mutexes• Regiões Críticas• Eventos

Page 64: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Implementation of Processes and Threads (1)

Figure 11-24. 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.

Page 65: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Implementation of Processes and Threads (2)

Figure 11-24. 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.

Page 66: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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.

Page 67: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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 executa ela mesma o escalonador.

• As condições que fazem com a que thread execute o escalonador são:

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

Page 68: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

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.

Page 69: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Scheduling (2)

Figure 11-25. Mapping of Win32 priorities to Windows priorities.

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

Page 70: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Scheduling (3)

Figure 11-26. Windows supports 32 priorities for threads.

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

Page 71: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Scheduling (4)

Figure 11-27. An example of priority inversion.

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

Page 72: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Memory ManagementFundamental Concepts

• x86: endereços de 32 bits de largura• x64: endereços de 32 e 64 bits de largura

• Tamanho da página: 4Kb

Page 73: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Memory ManagementFundamental Concepts

Figure 11-28. 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.

Page 74: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Memory ManagementFundamental 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

Page 75: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Memory ManagementFundamental 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)

Page 76: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Memory-Management System Calls

Figure 11-29. 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.

Page 77: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Implementation of Memory Management

Figure 11-30. 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.

Page 78: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Page Fault Handling (1)

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

Page 79: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Page Fault Handling (1)

Figure 11-31. 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.

Page 80: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Page Fault Handling (2)

Categorias para falta de páginas:1.A página referenciada não está comprometida.2.Ocorreu violação de proteção3.Uma página compartilhada do tipo copiar se escrita estava para ser modificada4.A pilha precisa crescer5.A página referenciada está comprometida, mas não está mapeada

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

Page 81: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Page Replacement Algorithm (1)

Figure 11-32. The Windows self-map entries are used to map the physical pages of the page tables and page directory into

kernel virtual addresses (shown for 32-bit PTEs).Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Page 82: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Page Replacement Algorithm (2)

• Cada processo tem um conjunto de trabalho:

• Conjunto de trabalho: são as páginas mapeadas que estão na memória e que podem ser referenciadas sem uma falta de página

• Possuem valores mínimos e máximos

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

Page 83: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Page Replacement Algorithm (2)

Três níveis de atividade para o gerenciador do conjunto de trabalho:

1.Muita memória disponível

• Reinicia os bits de acesso e os transforma da idade de cada página

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

Page 84: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Page Replacement Algorithm (2)

Três níveis de atividade para o gerenciador do conjunto de trabalho:

2.Memória diminuindo

• Qualquer processo com quantidade significativa de páginas não utilizadas, para de adicionar páginas ao conjunto de trabalho e começa a substituir páginas mais antigas

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

Page 85: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

The Page Replacement Algorithm (2)

Três níveis de atividade para o gerenciador do conjunto de trabalho:

3.Memória está baixa

• Remove as páginas mais antigas, diminuindo os conjuntos de trabalho

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

Page 86: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Physical Memory Management (1)

Figure 11-33. Some of the major fields in the page frame database for a valid page.

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

Page 87: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Physical Memory Management (2)

Figure 11-34. The various page lists and the transitions between them.

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

Page 88: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Input/Output API Calls

Figure 11-35. Native NT API calls for performing I/O.

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

Page 89: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Device Drivers

Figure 11-36. A single level in a device stack.

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

Page 90: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

I/O Request Packets

Figure 11-37. The major fields of an I/O Request Packet.

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

Page 91: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Device Stacks

Figure 11-38. 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.

Page 92: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Implementation of the NT File System (1)

Figure 11-39. The NTFS master file table.Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Page 93: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Implementation of the NT File System (2)

Figure 11-40. The attributes used in MFT records.

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

Page 94: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Storage Allocation (1)

Figure 11-41. 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.

Page 95: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Storage Allocation (2)

Figure 11-42. 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.

Page 96: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Storage Allocation (3)

Figure 11-43. The MFT record for a small directory.

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

Page 97: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

File Compression

Figure 11-44. (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.

Page 98: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Security in Windows 8

Security properties inherited from NT:1.Secure login with antispoofing measures.2.Discretionary access controls.3.Privileged access controls.4.Address space protection per process.5.New pages must be zeroed before being mapped in.6.Security auditing.

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

Page 99: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Fundamental Security Concepts

Figure 11-45. Structure of an access token.

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

Page 100: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Security API Calls (1)

Figure 11-46. An example security descriptor for a file.

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

Page 101: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Security API Calls (2)

Figure 11-47. The principal Win32 API functions for security.

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

Page 102: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

Security Mitigations

Figure 11-48. Some of the principal security mitigations in Windows.

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

Page 103: Estudo de caso: Windows 8. História do Windows até o Windows 8.1 Versões principais na história do sistema operacional da Microsoft para PC

End

Chapter 11

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