37
Mac OS Sistemas Operacionais Alunos: Cristiane Ribeiro Rocha Rhandy Rafhael de Carvalho Diego Costa Alves

Mac OS

Embed Size (px)

Citation preview

Mac OS

Sistemas Operacionais

Alunos: Cristiane Ribeiro Rocha

Rhandy Rafhael de Carvalho

Diego Costa Alves

Tópicos

Visão Geral

Gerenciamento de Processos

Gerenciamento de Memória

Gerenciamento de Arquivos

Visão Geral – Mac OS

Macintosh Operating System - padrão dos computadores Macintosh produzidos pela Apple.

Utilização exclusiva em hardwares desenvolvidos pela própria Apple.

A Apple Computers (1976) – fundada por Steven Wozniak e Steven Jobs.

Surgiram aproximadamente na mesma época que os PC's.

Visão Geral – Mac OS

Versão atual - Mac OS X (Mac OS Ten). Foi o primeiro sistema gráfico amplamente usado

em computadores a usar ícones para representar os itens do computador.

Na sua décima versão, o sistema foi remodelado como um todo, inclusive o núcleo que passou a ser baseado no do UNIX BSD.

Visão Geral

Power PC – criada em 1991 (Intel, IBM, Motorola) - suporta tanto 32 quanto 64 bits, tem um design superescalar simplificado e suporta sistemas de multiprocessamento simétrico (SMP).

Intel x86 - Em 2005, no entanto, a Apple anunciou que passaria a utilizar os mesmos processadores que equipam máquinas da plataforma PC, mudando para a plataforma x86.

Visão Geral Apple precisou adicionar componentes de hardware e software

que preveniriam o uso de seus produtos livremente.

Uso de componentes como o EFI (Extended Firmware Interface) - faz com que o sistema operacional tenha rotinas diferentes em seu boot loader para cada arquitetura, e o torna incompatível com um PC comum dotado de BIOS.

Gerência de Processos

Kernel Criado a partir do sistema operacional 4.4BSD e do

microkernel Mach 3.0 Considerado um núcleo híbrido em seu projeto, por

possuir diferentes partes (monolítico e microkernel) interagindo na utilização do sistema.

Visto como um núcleo em camadas quando analisamos a interação entre os subsistemas.

Gerência de Processos

Organização do Sistema Operacional em kernel e microkernel

Gerência de Processos

No OSX todo o código específico de arquitetura está no microkernel, o que facilita a portabilidade.

Organização das camadas do Mac OS X

Gerência de Processos

Escalomamento de Processos:

O escalonador escalona os processos baseado numa variante do algoritmo de múltiplas filas com realimentação;

Divide as filas de prioridades em 4 grupos de processos, agrupados de acordo com suas características.

Gerência de Processos

Normal: Prioridade das aplicações normais do usuário;

Sistema: Prioridade das aplicações do sistema, com prioridade superior as threads normais de usuário;

Kernel: Classe reservada para threads em espaço de kernel que necessitam rodar em uma prioridade superior as threads de sistema;

Tempo Real: Threads nas quais a prioridade está baseada na necessidade de reservar uma fração pré-definida de ciclos de clock, independente de outras atividades sendo executadas no sistema.

Gerência de Processos

Comunicação Interprocessos: Tarefas clientes acessam tarefas servidoras por meio de um

canal de comunicação (ports).

As tarefas mantém, repassam e obtém direitos sobre os ports.

Os port-rights denotam as permissões para usar estes canais.

Ter um right é ter a capacidade de acessar ou manipular um

objeto.

Gerência de Processos

A comunicação é feita através de: filas de mensagens, semáforos, notificações, lock sets e RPCs (Remote Procedure Calls).

Mensagens podem ser dados puros, cópias de memory ranges, direitos de ports, e outros.

São assíncronas. Lock Sets correspondem ao mutex sobre uma seção

crítica.

Gerência de Memória

Mac OS X possui poderoso gerenciamento de memória;

Cada processo tem o seu próprio conjunto (32bits ou 64 bits) de espaço de endereço virtual;

32 bits – pode endereçar até 8 gb. 64 bits – pode endereçar até 18 exabytes.

Gerência de Memória

Subsistema VM (Virtual Memory)

