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.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

Sistemas Operacionais
Sistemas Operacionais
Sistemas Distribuídos
Sistemas Operacionais Aula II
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
Sistema Operacional Introdução
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Sistemas operacionais
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Profa. Priscila Facciolli
Processos no Unix e Linux
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Chapter 4: Threads.
História do Windows XP Significa Windows “eXperience”.
Sistemas Operacionais
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC SISTEMAS OPERACIONAIS I Aula 4 – Conceitos Básicos
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Silberschatz and Galvin Operating System Concepts Unidade 1: Introdução O que é um sistema operacional? Systemas simples em lote (batch) Sistemas.
Concepts and Capabilities
Sistemas Operacionais
Sistemas Operacionais
Objetivos dos SOs: Prover interface entre os usuários e os recursos do sistema.
09/03/10 20:13 Claudio de Oliveira – 1/21.
Threads.
Sistemas Operacionais SISTEMA DE ENTRADA E SAÍDA
Conteúdo Estrutura do sistema operacional Funções do Kernel
Sistemas Operacionais I
Rodrigo Cristiano Silva
Concorrência em Java Threads em Java.
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistemas Distribuídos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Chamada Remota de Procedimentos
Concorrência entre Threads Java
Processo Entidade dinâmica e efêmera
Conteúdo Processos e threads Partes do processo
1 Por dentro do Windows: Gerenciamento de Memória Rodrigo Strauss
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas operacionais
Processos.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 4: Threads.
Nomeação de arquivos – Cap 4.1.1
Subsistema de Entrada e Saída do Kernel
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Infra-Estrutura de Software
ESTRUTURA DO SISTEMA OPERACIONAL
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Sistemas Operacionais
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Capítulo 4 Estrutura do Sistema Operacional
Sistemas de Informações Fundamentos da Computação 9. Sistemas Operacionais Márcio Aurélio Ribeiro Moreira
Estudo de caso: Windows 8
Transcrição da apresentação:

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

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

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

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

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

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

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

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

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

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

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

Diferenças entre versões

Estrutura do sistema

Arquivos principais do Windows 8.1

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)

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

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)

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

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

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

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.

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

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

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)

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

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

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

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

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

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

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.

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.

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

O registro do Windows (1) As chaves do registro do Windows. HKLM é uma abreviatura para HKEY LOCAL MACHINE.

O registro do Windows (2) Algumas das chamadas da API Win32 API que usam o registro.

Estrutura do sistema operacional Organização do sistema em modo kernel.

O Hardware Abstraction Layer (HAL) – camadas de abstração do hardware Algumas das funções de hardware gerenciadas pelo HAL.

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.

Drivers de dispositivo (2)

Implementação do gerenciador de objetos A estrutura do objeto no nível executivo gerenciado pelo gerenciador de objetos.

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

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

Espaço de nomes dos objetos (1) Procedimentos associados à manipulação de um novo objeto.

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

The Object Name Space (3) Use of parse procedure: 1.Executive component passes Unicode pathname for namespace 2.Object manager searches through directories and symbolic links 3.Object manager calls the Parse procedure for object type 4.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.

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 instance 6.Device objects encountered as the IRP heads toward the file system represent file system filter drivers 7.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.

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 stack 9.Object manager is finished with its namespace lookup 10.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.

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.

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

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

Jobs, Processes, Threads, Fibers 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.

Thread Pools and User-Mode Scheduling (1) Key elements of UMS implementation: 1.User-mode switching 2.Re-entering the user-mode scheduler 3.System call completion Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Thread Pools and User-Mode Scheduling (2) Figure Basic concepts used for CPU and resource management. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

Scheduling (2) Figure Mapping of Win32 priorities to Windows priorities. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Scheduling (3) Figure Windows supports 32 priorities for threads. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Scheduling (4) Figure An example of priority inversion. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

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

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.

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

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)

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.

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.

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

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ção 3.Uma página compartilhada do tipo copiar se escrita estava para ser modificada 4.A pilha precisa crescer 5.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.

The Page Replacement Algorithm (1) Figure 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.

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.

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.

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.

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.

Physical Memory Management (1) Figure 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.

Physical Memory Management (2) Figure The various page lists and the transitions between them. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

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.

Device Drivers Figure A single level in a device stack. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

I/O Request Packets Figure The major fields of an I/O Request Packet. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

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.

Implementation of the NT File System (1) Figure The NTFS master file table. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

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.

Storage Allocation (1) 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.

Storage Allocation (2) 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.

Storage Allocation (3) Figure The MFT record for a small directory. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

File Compression 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.

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.

Fundamental Security Concepts Figure Structure of an access token. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Security API Calls (1) Figure An example security descriptor for a file. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Security API Calls (2) Figure The principal Win32 API functions for security. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

Security Mitigations Figure Some of the principal security mitigations in Windows. Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.

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