Nível 3 – Sistema Operacional Universidade Tuiuti do Paraná – UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Arquitetura e Organização de Computadores Prof. André Luiz 1 Nível 3 – Sistema Operacional O sistema operacional implementa uma série de novas instruções e características, acima e além do que o nível ISA fornece. Determinar o método de alocação de recursos, escalonamento e liberação dos recursos de memória e processamento é um dos principais desafios deste nível. Muitos são os desafios deste nível como por exemplo, fazer com que vários processos sejam executados em paralelo, sendo executados, se comunicando e sincronizando. 2 Nível 3 – Sistema Operacional O sistema operacional é uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. O sistema operacional é uma estrutura de software ampla, muitas vezes complexa, que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica). 3 Nível 3 – Sistema Operacional Gerência de Recursos Os programas aplicativos usam o hardware para atingir seus objetivos: ler e armazenar dados, editar e imprimir documentos, navegar na Internet, tocar música, etc. Em um sistema com várias atividades simultâneas, podem surgir conflitos no uso do hardware, quando dois ou mais aplicativos precisam dos mesmos recursos para poder executar. Cabe ao sistema operacional definir políticas para gerenciar o uso dos recursos de hardware pelos aplicativos, e resolver eventuais disputas e conflitos. 4 Nível 3 – Sistema Operacional Gerência de Recursos • Escalonamento de processos; • Gerenciamento de usuários; • Gerenciamento de memória; • Gerenciamento de arquivos; • Gerenciamento de dispositivos (E/S); • Suporte a rede; 5 Nível 3 – Sistema Operacional Estrutura Um sistema operacional não é um bloco único e fechado de software executando sobre o hardware. • Núcleo (Kernel); • Drivers (Módulos); • Código de inicialização; • Programas e utilitários; • etc... 6 Nível 3 – Sistema Operacional Tipos de Sistemas Operacionais • Batch (de lote): execução em lote, sem interação com o usuário; • De rede: Ele também deve disponibilizar seus recursos locais aos demais computadores, de forma controlada; • Distribuído: em um sistema operacional distribuído, os recursos de cada máquina estão disponíveis globalmente, de forma transparente aos usuários; • Multi-usuário: um sistema operacional multi-usuário deve suportar a identificação do “dono” de cada recurso dentro do sistema (arquivos, processos, áreas de memória, conexões de rede) e impor regras de controle de acesso para impedir o uso desse recursos por usuários não autorizados; 7 Nível 3 – Sistema Operacional Tipos de Sistemas Operacionais • Desktop: um sistema operacional “de mesa” é voltado ao atendimento atendimento do usuário doméstico e corporativo para a realização de atividades corriqueiras; • Servidor: um sistema operacional servidor deve permitir a gestão eficiente de grandes quantidades de recursos (disco, memória, processadores); • Embarcado: um sistema operacional é dito embarcado quando é construído para operar sobre um hardware com poucos recursos de processamento, armazenamento e energia; • Tempo real: A estrutura interna de um sistema operacional de tempo real deve ser construída de forma a minimizar esperas e latências imprevisíveis, como tempos de acesso a disco e sincronizações excessivas. 8 Nível 3 – Sistema Operacional Memória É um dispositivo que tem capacidade de adquirir (aquisição), armazenar (consolidação) e recuperar informações. Características das memórias: • Capacidade de armazenamento • Velocidade de acesso • Taxa de transferência • Volatibilidade • Formato 9 Nível 3 – Sistema Operacional O problema básico para o gerenciamento de memória é que os programas atuais são muito grandes para rodarem, completamente, na memória cache. O gerenciador de memória deve ser capaz de controlar parte da memória está em uso (e quais não estão), alocar memória para processos quando eles necessitam e desalocar quando eles terminam e, principalmente, gerenciar a troca entre a memória principal e o disco, quando a memória principal é muito pequena para armazenar todos os processos. 10 Nível 3 – Sistema Operacional Memória lógica É manipulada pelos programas, é visivel pelos processos que o S.O. está executando. É dividida em partes do mesmo tamanho chamadas páginas. Memória física É a memória física, implementada pelos circuitos integrados. É nela que os dados vão realmente residir, é dividida em blocos. A tradução de endereços lógicos em endereços físicos é realizado por uma unidade de Nível 3 – Sistema Operacional chamada MMU. Memory Management Unit 11 Nível 3 – Sistema Operacional Para que um programa seja executado ele precisa ser transformado em processo(s), assim é necessário alocar o descritor de processos, alocar espaço na memória para o código, os dados, a pilha (HEAP - área onde se localiza as variáveis dinâmicas, e o STACK - endereços de retorno de chamadas e parâmetros de funções). 12 Nível 3 – Sistema Operacional Subsistema de Memória Cache Caches são memórias muito pequenas e rápidas localizadas próximas ao processador (cache de memória), em organização de computadores se estuda como são organizadas e implementadas. Devendo ser necessário determinar quanta memória é necessária para uma cache de um dado tamanho e organização. 13 Nível 3 – Sistema Operacional Subsistema de Memória Cache Uma vez que um dado requisitado seja encontrado na matriz de etiquetas da cache significa que houve acerto na organização de utilização da cache (hit cache), reduzindo o tempo de acesso global. 14 Nível 3 – Sistema Operacional Caches de dados e de Instruções Arquitetura de Harvard No cache as instruções e dados são armazenados em caches distintas para aumentar o nível de acerto. o cache L1 de instruções, que é usado para armazenar instruções que serão executadas pelo o processador; e o cache L1 de dados, que é usado para armazenar dados que serão escritos de volta na memória. 15 Nível 3 – Sistema Operacional Caches de dados e de Instruções Arquitetura de Harvard 16 Nível 3 – Sistema Operacional Subsistema de Memória Cache Características da cache: * Capacidade * Comprimento da linha * Associatividade * Política de substituição: write-black ou write-through 17 Nível 3 – Sistema Operacional Subsistema de Memória Cache Comprimento da Linha O comprimento da linha de uma cache é o tamanho do seu bloco. Exemplo: Quando uma cache com linhas de 32 bytes tem uma falta de cache, ela traz para dentro de si um bloco de 32 bytes de dados contendo o endereço de falta, descartando um bloco antigo para abrir espaço. 18 Nível 3 – Sistema Operacional Subsistema de Memória Cache Propriedade de localidade “Um programa acessa uma porção relativamente pequena do espaço endereçável em um instante qualquer.” 19 Nível 3 – Sistema Operacional Subsistema de Memória Cache Localidade temporal “Se um item é referenciado, ele tenderá a ser referenciado novamente.” Um exemplo são os loops ( instruções e dados). Localidade espacial “Se um item é referenciado, itens cujos endereços são próximos a este, tenderão a ser referenciados também.” Um exemplo é o acesso a dados de um array. 20 Nível 3 – Sistema Operacional Subsistema de Memória Cache Associatividade A associatividade refere-se ao tipo de mapeamento que é utilizado para um endereço de memória dentro da cache, podendo ser: • Mapeamento Direto • Mapeamento Completamente Associativo • Mapeamento Grupo Associativo 21 Nível 3 – Sistema Operacional 22 Nível 3 – Sistema Operacional Endereços gerados pela CPU são divididos em: Número da página (p) – usado como um índice em uma tabela de páginas, a qual contém o endereço base de cada página na memória física. Deslocamento de página (d) – combinado com o endereço base para definir o endereço na memória física que será enviado para a unidade de memória. 23 Nível 3 – Sistema Operacional Monoprogramação A monoprogramação consiste em executar um processo por vez na memória, dessa forma todos os recursos de hardware são exclusivos para execução do mesmo. 24 Nível 3 – Sistema Operacional Multiprogramação com partições fixas Aumenta a utilização da CPU, a multiprogramação permite que enquanto um processo é bloqueado esperando a E/S acabar, outro pode utilizar a CPU, melhorando a utilização da CPU e assim evitando disperdiçios de ciclos de processamento. Na multiprogramação a memória é dividida em N partes, normalmente quando o sistema é iniciado. 25 Nível 3 – Sistema Operacional Multiprogramação com partições fixas 26 Nível 3 – Sistema Operacional Tamanho da página e fragmentação Os programas são colocados em filas de entrada associadas à menor partição capaz de armazená-lo, por usar partições de tamanho fixo, todos o restante de espaço de memória não utilizado pelo Job será perdido, tal desperdício é chamado de Fragmentação Interna. 27 Nível 3 – Sistema Operacional Tamanho da página e fragmentação Outro tipo de fragmentação existente é a Fragmentação Externa que acontece na seguinte ocasião: imagine que exista duas partições livres, uma de 50 e outra de 80 kbytes, nesse instante é criado um processo de 90 Kbytes que não poderá ser carregado em memória pela forma como ela é gerenciada, sendo assim acontece uma fragmentação externa para que processo possa "interagir" com a memória. 28 Nível 3 – Sistema Operacional Segmentação A segmentação parte do principio que um software é dividido em módulos, funções e objetos, onde todos eles podem ser considerados segmentos. Dependendo da granularidade o segmento pode ser compartilhado para aproveitamento de recurso, como uma função que é executada em diversas partes do programa. Esse método garante economia de memória, porém sofre de fragmentação externa já que o segmento precisa de uma área contigua de memória para alocar recursos. 29 Nível 3 – Sistema Operacional Segmentação 30 Nível 3 – Sistema Operacional Algoritmos para escolha das partições de um segmentação: • Função para determinar em qual partição livre um programa será carregado para execução. • Função de evitar, ou diminuir, o problema da fragmentação antes que ele ocorra. • O tamanho do programa é o fator mais importante para a adoção da melhor estratégia. 31 Nível 3 – Sistema Operacional Best-fit / Melhor ajuste • Escolhe a melhor partição, ou seja, aquela que o programa deixa o menor espaço sem utilização. • Lista de áreas livres alocada por tamanho, diminuindo o tempo de busca • Desvantagem de deixar pequenas áreas não contíguas, aumentando o problema da fragmentação. 32 Nível 3 – Sistema Operacional First-fit / Primeiro ajuste • Escolhe a primeira partição livre de tamanho suficiente para carregar o programa. • Lista de áreas livres ordenada por endereços crescentemente. • Grande chance de se obter uma grande partição livre nos endereços de memórias mais altos. • Mais rápida e consome menos recursos do sistema. 33 Nível 3 – Sistema Operacional Worst-fit / Pior ajuste • Escolhe a pior partição, ou seja, aquela que o programa deixa o maior espaço sem utilização. • Diminui o problema de fragmentação, deixando espaços livres maiores que permitem a um maior número de programas utilizar a memória. 34 Atribuição-Compartilhamento pela mesma licença 2.5 (http://creativecommons.org/licenses/by-sa/2.5/deed.pt) Você pode: ● copiar, distribuir, exibir e executar a obra ● criar obras derivadas ● fazer uso comercial da obra Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. ● ● Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Qualquer direito de uso legítimo (ou "fair use") concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. Este é um sumário para leigos da Licença Jurídica (na íntegra: http://creativecommons.org/licenses/by-sa/2.5/br/legalcode). Termo de exoneração de responsabilidade: http://creativecommons.org/licenses/disclaimer-popup?lang=pt