Fundamentos SO Windows - Arquitetura e Componentes do NT PDF
Document Details
Uploaded by jorgecosta
ISEC
Tags
Summary
Este documento apresenta os fundamentos dos sistemas operativos Windows, concentrando-se na família NT e na sua arquitetura e componentes. Abrange desde as definições e conceitos até à arquitetura em camadas do Windows NT, incluindo os modos de utilizador e kernel, bem como a gestão de memória e o escalonador.
Full Transcript
Sistemas Operativos II Fundamentos sobre Sistemas Operativos Windows Fundamentos sobre SOs SO II – 24/25 Fundamentos sobre sistemas operativos Windows, família NT: Arquitetura e Componentes. Definições e Conceitos (Revisão) Estrutura de um...
Sistemas Operativos II Fundamentos sobre Sistemas Operativos Windows Fundamentos sobre SOs SO II – 24/25 Fundamentos sobre sistemas operativos Windows, família NT: Arquitetura e Componentes. Definições e Conceitos (Revisão) Estrutura de um sistema computacional Objetivos/funções Classificação Modelo/Estrutura Sistema Operativo Evolução família NT Arquitetura e Componentes do NT Arquitetura e Componentes do NT SO II – 24/25 Introdução Família Windows 3.x Processadores de 16 bits Suporte a multiprogramação cooperativa (CPU alterna regularmente para dar a impressão de execução simultânea dos processos. O processo em execução, termina voluntariamente a execução) Windows 95 Processadores de 32 bits Suporte a multiprogramação preemptiva (priorização de alguns processos em detrimento de outros) Memória virtual Família Windows NT (NT, 2000, 2003, 2008, 2012, 2016, 2019, …) Processadores de 32 bits e 64 bits Multiprogramação preemptiva Memória virtual Núcleo multi‐threaded Arquitetura e Componentes do NT SO II – 24/25 Arquitetura em Camadas do Windows NT A arquitetura do Windows NT é modular e organizada em camadas, o que facilita a portabilidade entre diferentes plataformas de hardware e oferece maior estabilidade e segurança, para manter a eficiência e integridade do SO. As principais camadas incluem: Modo de Utilizador (User Mode): Onde as aplicações e os subsistemas de ambiente de utilizador são executados. Modo Kernel (Kernel Mode): Onde o núcleo do sistema operativo e os componentes fundamentais são executados, com acesso direto ao hardware. Arquitetura e Componentes do NT SO II – 24/25 Modo Utilizador O Modo de Utilizador é a camada onde correm as aplicações e alguns serviços do sistema operativo, separados do acesso direto ao hardware. Ele é subdividido em várias partes: Subsistemas de Ambiente: Diferentes subsistemas que proporcionam compatibilidade com várias APIs e diferentes modelos de desenvolvimento, como o Windows API, POSIX, e OS/2 Subsistema de Segurança: Gere a autenticação e as permissões de acesso a recursos do sistema, através de entidades como o Local Security Authority (LSA) e o Security Reference Monitor (SRM) Processos e Threads: No Modo de Utilizador, as aplicações correm em processos, que por sua vez têm um ou mais threads. Cada processo tem o seu próprio espaço de endereços, isolado dos outros processos, o que protege o sistema contra falhas de memória em cascata. Arquitetura e Componentes do NT SO II – 24/25 Modo Kernel O Modo Kernel tem acesso direto ao hardware e controla as operações críticas do sistema operativo. O Kernel é o núcleo do sistema e é dividido em vários componentes fundamentais: Kernel Executivo: Esta camada fornece uma série de serviços essenciais e gere os recursos do sistema. O executivo do kernel inclui: Gestor de Processos Gestor de Memória Gestor de Entrada/Saída (I/O Manager) Gestor de Objetos Gestor de Ficheiros Arquitetura e Componentes do NT SO II – 24/25 Modo Kernel Kernel Núcleo (Microkernel): O verdadeiro núcleo do sistema, responsável por tarefas como gestão de interrupções, escalonamento de threads, sincronização e execução de operações de baixo nível. Escalonador (Scheduler): Responsável por atribuir tempo de CPU aos diferentes threads, utilizando um modelo de prioridade. O escalonador do Windows NT é preemptivo, o que significa que pode interromper um processo de baixa prioridade para executar um de maior prioridade. Gestão de Interrupções (Interrupt Management): Responsável por lidar com interrupções de hardware e garantir que o sistema responde rapidamente a eventos como cliques de rato ou sinais de dispositivos. Arquitetura e Componentes do NT SO II – 24/25 Modo Kernel Hardware Abstraction Layer (HAL): Camada crítica que abstrai as interações diretas com o hardware. Permite que o Windows NT seja portado para diferentes arquiteturas de hardware (x86, IA-64, etc.), ocultando as diferenças de hardware entre as plataformas. O HAL fornece uma interface padrão para que o kernel e os drivers possam interagir com o hardware sem precisar de saber detalhes específicos. Arquitetura e Componentes do NT SO II – 24/25 Resumindo Interface de chamadas ao sistema, chamada também de Interface NT nativa: Define o conjunto de serviços que o SO fornece aos processos: ~250 funções Implementada através de interrupções de software Principais características Multi‐threaded Reentrante (pode executar em simultâneo diferentes partes do código) Microkernel é responsável pelo escalonamento dos threads, implementação de sincronização e manipulação dos vetores de interrupção. Hardware Abstraction Layer (HAL) é utilizada para esconder dependências de hardware Subsistemas são utilizados para “emular” outros ambientes operativos. Ex: Win32, POSIX (Unix) e OS/2 (IBM) Local Procedure Call (LPC) módulo responsável pela troca de mensagens entre os processos Arquitetura e Componentes do NT SO II – 24/25 Arquitetura e Componentes do NT SO II – 24/25 Interação entre aplicação e kernel Windows NT A interação entre uma aplicação e o kernel do Windows NT segue um fluxo bem definido e estruturado, através de camadas de abstração que permitem que os programas interajam com o sistema operativo de forma controlada e segura. © Volnys Bernal 1998-2016 Os componentes principais envolvidos são o User Mode e o Kernel Mode, e entre outras interações, usam as chamadas ao sistemas como interface entre os 2 modos. Elas permitem que o código do User Mode solicite os serviços do sistema operativo que requerem acesso privilegiado ao hardware ou aos recursos de baixo nível do sistema. Arquitetura e Componentes do NT SO II – 24/25 Interação entre aplicações: LPC (Local Procedure Call) O LPC é um mecanismo de comunicação interprocessual (IPC) que permitir a troca de mensagens entre processos no mesmo sistema local, sem a necessidade de comunicação por rede. Como funciona: © Volnys Bernal 1998-2016 1. Cliente-Servidor: O modelo de LPC é baseado numa arquitetura de cliente-servidor: O servidor cria uma porta de comunicação (porta de conexão). O cliente liga-se a essa porta para criar uma nova porta de comunicação para trocar mensagens. 2. Tipos de Mensagens: Mensagens curtas: Podem ser transmitidas diretamente através das portas. Mensagens grandes: Se o tamanho for maior do que o permitido, o sistema usa uma memória compartilhada ou outros mecanismos para transferir grandes volumes de dados. 3. Tipos de Comunicação: Chamadas síncronas: O processo cliente faz uma solicitação e aguarda a resposta do servidor. Chamadas assíncronas: O cliente envia uma solicitação e pode continuar a execução sem esperar pela resposta imediata do servidor. 4. Sincronização: O sistema gere a fila de mensagens trocadas entre o cliente e o servidor, garantindo que as comunicações sejam realizadas de forma organizada e que os processos recebam as respostas esperadas. Arquitetura e Componentes do NT SO II – 24/25 Escalonador O escalonador do Windows NT é preemptivo (kernel tem o controle do tempo que será usado por cada processo), onde as prioridades são organizadas em duas classes: tempo real e variável. Cada classe possui 16 níveis de prioridades, sendo que as threads de tempo real têm prioridade sobre as threads da classe variável. Todas as threads prontas para executar são mantidas em estruturas de filas de acordo com as prioridades em cada uma das classes. Cada fila é atendida por uma política de Round‐robin. A atribuição de prioridades é diferente para cada uma das classes. As threads da classe de tempo real possuem prioridade fixa determinada no momento da criação, enquanto que as threads da classe variável tem as suas prioridades atribuídas de forma dinâmica. Assim quando uma thread da classe real é criada, recebe uma prioridade e é inserida sempre na fila dessa prioridade, já uma thread da classe variável pode migrar entre as filas de prioridades. Na classe variável, a prioridade das threads é formada por dois parâmetros, um vinculado à própria thread e o outro vinculado ao processo a que ela pertence. Um objeto processo recebe na sua criação, uma prioridade que varia de zero a quinze e cada thread recebe uma prioridade variando de duas unidades para cima ou para baixo da prioridade do processo. O critério usado para variar a prioridade de uma thread é o tempo de utilização do processador. Se a thread é interrompida por utilizar todo o quantum (timer) de tempo que lhe foi atribuído, o escalonador do Windows reduz sua prioridade, caso contrário sua prioridade é aumentada. Arquitetura e Componentes do NT SO II – 24/25 Memória A gestão de memória no Windows NT é um dos componentes fundamentais do sistema operativo, sendo responsável por gerir o uso da memória física (RAM) e da memória virtual pelos processos e pelo sistema. Implementa um modelo de memória virtual, baseado num espaço linear de 32 bits, que permite que cada processo tenha a ilusão de dispor de um espaço de endereçamento de memória contínuo e privado, independentemente da quantidade de RAM física disponível e que permite até 4 Gb de memória virtual. O espaço de endereçamento virtual é dividido igualmente entre o processo dos utilizadores (parte inferior) e o sistema operativo (parte superior), mas há a opção de se atribuir 3 GB ao processo utilizador e 1 GB ao sistema operativo. Também foi prevista a extensão VLM (Very Large Memory) para os processadores de arquitetura de 64 bits, que permitem a alocação até 28 GB de memória suplementar. Arquitetura e Componentes do NT SO II – 24/25 Memória A alocação de memória é realizada em duas fases: Primeiro, o processo reserva um certo número de páginas da memória virtual sem necessariamente as utilizar Em seguida, à medida que o processo necessita de memória, essas páginas pré‐alocadas são mapeadas a áreas efetivas de armazenamento (commit) As páginas podem ter três estados diferentes: livre (páginas não utilizadas pelo processo) reservadas (alocadas a algum processo, porém não mapeadas em disco físico) dedicadas (já mapeadas) Arquitetura e Componentes do NT SO II – 24/25 Memória Num um sistema de gestão de memória baseado em paginação, é necessário determinar quando e como obter páginas do disco (swap) para a memória. O algoritmo de paginação é baseado por pedido com clustering. Nesse esquema, quando ocorre uma falta de página, o gestor de memória carrega a página em falta, assim como algumas antes e depois desta. Uma das vantagens do clustering é a minimização do número de acessos ao disco provocados pela paginação de um processo. Além disso, a carga de páginas em avanço diminui o número de leituras individualizadas, e aumenta a probabilidade de um processo paginado aceder a memória diretamente. SO II – 24/25