➢ O subsistema VM do kernel mach consiste do módulo machine-dependent phisical map (pmap) e outros módulos independentes para gerenciar a estrutura de dados, tais como os Virtual Address Space Maps (VM maps).

➢ O kernel exporta diversas rotinas para o Espaço do Usuário (user space) como parte da Mach VM API.

Gerência de Memória O Kernel usa o UPL (Universal Page List): Estrutura de Dados

para descrever como delimitar um conjunto de páginas físicas; O UPL é criado baseado na associação das páginas (pages) com

o Objetos VM (objects VM); O Kernel inclui 3 paginadores internos: o paginador padrão

(anônimo), o paginador para dispositivos e o paginador para vnode (pode mapear um processo para um objeto em qualquer tipo de sistema de arquivo. Assim, uma chamada de sistema não precisa entender qual objeto está sendo manipulado, somente como fazer uma chamada orientada à objetos usando a interface vnode);

Estes paginadores tratam operações de entrada e saída sobre regiões da memória.

Gerência de Memória

Ao contrário da maioria dos sistemas operacionais baseados em UNIX, o Mac OS X não usa um pré-partição swap para a memória virtual. Em vez disso, ele usa todo o espaço disponível na máquina da partição de boot.

Gerência de Memória

Memória compartilhada:

Memória que pode ser escrita ou lida a partir de dois ou mais processos.

Pode ser herdada a partir de um processo-mãe, criado por um servidor de memória compartilhada, ou explicitamente criado por um pedido de exportação para outras aplicações.

Gerência de Memória

O uso da memória compartilhada/partilhada inclui:

Compartilhando grandes recursos, como ícones ou sons

Rápida a comunicação entre um ou mais processos

Endereçamento virtual único e linear.

Gerência de Memória

➢Ao lançar um programa, o Mac OS destina automaticamente um espaço específico de memória para o aplicativo, isolando-o. ➢As linhas de controle de um determinado processo não precisam de nenhum mecanismo especial para compartilhar objetos: todas elas vêem automaticamente o mesmo espaço de endereçamento.

Gerência de Memória

Wired Memory

Wired memory armazena código kernel e estruturas de dados, que nunca deve ser paginada para o disco.

Aplicações, frameworks e outros softwares da camada de usuário (user level) não podem ser alocados na wired memory, mas estes podem afetar a quantidade de Wired memory existente num dado momento.

VM Objects I/O Buffer Cache Condutores

Gerência de Arquivos

EFI (Interface de Firmware Extensível).

Firmware inclui uma aplicação chamada boot manager, que pode rodar bootloaders, drivers e outras aplicações EFI.

Na plataforma PC a MBR esta localizado no início do disco apenas para fins de compatibilidade.

EFI é acionado durante o processo de boot, após o POST, e a partir dele é definida a partição que será carregada através de arquivos de configuração .EFI, como por exemplo boot.efi para o sistema operacional Mac OS X ou elilo.efi para sistemas Linux.

Glossario

Firmware: Software escrito em memória que não pode ser modificada. Muitos periféricos, como impressoras, utilizam-se destes programas para operarem.

Bootloaders: É uma pequena peça de software responsável pelo BOOT. É ele quem “chama” o Sistema operacional e prepara a lógica para que o mesmo se torne operacional.

MBR: Parte do disco rígido que contém a inicialização do sistema operativo.

POST: (Power On Self Test) é uma sequência de testes ao hardware de um computador, realizada pela BIOS, responsável por verificar preliminarmente se o sistema se encontra em estado operacional.

A primeira partição do HD é o mapa de partições que contém meta-dados relacionados às partições.

Os meta-dados consistem de referências ao mapa de partição, cada um descrevendo uma partição.

O tamanho do mapa é de 63 blocos, cada um com 512 bytes.

Os primeiros dois bytes do primeiro bloco contém a assinatura do esquema de particionamento da Apple.

Os dois bytes seguintes representam o tamanho do bloco físico do disco.

O número total de blocos no disco se localiza nos quatro bytes posteriores.

Os 63 blocos seguintes são o mapa de partições.

Cada bloco representa uma entrada do mapa que descreve uma partição.

Após os dois bytes iniciais identificadores seguem as informações de início da partição, tamanho e tipo.

Glossario

Meta-dado:

Conjunto de características e atributos que representam ou descrevem um objeto. Os metadados geralmente têm a finalidade de se localizar, avaliar, descobrir, analisar ou citar o objeto a que se referem.

O sistema de arquivos padrão do Mac OS X

HFS (Sistema de Arquivos Hierárquico Mais). Sua instância fundamental é o volume. Os blocos de alocação são a unidade elementar onde são

alocados os arquivos, e seu tamanho corresponde a um múltiplo do tamanho do setor do dispositivo utilizado, sendo o mais comum 512 bytes,

O bloco de alocação padrão do Mac OS X, é de 4KB, sendo que este pode chegar a 1MB.

O espaço de armazenamento usa números de bloco de alocação de 32 bits com alocação postergarda de blocos físicos.

Fragmentação

A implementação do UFS herdada do sistema BSD presente no HFS+ emprega uma unidade adicional.

Bloco, chamado fragmento, que é uma fração deste a ser compartilhada entre arquivos.

Benefícios quanto ao aproveitamento de espaço de disco.

Custo de uma lógica de sistema de arquivos muito mais complexa.

Para minimizar os seus efeitos, aumentando o desempenho no acesso a arquivos pequenos e frequentemente acessados,e empregado Clustering, e a realocação dinâmica destes pequenos arquivos para promover sua continuidade(Hot File).

Glossario

UFS:O Sistema de Arquivos Unix, do inglês Unix File System (UFS), é um sistema de arquivos usado por muitos sistemas operacionais Unix e assemelhados.

BSD: É um Sistema Operacional UNIX desenvolvido pela Universidade de Berkeley

Clustering: uma técnica de Data Mining para fazer agrupamentos automáticos de dados segundo uma definicao prevista.

Caracteristicas

O HFS+ é um sistema de arquivos que suporta nomes de arquivos e diretórios até 255

caracteres codificados em Unicode UTF-8 arquivos de até 8 exabytes e múltiplos mecanismos de

referenciação através de aliases, hard links e links simbólicos.

Sistema case-insensitive com case-preserving (preserva a caixa-alta quando presente),

não podem co-existir num mesmo diretório. há suporte no sistema de arquivos para case-sensitivity.

Controle de Acesso e Permissões

Ha suporte pelo sistema de arquivos a ACLs (listas de controle de acesso).

Que são armazenadas como atributos estendidos, Permissões de arquivos no estilo Unix-Like e Flags

de arquivo no estilo BSD (append-only, immutable, undeletable, etc.)

Todas as chamadas do gerenciador de arquivos do Mac OS X são subsidiadas pelo subsistema BSD,

Não provê nenhum lock para arquivos abertos por múltiplas aplicações a respeito a proteção de escrita.

Fork de Arquivo

Sistema operacional suporta um tipo especial, chamado File Fork (Ramificação de Arquivo)

Encapsula vários arquivos dentro de um único. Dois arquivos presentes armazenados em árvores-

B separadas: data fork resource fork.

Bundles. coleção de recursos relacionados empacotados como

numa hierarquica de diretórios. exemplos são os executaveis, as bibliotecas

compartilhadas, plug-ins, imagens, entre outros. Seu uso visa facilitar a distribuição, manutenção e uso

de software. O gerenciador de arquivos do sistema operacional trata

estes pacotes como sendo arquivos únicos. Um bundle de aplicação (sufixo .app) contém, no

entanto, muito mais que apenas o seu executável, mas sim seus icones, imagens e sons da interface de usuário, além do arquivo de lista de propriedades (sufixo .plist).

Desfragmentação On-the-Fly

Quando um arquivo de usuário é aberto em um volume HFS+, o kernel verifica se ele está qualificado para ser desfragmentado on-the-fly. Uma série de condições devem ser cumpridas para que o arquivo se torne elegível para esta ação.

já não estar aberto. não ser um arquivo apenas-para-leitura. ser parte de um sistema de arquivos com journaling. ter o fork fragmentado em oito ou mais partes. entre outros.

Zona de meta-dados Política de alocação que reserva espaço para várias

estruturas de meta-dados. O volume é chamado de Zona de meta-dados. Localizando, se possível, próximo ao início do volume. Acontecerá apenas caso o espaço em disco não seja

escasso. Esta política é valida apenas em volumes com journaling

e maiores de 10 GB. Journaling: Sistema Operacional de mantem um log

(journal), de todas as mudanças no sistema de arquivos antes de escrever os dados no disco.