Você está na página 1de 30

1

Daniely Goes Botelho


Eduardo
Jodoval Luiz dos Santos Junior
Kelvin

SISTEMA OPERACIONAL MAC

Aracaju
2014
2

UNIVERSIDADE TIRADENTES

Daniely Goes Botelho


Eduardo
Jodoval Luiz dos Santos Junior
Kelvin

SISTEMA OPERACIONAL MAC

Trabalho apresentado como


requisito parcial de avaliação da
disciplina Sistemas
Operacionais, ministrada pelo
Profº. Adolfo Pinto Guimarães,
do curso de Ciência da
Computação, no 1º semestre de
2014.

Aracaju
2014
3

SUMÁRIO

1. INTRODUÇÃO..................................................................................................................3
2. HISTÓRIA..........................................................................................................................4
3. VERSÕES...........................................................................................................................4
4. DEFINIÇÕES E CARACTERÍSTICAS..........................................................................8
5. GERENCIAMENTO DE PROCESSOS...........................................................................9
6. GERENCIAMENTO DE MEMÓRIA............................................................................13
6.1. Memória RAM e o Gerenciamento de memória....................................................13
6.2. Visão geral do gerenciamento de memória no MAC OS X....................................13
6.3. Características do Gerenciamento de memória no MAC......................................15
6.3.1. Paginação sob demanda...................................................................................15
6.3.2. External Memory Management Interface (EMMI).......................................15
6.3.3. Named Memory Entries...................................................................................16
6.3.4. Lazy Evaluation de Memória Copiada (Shadows Objects)...........................16
6.3.5. Memory Maps...................................................................................................16
6.3.6. Herança de Named Regions.............................................................................16
6.3.7. UPLs..................................................................................................................17
6.3.8. UBC (Unified Buffer Cache)............................................................................17
6.4. Memórias utilizadas.................................................................................................17
6.4.1. Wired Memory ou memória residente............................................................19
6.4.2. Memória Virtual...............................................................................................19
6.5. Compartilhamento de Memória..............................................................................19
6.6. O que mudou no Mavericks.....................................................................................20
7. ENTRADA E SAÍDA.......................................................................................................22
7.1. Drivers.......................................................................................................................23
7.2. HDs............................................................................................................................24
7.3. Conexões....................................................................................................................25
8. SISTEMA DE ARQUIVOS..............................................................................................26
8.1. MFS (Macintosh File System)..................................................................................26
8.2. HFS (Hierarchical File System)...............................................................................27
8.3. HFS+ (Hierarchical File System).............................................................................27
9. CONCLUSÃO..................................................................................................................27
4

1. INTRODUÇÃO

Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx

2. HISTÓRIA

O Mac OS é o sistema operacional dos computadores da linha Macintosh,


da Apple. O seu surgimento ocorreu em 1984, junto ao lançamento do primeiro
Macintosh. Esse computador tinha 128 KB de RAM e processadores da família 68000
da Motorola. Inicialmente, o seu sistema operacional era chamado apenas de System.
O System era modificado a cada versão do Macintosh com pequenas
melhorias. Assim seguiu até 1988, com o System 6. Em 1991, a Apple lançou o System
7, considerado uma versão com várias mudanças. Entre elas, estão o uso de cores,
multitarefa como parte integrante do sistema, introdução da linguagem Apple Script e
Drag & Drop de arquivos. Outro avanço notável do sistema operacional surgiu em
1994, quando a Apple começou a adotar o uso de processadores PowerPC da IBM, que
permitiram maior processamento pelo SO e pelos programas, e também começou a
permitir a criação de clones da sua arquitetura por outros fabricantes. A partir da versão
7.6, o nome Mac OS começou a ser adotado.
O Macintosh Operating System (MAC OS) é a denominação padrão dos
computadores Macintosh produzidos pela Apple. Sua evolução ocorreu até a versão
Mac OS X, A primeira versão foi lançada em 1984, até antes da versão 7.6,era chamado
apenas de "System" após esta versão passou a se chamar "Mac OS" até a sua versão
10.9 onde passou a se chamar OS X.

3. VERSÕES

Mac OS X v10.0 Cheetah - O primeiro sistema da linha Mac OS X foi


anunciado em janeiro de 1999, com o nome Mac OS X Server 1.0. O sistema foi a
evolução do Mac OS anterior, que foi inspirado no sistema OPENSTEP desenvolvido
pela extinta NeXT, empresa criada por Steve Jobs durante seu período de ausência na
Apple.
A versão beta foi disponibilizada no ano 2000 e finalmente em março de
2001 a versão oficial foi lançada, com o codinome “Cheetah”. Ela era vendida a US$
5

129 e trazia uma mudança radical em relação às versões anteriores do Mac OS. O
núcleo do sistema foi remodelado e o sistema recebeu aprimoramentos na gerência de
memória.

O Mac OS X Cheetah apresentou pela primeira vez a Dock, uma nova


forma de organizar as aplicações do sistema operacional na interface com o usuário.
Além disso, foram apresentados o aplicativo de e-mail Mail, o Address Book, um editor
de texto novo chamado TextEdit, suporte a Multitask Preemptivo, suporte a PDF,
interface Aqua, suporte a OpenGL, a utilização de AppleScripts e mecanismos de
proteção de memória.
Esta edição foi a primeira a contar com o iTunes, o programa de música
mais famoso da Apple. Apesar de todas estas novidades, o sistema sofreu muitas críticas
principalmente no que tange o tempo de resposta da interface, a estabilidade do sistema
e problemas de compatibilidade com hardware, por exemplo, para gravar CDs.
 Mac OS X v10.1
Puma - Após o lançamento do Cheetah, em Setembro de 2001, a Apple
lançou o Mac OS X 10.1, codinome “Puma”. A versão foi fornecida gratuitamente como
atualização do Cheetah. Como mudanças, foi melhorado o desempenho geral do sistema
e foi adicionado um suporte mais eficiente à gravação de CDs e DVDs e ao OpenGL.
Além disso, a Apple introduziu a aplicação Image Capture que facilitava a aquisição de
imagens de câmeras digitais e escâneres. Mesmo com esta melhora, a crítica ainda dizia
que o sistema não tinha um desempenho bom o suficiente para sua adoção em grande
escala.
 Mac OS X v10.2
Jaguar - Em 23 de Agosto de 2002, a Apple lançou mais uma versão, o Mac
OS X 10.2, codinome “Jaguar”. Além de melhorias de desempenho e estabilidade, o
sistema atualizou o Address Book, deu suporte ao sistema de impressão CUPS, muito
utilizada em sistemas Linux, e adicionou o filtro de mensagens indesejadas no Mail. As
redes Windows passaram a ser compatíveis e foi desenvolvido o Quartz Extreme. Este
programa permite que a composição gráfica seja realizada diretamente na placa de
vídeo, diminuindo a carga sobre o processador. Por fim, a Apple lançou a aplicação
Inkwell para reconhecimento de escrita.
 Mac OS X v10.3
6

O Mac OS X Panther (Foto: Reprodução)


Panther - Em Outubro de 2003, a Apple lançou o Mac OS X 10.3, codinome
“Panther”. Como novidades, o sistema aprimorou o mecanismo de busca do Finder,
permitiu a troca eficiente de usuários em um mesmo sistema, introduziu o Exposé para
facilitar a visualização de janelas do usuário, a ferramenta de programação Xcode, o
Preview para renderizar PDFs e o QuickTime com suporte a uma maior gama de
formatos. Além disso, foi introduzido o FileVault para criptografar o disco dos usuários,
o iChat com suporte a conferência de áudio e vídeo e o Safari, o browser da Apple.
 Mac OS X v10.4
Tiger - Em Abril de 2005, a Apple colocou a venda o Mac OS X 10.4,
codinome “Tiger”. Segundo a Apple, ele foi o lançamento de maior sucesso na sua linha
de sistemas operacionais. O Tiger foi o primeiro a executar em máquinas com
arquitetura Apple-Intel, que utiliza processadores baseados em x86 em vez da
arquitetura PowerPC tradicional.
Como novidades, o Tiger introduziu o Spotlight, o mecanismo de busca da
Apple, uma nova versão do Mail e os widgets. Para automatizar tarefas, foi feito o
Automator que permite a programação de ações e para a acessibilidade foi desenvolvido
o VoiceOver para a aplicação de zoom na tela e comandos de voz. Foi introduzido
também o aplicativo Dictionary e o Grapher, que permite desenhar gráficos
tridimensionais.
Leopard - O Mac OS X 10.5 “Leopard” foi lançado em outubro de 2007. O
Leopard introduziu um design novo da área de trabalho, uma Dock nova, menus
semitransparentes e novas interfaces para o iTunes. O desempenho foi otimizado e foi
introduzido a Time Machine, ferramenta de backup da Apple. Além da Time Machine,
alguns aplicativos sofreram atualização como o Dictionary, o iCal, iChat, Mail e Safari.
Foi desenvolvido o BootCamp que permite que outros sistemas operacionais sejam
instalados no Mac e a ferramenta Spaces para a utilização de múltiplas áreas de trabalho
virtuais. Por fim, foi adicionado o suporte a aplicações 64-bit.
 Mac OS X v10.5
Snow Leopard - O Mac OS X 10.6, codinome “Snow Leopard” foi lançado
em junho de 2009. Diferentemente das outras versões, o objetivo principal do Snow
Leopard não foi introduzir muitas funcionalidades. O objetivo principal foi melhorar o
desempenho e reduzir a utilização de memória. A maioria dos softwares da Apple foi
reescrita para se adequar ao hardware mais moderno, também foram introduzidos novos
7

arcabouços de programação como o OpenCL e por fim, extinguiu-se o suporte a Macs


de arquitetura PowerPC. Como novidades, foi apresentado um Finder totalmente
reescrito, um Boot Camp com suporte à leitura e escrita em partições Windows, suporte
a multitoque na maioria dos MacBooks, uma versão puramente 64-bits do QuickTime,
Safari 4 e uma melhora na acessibilidade fornecida pelo VoiceOver.
Lion - Em Outubro de 2010, a Apple inovou e trouxe o Mac OS X 10.7,
codinome “Lion”. O Lion apresentou o conceito da App Store, onde os usuários podem
comprar os aplicativos para Mac em uma única interface, semelhante a iTunes Store.
Também foi adicionado o mecanismo de compartilhamento de arquivos entre Macs, o
Airdrop. Os mecanismos de autocorreção do iOS (sistema operacional dos iPods Touch,
iPhones e iPads) foram integrados ao sistema. Além disso, foi introduzido o AutoSave
para salvar automaticamente documentos e o FaceTime para videoconferências.
Nesta versão, o aplicativo Mail foi refeito para ficar semelhante ao do iOS e foi
implementada a função "resume" que permite que o Mac seja desligado e depois
religado com todos os aplicativos e configurações que estavam abertas. Por fim, a Apple
trouxe a funcionalidade Versions, que realiza um controle automático de versão sobre
cada documento editado.
 Mac OS X v10.6
Snow Leopard - O Mac OS X 10.6, codinome “Snow Leopard” foi lançado
em junho de 2009. Diferentemente das outras versões, o objetivo principal do Snow
Leopard não foi introduzir muitas funcionalidades. O objetivo principal foi melhorar o
desempenho e reduzir a utilização de memória. A maioria dos softwares da Apple foi
reescrita para se adequar ao hardware mais moderno, também foram introduzidos novos
arcabouços de programação como o OpenCL e por fim, extinguiu-se o suporte a Macs
de arquitetura PowerPC. Como novidades, foi apresentado um Finder totalmente
reescrito, um Boot Camp com suporte à leitura e escrita em partições Windows, suporte
a multitoque na maioria dos MacBooks, uma versão puramente 64-bits do QuickTime,
Safari 4 e uma melhora na acessibilidade fornecida pelo VoiceOver.
 Mac OS X v10.7
Mountain Lion - Em Fevereiro de 2012, a Apple anunciou o OS X 10.8,
codinome “Mountain Lion”. Diferentemente das versões anteriores, a Apple preferiu
chamar o sistema simplesmente de OS X, em vez de Mac OS X. Como novidades, o
sistema trará a aproximação entre o sistema operacional para iMacs e MacBooks e o
sistema iOS para dispositivos móveis da Apple. Como exemplo desta integração, será
8

introduzido o programa Messages, que permite a troca de mensagens entre Macs e


também entre dispositivos com iOS.
Essa versão receberá também o Game Center, que tem a mesma função do
iOS e permite a organização de jogos online, a integração com o Twitter e o Centro de
Notificações. Nem todas as funcionalidades novas ainda foram reveladas, mas espera-se
que, cada vez mais, o OS X se aproxime do iOS e vice-versa. Desta forma, ouso arriscar
que a tendência é que os sistemas da Apple deixem de ser sistemas complementares e se
transformem em uma única plataforma.
 Mac OS X v10.8
Mountain Lion - Em Fevereiro de 2012, a Apple anunciou o OS X 10.8,
codinome “Mountain Lion”. Diferentemente das versões anteriores, a Apple preferiu
chamar o sistema simplesmente de OS X, em vez de Mac OS X. Como novidades, o
sistema trará a aproximação entre o sistema operacional para iMacs e MacBooks e o
sistema iOS para dispositivos móveis da Apple. Como exemplo desta integração, será
introduzido o programa Messages, que permite a troca de mensagens entre Macs e
também entre dispositivos com iOS.
Essa versão receberá também o Game Center, que tem a mesma função do
iOS e permite a organização de jogos online, a integração com o Twitter e o Centro de
Notificações. Nem todas as funcionalidades novas ainda foram reveladas, mas espera-se
que, cada vez mais, o OS X se aproxime do iOS e vice-versa. Desta forma, ouso arriscar
que a tendência é que os sistemas da Apple deixem de ser sistemas complementares e se
transformem em uma única plataforma.
OS X v10.9 Mavericks é a décima versão do OS X, sistema operacional
para Mac. OS X Mavericks foi anunciado em 10 de junho de 2013 e lançado no dia 22
de Outubro de 2013 como uma atualização gratuita através da Mac App Store. 2 3 4
O Sistema Operacional possui funções que melhoram a duração da bateria, além de
melhorias no Finder e maior integração ao iCloud.5
Este sistema operacional marca o início de uma mudança no esquema de
nomenclatura do "OS X", mudando de nomes de felinos para locais da Califórnia.
Seguindo o novo esquema de nomenclatura, a versão atual do sistema operacional é
“Mavericks", um local de surf no Norte da Califórnia.

4. DEFINIÇÕES E CARACTERÍSTICAS
XXXXXXXXXXXXXXXXXXXXXX
9

5. GERENCIAMENTO DE PROCESSOS

O princípio do funcionamento de todo Sistema Operacional parte do kernel,


pois ele é quem possibilita a interação entre a camada Hardware e Software.O kernel,
também conhecido como núcleo do Sistema Operacional funciona de duas formas
básicas: monolítico e microkernel.
 Kernel em modo Monolítico
Em um kernel monolíticocada serviço básico do sistema como gerência de
processo e de memória, manipulação de interrupção e comunicação de I/O, sistema de
arquivos e etc., é executado em espaço de kernel (modo privilegiado).Essa abordagem
garante um desempenho superior visto que existe uma interação direta entre as
aplicações e os serviços de kernel. Entretantoexiste uma grande dependência entre os
componentes, de maneira que, caso ocorra um defeito em algum driver, todo o sistema
pode parar de funcionar. Além disso, essa abordagem apresenta um mau gerenciamento
de recursos uma vez que drivers de dispositivos que não estão em uso continuam na
memória.
 Alguns exemplos de abordagens monolíticas:
- BSD;
- Linux;
- MS-DOS e derivados, incluindo Windows 95, Windows 98 e Windows ME;
- Solaris;
- Palm OS;
 Kernel em modo Microkernel
A abordagem em microkernel consiste em definir abstrações simples sobre o
hardware, dividindo melhor as tarefas de sistema e de aplicações. Essa abordagem
possui um desempenho inferior ao monolítico, porém são mais fáceis de manter e,
devido a sua estrutura, caso algum driver de dispositivo pare de funcionar não
necessariamente implica no travamento total do sistema. Nem é necessário
reinicialização da máquina caso haja alguma alteração num driver por exemplo. Além
disso, nessa abordagem é possível implementar partes restantes do sistema operacional
em linguagens de alto nível, aumentando ainda mais a sua escalabilidade.
 Alguns exemplos de abordagens microkernel:
- Hurd;
- MINIX;
10

- Mach;
 XNU - Kernel do MACOSX
O kernel do Sistema Operacional MAC (a partir da versão 10) é o XNU(X
isNot Unix)que se trata de um kernel híbrido, pois é composto por um kernel monolítico
e outro microkernel, que são respectivamente o Mach 3.0 e o BSD, juntamente com
uma API orientada a objeto para controlar os drivers de dispositivos, chamada I/O Kit.
O Mach foi um projeto de pesquisa desenvolvido pela Universidade
Carnegie Mellon no ano de 1985.As versões anteriores tinham kernels monolíticos e
com muitos códigos do BSD.
O Mach é responsável por muitas tarefas de baixo nível do sistema, entre as
quais:
- Multitarefa;
- Gerenciamento de Memória Virtual;
- Comunicação entre os processos;
- Gerenciamento de interrupção;
O BSD é o componente do kernel que cuida de manter a segurança do
sistema gerenciando permissões de acesso a processos, firewall, políticas de segurança,
entre outros. Ao logar em um computador MAC, por exemplo, é o BSD quem determina
seu nível de acesso. Ele também permite que um administrador possa definir quais
processos um usuário normal pode e não pode acessar. Também contribui com a
sincronização dos processos.
Outro componente importante do kernel é o I/O Kit que permite que um
computador MAC manipule vários dispositivos com tecnologias diversificadas ao
mesmo tempo. Por esse motivo é possível conectar dispositivos utilizando cabos USB,
Firewiree Thunderbolt simultaneamente, por exemplo.
Devido a sua estrutura de interação entre os subsistemas o XNU é
considerado um kernel em camadas.
11

Como a imagem acima sugere existe uma estrutura mínima que interage
com o hardware (microkernel) provendo mecanismos para interagir com os demais
subsistemas. E o kernel se encontra acima da estrutura básica do S.O. agindo como um
conjunto de recursos disponibilizados ao microkernel a fim de atender as requisições
(chamadas de sistema) das aplicações de usuários.
12

Entre as vantagens dessa estrutura estão:


 Interface padronizada: os processos não se distinguem em serviços de espaço de
usuário ou de serviço do kernel, pois todos os processos se comunicam através
de mensagens IPC;
 Extensibilidade: é possível adicionar ou atualizar serviços sem a necessidade de
recompilar todo o kernel;
 Flexibilidade no suporte de novos subsistemas: pela sua clara separação de
funcionalidades se torna mais fácil a manutenção;
 Portabilidade: todo código específico da arquitetura está no microkernel, dessa
forma bastaria reescrever o microkernel para mudar a arquitetura;
 Confiabilidade (isolamento dos subsistemas): se um subsistema parar, não para
todo o sistema pois subsistemas executam de modo usuário;
 Escalonador de Processos (Mach Scheduling)
O escalonador de processos do MACOSX foi desenvolvido a partir do
escalonador OSFMK. Para escalonar os processos ele se baseia numa variante do
algoritmo de múltiplas filas com realimentação, dividindo as filas de prioridades em
quatro grupos de processos. E são executados os grupos de maior prioridade (Tempo
real) para o de menor prioridade (Normal).
 Grupos de Processo
- Normal: prioridade das aplicações normais de usuário;
- Sistema: prioridade das aplicações do sistema, com prioridade maior que as threads
normais de usuário;
- Kernel: reservada para threads em espaço de kernel que necessitam rodar em
prioridade superior às threads de sistema;
- Tempo Real: threads cuja prioridade se baseia na necessidade de reservar ciclos de
clock pré-definido, independente de outras tarefas que estejam sendo executadas;
 Características do Escalonamento
- Suporta tempo compartilhado e prioridade fixa;
- Threads de Tempo Real normalmente são de prioridade fixa;
- Threads de prioridade fixa executam durante um tempo pré-determinado ou até que
uma prioridade maior queira executar;
- Se uma thread de tempo real não respeitar o tempo de processamento ela pode ser
penalizada e rebaixada a uma prioridade normal;
- Threads que usam muito tempo do processador, usam prioridade baixa para evitar que
threads de prioridade monopolizem o uso do processador;
13

-Comunicação entre os processos ocorrem por: fila de mensagens, semáforos,


notificações, lock sets e rpc;

6. GERENCIAMENTO DE MEMÓRIA

6.1. Memória RAM e o Gerenciamento de memória

A memória RAM (Random Access Memory), é uma memória de acesso


aleatório que faz parte e é um dos principais componentes presentes em um computador.
Essa memória tem como função, armazenar dados temporariamente para que o
processador possa acessar os mesmos no momento em que necessitar. Qualquer
aplicativo que é executado no computador, utiliza a memória RAM para registrar seus
dados, que por sua vez, podem ser lidos, escritos e apagados pelo processador.
Portanto, é necessário algum tipo de controle desse hardware, para que o
mesmo se torne funcional. Com o gerenciamento de memória, feito pelo sistema
operacional, é possível controlar quais partes da memória serão utilizadas ou não. Além
disso, o gerenciamento é responsável por alocar espaço em memória aos processos que
irão ser executados e removê-los da memória, liberando posições ocupadas, quando o
mesmo for finalizado. Outra funcionalidade do gerenciador de memória é controlar o
swapping de informação, constante na execução das aplicações.
Podemos definir como tarefas do gerenciador de memória, a alocação e
reciclagem. A primeira, é quando o programa requisita um bloco de memória e
gerenciador o disponibiliza para a alocação. Já na reciclagem, é quando um bloco de
memória já foi alocado, mas por algum motivo é preciso ser liberado, então o
gerenciador libera o bloco em questão, que por sua vez, pode ser reutilizado.
Para realizar um gerenciamento de memória eficiente, devemos levar em
conta diversos fatores importantes para o seu desempenho, como a segurança,
isolamento, performance, entre outros. Devido a isso, essa função cabe ao sistema
operacional e não ao aplicativo.

6.2. Visão geral do gerenciamento de memória no MAC OS X

Os processos que são executados no sistema operaiconal Mac OS X,


possuem seu próprio conjunto de espaço de endereçamento de memória, podendo esse
conjunto ser de 32bits ou de 64bits. Nos processos de 32 bits, cada um tem um espaço
14

que pode endereçar dinamicamente, chegando ao limite de 4gb. Já os processos de 64


bits, o limite é de 18 exabytes.
O processo possui um espaço de endereço virtual que é constituído por
regiões de memória mapeada. Cada região dessa representa um conjunto específico de
páginas de memória virtual. Essa regiões possuem atributos específicos e controlam
diversas funcionalidades como, herança, escreve-proteção, e se é "wired" (isto é, não
pode ser paginada out). Além disso, possuem um determinado número de páginas,
alinhadas, no qual o endereço inicial também corresponde ao endereço inicial da página
e o final do endereço define o fim da página.
Como falamos anteriormente, o gerenciamento de memória é quem vai
controlar a memória física, ou seja, a memória RAM. Porém, existe uma outra memória,
presente no computador, que se tornou uma característica comum nos sistemas
operacionais modernos. Estamos falando da memória virtual (Virtual Memory – VM)
do kernel mach, que apesar de não ser um hardware, auxilia a memória RAM no seu
gerenciamento. Esse subsistema 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).
Quando residente cada página da memória virtual é carregada em alguma
parte da memória física. Esta porção, normalmente é chamada de “page frame”.
A memória virtual, cria um espaço de endereços para cada programa
abstraindo detalhes mais técnicos para o programador. Normalmente ela é
implementada através de paginação (paging). O Mac OS X, inclui três paginadores
internos, o padrão (anônimo), o paginador para dispositivos e o paginador vnode. Com
esse último paginador, é possível realizar uma chamada de sistema sem a necessidade
de entender qual objeto está sendo manipulado, já que o vnode pode mapear um
processo para um objeto em qualquer tipo de sistema de arquivo. A chamada de sistema
só precisa saber como fazer uma chamada orientada à objetos usando a interface vnode.
O kernel trata operações de entrada e saída sobre regiões da memória. Os
paginadores se comunicam com o subsistema Mach-VM utilizando interfaces UPL e
derivadas do paginador do Mach.

6.3. Características do Gerenciamento de memória no MAC


15

O sistema operacional MAC OS X, possui um sistema de gerenciamento de


memória altamente poderoso. No MAC, o usuário pode escrever seu próprio
gerenciador de memória, conforme suas necessidades. É possível utilizar o pmap para
visualizar o uso de memória e assim tratar, caso necessário. Em relação ao kernel, o
gerencimento de memória, tente a mantê-lo pequeno e simples e a comunicação entre
eles é através de um protocolo bem definido. Além dessas características básicas, o
gerenciamento de memória do MAC, possui outras que precisam de um destaque maior.
A seguir explicaremos cada uma dessas características.

6.3.1. Paginação sob demanda

Um programa não precisa estar todo na memória para ser executado, pois
muitas partes dele sequer são necessárias em toda execução. Um editor de texto, por
exemplo, possui determinadas funções que nem são utilizadas pelo usuário e as rotinas
que implementam essas funções, não precisam ser alocadas, se não estiverem sendo
utilizadas, ou seja, somente precisam estar na memória naqueles raros instantes em que
realmente são necessárias.
Nesse modo de gerenciamento, podemos utilizar a implementação da
memória virtual conhecida como Paginação sob demanda. Esse tipo de implementação é
bastante utilizada e é baseada na paginação simples, ou seja, a memória lógica é
dividida em páginas que podem ser colocadas em qualquer quadro da memória física,
porém, somente as páginas que o processo acessa é que são carregadas para a memória
física. O bit de válido/inválido indica se a página já está presente na memória ou se
ainda está no disco.

6.3.2. External Memory Management Interface (EMMI)

Todo tipo de dado que está presente no espaço de memória é munido através
dos memory objects. O Mach solicita ao proprietário (owner) do memory objects
(pager) pelo conteúdo e retorna e ele possíveis modificações nos dados. Além disso, o
Mach, exporta uma interface para esse Memory Objects, permitindo que haja
contribuição de várias tarefas modo-usuário em seu conteúdo. Essa interface é chamada
de EMMI.
16

6.3.3. Named Memory Entries

O identificador que o sistema operacional usa para indexar uma tabela de


objetos, é conhecido como Handler. Podemos dizer que ele funciona como uma
referência ao objeto. Os Named Entries, são handles para objetos compartilhados ou
submapas, ou seja, eles permitem ao proprietário, mapear o objeto de memória virtual,
ou passar o direito de mapeá-lo.
Quando mapeamos uma named entriy em 2 tasks diferentes, resulta em
memória compartilhada. A task, por sua vez, quando é criada, são clonadas a partir do
pai e sua porção mapeada da memória pode ser herdada tanto como uma cópia, como
compartilhada, ou ainda nenhum desses, sendo baseadas nos atributos associados ao
mapeamento.

6.3.4. Lazy Evaluation de Memória Copiada (Shadows Objects)

Quando há cópia de memória, a mesma é protegida com read-only access


para as duas task que compartilham a memória. Essa cópia é feita quando ambas tasks
tentam acessar a mesma porção, permitindo assim simplificações em diversas áreas,
principalmente nas messagings APIs.

6.3.5. Memory Maps

Memory Maps é uma lista ordenada duplamente ligadas. Cada objeto


contém uma lista de páginas e shadow-references a estes objetos.

6.3.6. Herança de Named Regions

Named Regions podem ser herdadas, não só como um grupo de objetos de


memória, mas também toda a relação de mapeamento entre eles.
Named Region é como uma named entry, mas ao invés de conter virtual
mem. objects, contém um fragmento de mapa virtual

6.3.7. UPLs
17

UPLs, significa Universal Page Lists, ou seja, são estruturas de dados que
descrevem como o conjunto de páginas físicas são delimitadas. Elas incluem vários
atributos das páginas que descrevem, como por exemplo, informações de caching,
permissões, mapeamentos, e etc.
Subsistemas do Kernel, particularmente o File System, usam UPLs para se
comunicar com o subsistema VM.

6.3.8. UBC (Unified Buffer Cache)

UBC é um conjunto de páginas capazes de armazenar (caching) o conteúdo


dos arquivos e a porçãoConstitui um conjunto de páginas para armazenar (caching) o
conteúdo dos arquivos e a porção anônima do espaço de endereços. O exemplo mais
comum é a memória alocada dinamicamente.

6.4. Memórias utilizadas

No sistema operacional Windows, existe a memória usado por ele mesmo, a


memória usada pelos programs e a memória livre. Já no MAC OS X, existe um outro
tipo de memória, conhecida como memória inativa. Portanto, existem quatro categorias
de memórias no MAC OS X, são elas:

 Residente: é usada pelo OS X. Essa memória nunca irá para disco. As


informações armazenadas na RAM não podem ser movidas para a unidade do
Mac. A quantidade de memória Residente depende dos aplicativos que estão em
uso no momento.

 Ativa: é usada pelos programas que estão abertos. Caso seja necessário ela pode
ser paginada em disco. Essas informações estão armazenadas na RAM e foram
usadas recentemente.

 Livre: é a memória que não está sendo usado.


 Inativa: é a memória que foi usada pelo programa mas não foi liberada. Ela é
apenas marcada como inativa.

Para entendermos melhor a memória inativa, vamos supor que o aplicativo


Mail foi executado e o mesmo leva 5 segundos para ser aberto. Basicamente, esse tempo
18

é utilizado para a montagem do ambiente para esse aplicativo. Quando o mesmo for
encerrado, sua memória não é liberada e sim marcada como inativa. Se o mesmo
aplicativo for aberto posteriormente, será praticamente instatâneo, pois ele não precisará
montar o ambiente novamente. É como se marcasse a memória como ativa.
Podemos verificar essas memórias através do monitor de atividade. Veja a seguir uma
janela do Monitor de Atividade com a aba Memória do Sistema selecionada:

Figura 6.4.1: Monitor de Atividade


Fonte: Apple, Suporte.

A memória utilizada corresponde ao total de RAM utilizada e o tamanho de


memória virtual à quantidade de Memória Virtual referente a todos os processos do
Mac. As páginas de entrada/páginas de saída, refere-se à quantidade de informações
transferidas entre a RAM e a unidade do Mac. Esse número é um total acumulado dos
dados que o Mac OS X transferiu entre a RAM e a unidade do Mac. Já a troca usada,
corresponde à quantidade de informações copiadas para o arquivo de troca da unidade
do Mac.
19

Abaixo explicaremos as memória utilizadas pelo MAC OS X com mais


detalhes e como as mesmas podem ser utilizadas.

6.4.1. Wired Memory ou memória residente

Essa memória é de uso restrito para armazenamento de código kernel e


estrutura de dados. Os softwares da camada de usuário, aplicações ou frameworks não
podem ser armazenados nessa memória. No entanto eles podem afetar a quantidade de
Wired memory existente num dado momento. Exemplos de entidades do kernel que
utilizam wired memory são: VM Objects, I/O buffer cache e condutores.

6.4.2. Memória Virtual

Como dito anteriormente, o MAC OS X utiliza a memória virtual, através


do mecanismo de paginação, para auxiliar o gerenciamento de memória. Ao utilizar a
memória virtual, minimizamos o uso de memória física, consequentemente diminui o
tempo de consumo da CPU.
Quando todo o espaço de memória é preenchido, o Mac usa o disco rígido
par armazenar os dados que não estão em uso atualmente para dar espaço aos dados que
são necessário no momento. Esse espaço no disco é conhecido como o armazenamento
de apoio, pois serve como reserva para a memória principal.
O Mac OS X, não utiliza uma pré-partição SWAP para a memória virtual.
Em vez disto ele usa todo o espaço disponível na máquina da partição de boot.

6.5. Compartilhamento de Memória

Memória compartilhada é a memória que pode ser escrita ou lida a partir de


dois ou mais processos. O compartilhamento de memória possibilita partilhar grandes
recursos como ícones ou sons, além de tornar rápida a comunicação entre um ou mais
processos. Porém, quando a memória é compartilhada, torna-se frágil. Se algum
programa corromper sua seção compartilhada, afetará em todos os outros que estão
compartilhando essa seção, já que irão ler arquivos corrompidos.
20

O compartilhamento no MAC é feito pela criação de um processo através da


cópia de um outro processo existente. O processo escravo pode ser um clone de um
outro processo diferente do pai. Existem três tipos de compartilhamento de memória
entre processos pais e filhos.

• quando a seção não pode ser usado pelo processo escravo, ou seja, o
processo pai não deu permissão e qualquer acesso a ela será tratado como um acesso a
uma área não alocada

• quando a seção é compartilhada, ou seja, compartilhamento sem


restrições e quando uma alteração ocorre na mesma, a outra é atualizada.

• quando a seção no escravo é uma cópia da seção do pai. Nesse caso, a


regição é copiada e qualquer alteração feita nela, será apenas localmente.

6.6. O que mudou no Mavericks

Na última versão lançada pela Apple do Mac, a Mavericks, há uma grande


preocupação em economizar memória RAM. Isso foi feito através do ajuste da memória
inativa presente nos discos rígidos. Quando a memória fica cheia, o Mavericks
compacta os dados dos aplicativos inativos, disponibilizando assim mais memória.
Essa compressão e descompressão, acontece de maneira muito rápida,
principalmente se comparadas com versões anteriores. Foi assim que surgiu a chamada
memória comprimida.
Como dito anteriormente, o Mac utiliza o disco rígido para armazenar
conteúdo inativo da memória, deixando a RAM mais livre para os aplicativos em
execução. Porém, há um problema quando temos pressa em voltar a ver um aplicativo
que estava no disco como inativo, já que o mesmo é muito lento para esse tipo de
procedimento.
A memória comprimida serve como uma solução para resolver o problema
do uso de memória, comprimindo o conteúdo inativo, evitando recorrer à lenta
paginação para o disco. Além disso, o mavericks reformou o monitor de atividade, como
mostra figura abaixo.
21

Figura 6.6.1: Monitor de atividade no Mavericks


Fonte: Faria, Gustavo.

 A memória física é a quantidade de RAM instalada.


 A memória usada é a quantidade de memória instalada que está sendo usada.
 A virtual é a quantidade de memória que os aplicativos solicitaram.
 A troca usada é a quantidade de memória paginada no disco.
 A memória do aplicativo, é a memória que está sendo utilizada pelos aplicativos.
 Cache do arquivo é a memória marcada como disponível para uso pelo
aplicativos.
 Memória Residente
 Comprimido, é a memória comprimida.

7. ENTRADA E SAÍDA

É uma das várias funções do sistema operacional controlar os dispositivos


de entrada e saída. Enviar sinais para que os dispositivos realizem alguma ação e tratar
interrupções e exceções geradas pelos dispositivos.
22

Os dispositivos de entrada e saída permitem uma interação do computador


com o mundo exterior por meio da comunicação com o usuário ( utilizando mouse,
teclado, monitor), impressão de informações, captura e reprodução de video e áudio e
comunicação com outros computadores.
Dispositivos de entrada podem ser divididos em duas categorias:
dispositivos de blocos e dispositivos de caractere. Dispositivos de bloco trabalha com
informações com tamanho fixo de bytes, e esses blocos podem ser lidos ou escritos
independentemente de todos os outros. Dispositivos de caractere envia ou recebe fluxo
de caracteres sem se limitar ao tamanho do bloco de dados e não faz nenhuma operação
de posicionamento. Geralmente nos dispositivos de bloco o sistema operacional
implementa buffer e no de caracter não implementa, fazendo a leitura e escrita
diretamente no dispositivo. Alguns dispositivos não se encaixam nessa classificação, por
exemplo o relógio que não possui fluxo de entrada nem saída. Os sistemas operacionais
baseado em Unix, como é o caso do Mac OS, fazem uso também de pseudo-dispositivos
que são dispositivos com nenhum dispositivo físico assossiado como o /dev/null (aceita
e descarta toda entrada e não produz saída), o /dev/random ( produz um fluxo de
tamanho variável contendo caracteres pseudo-aleatórios) e o /dev/zero (produz um fluxo
contínuo de nulls ).
A gerência de dispositivos é implementada por uma estrutura de camada de
software e hardware. Na camada de hardware estão os dispositivos com seus respectivos
controladores e os barramentos que fazem a ligação entre os componentes
possibilitando a transferência de informação. O controlador do dispositivo faz a ligação
entre a parte física do dispositivo e a parte eletrônica, e é responsável pela codificação
do fluxo de bits em blocos de bytes, e a verificação de autenticidade dessa informação.
Alguns controladores podem manipular mais de um dispositivo simultaneamente.
O acesso do sistema operacional ao dispositivo se dá pela manipulação dos
registradores existentes nos controladores desses dispositivos e a forma como o
processador se comunica com esses registradores pode variar. Existem duas formas de
acesso do dispositivo pelo processador: mapeamento em espaço de entrada/saída e
mapeamento em memória.
O mapeamento em espaço de entrada/saída era usado na maioria dos
primeiros computadores. Cada registrador de controle é associado a um numero de porta
de E/S, e utiliza instruções especiais de acesso ( comandos IN e OUT ).
23

No mapeamento em espaço de memória cada registrador de controle é


associado a um endereço de memória único.
Há também um esquema híbrido onde os registradores são associados na
porta de E/S e buffers do dispositivos são armazenados na memória
Devido o processador estar em constante desenvolvimento e sua velocidade
ser muitas vezes mais rápido que os dispositivos externos foi criado a tecnologia DMA.
Isso tira do processador a tarefa de tratar diretamente os dispositivos de E/S e faz com
que o processador fique livre para executar outras tarefas.
Existem três maneiras de realizar E/S: E/S programada, E/S orientada a
interrupções e E/S que usa DMA. Na E/S programada o processador possui total
controle sobre as operações de entrada e saída. O processador continuamente verifica se
o dispositivo está pronto (espera ocupada ou pooling). Na E/S usando interrupção
enquanto o dispositivo de E/S executa a sua tarefa o processador consegue realizar
outras tarefas sem ter que esperar pelo dispositivo de E/S pois quando o dispositivo
termina a sua execução ele envia uma interrupção para o processador indicando que
terminou. Na E/S por DMA o processador encarrega o controlador de DMA a fazer toda
a interação com o dispositivo, e esse dispositivo irá realizar a E/S programada.

7.1. Drivers

É possível criar drivers para dispositivos usando a ferramenta de


desenvolvimento XCode da Apple. Os sistemas operacionais da Apple utilizam a
biblioteca opensource I/O Kit. Biblioteca escrita em C++ que foi criada pela empresa
Next ( empresa fundada por Steve Jobs na sua saída da Apple) para ser usada no sistema
operacional Nextstep.
24

Figura 7.1.1: Tela do Xcode, usado para criação de drivers


Fonte: Junior, Jodoval

7.2. HDs

O Mac OS dá suporte a alguns padrões de redundancia conhecidos no


mercado como RAID 0 (Conjunto RAID com Gravação Múltipla) e RAID 1 (Conjunto
RAID Espehado), e também dá suporte a um Conjunto de Discos Concatenado que
agrupa vários discos como se fossem um.
25

Figura 7.1.1: Tela do Utilitário de Disco


Fonte: Junior, Jodoval

O Fusion Drive foi uma tecnologia desenvolvida pela Apple que utiliza 2
HDs para armazenamento. Um HD com tecnologia SSD e outro HD com capacidade
maior, com isso ele aumenta a capacidade de armazenamento e aproveita as vantagens
de desempenho do SSD. O sistema operacional, de forma transparente, faz o
balanceamento dos arquivos mais utilizados para o HD com mais velocidade.

Figura 7.1.1: Fusion Drive e Máquinas com esse recurso


Fonte: Xataka
26

7.3. Conexões

 Thunderbolt
Thunderbolt é um protocolo duplo de Entrada/Saída que possibilita
transferência bi-direcional de 10Gbps de velocidade e é capaz de enviar dados no
padrão PCIe e DisplayPort por um único cabo.

Figura 7.1.1: Padrão Thunderbolt


Fonte: Intel

 USB 3.0
Interface de comunicação que alcança taxa de transferência de 5Gbps. Uma
atualização recente ( USB 3.1 ) tem capacidade d 10Gbps ( mesma da thunderbolt )
porém ainda não foi adicionada aos dispositivos.

Figura 7.1.1: Conectores no padrão USB 3.0


Fonte: Toshiba
27

8. SISTEMA DE ARQUIVOS

Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas que


permitem ao sistema operacional controlar o acesso ao disco rígido. Melhorando assim,
a estrutura de localização dos arquivos no disco.
É a forma de organização de dados em algum meio de armazenamento
secundários físicos, o sistema operacional pode decodificar os dados armazenados e lê-
los ou gravá-los.
Armazena o MBR, arquivo interligado a BIOS, cuja sua importância é o
reconhecimento do sistema de arquivos e a inicialização do sistema operacional.
Diferentes sistemas operacionais usam diferentes sistemas de arquivos, dentre eles:
FAT,NTFS,Ext4,Swap,HFS,HFS+.

8.1. MFS (Macintosh File System)

O MFS foi criado pela Apple Computer em 1984, de forma notável, para
que fosse permitido o armazenamento de dados estruturados e para apoiar a interface
gráfica do Mac OS. O MFS foi chamado de sistema de arquivo plano, já que não
suportava hierarquia de diretório. Apesar de atualmente o seu volume superior a 20mb
de tamanho parecer pequeno, na época em que os disquetes tinham 400kb, seu volume
parecia expansivo.

8.2. HFS (Hierarchical File System)

No ano seguinte, a Apple apresentou Hierarchical File System parar suprir


as necessidades do usuário, criando arquivos com estrutura de árvore (hierarquias não
permitidas no MFS). O HFS trabalha com endereços de bloco de arquivos de 16 bits,
nomes de até 31 caracteres e formato de nome de arquivo MacRoman. Nos Macs OS
7.6.1 já não suportavam gravar volumes MFS, e no OS 8.1, esse volume foi retirado
completamente, tendo que ser criado posteriormente o MFSLives, um plug-in que dá
acesso somente leitura para volume MFS.
28

8.3. HFS+ (Hierarchical File System)

Atualmente o HFS foi estendido, sendo criado o HFS+, tendo como


diferencial de seu antecessor que pode trabalhar com endereços de bloco de arquivos de
até 32bits, aceita nomes de arquivos de até 255 caracteres, com formato de nome de
arquivo Unicode e a possibilidade de ter arquivos com até 8EB (exabytes), sendo um
dos motivos principais para a evolução do produto da Apple.

9. CONCLUSÃO

XXXXXXXXXXXXXXXXX

REFERÊNCIAS

Faria, Gustavo. Gerenciamento de Memória no Mavericks. Disponível em: <


http://cocatech.com.br/gerenciamento-de-memoria-no-mavericks>. Acesso em: maio de
2014.

Durham, Alan. Mac OS X: MAC 424 – Sistemas Operacionais. Disponível em: <
http://www.ime.usp.br/~durham/cursos/mac422/pub/doc/2004/Mac%20OS%20X
%20anotacoes.pdf>. Acesso em: maio de 2014.

Campos, Augusto. Como a memória compactada do OS X Mavericks vai acelerar


seu Mac atual. Disponível em: <http://br-mac.org/2013/06/como-a-memoria-
compactada-do-os-x-mavericks-vai-acelerar-seu-mac-atual.html>. Acesso em: junho de
2014.
29

Godoy, Leandro e Pereira, Walter. Trabalho sobre o sistema operacional Mac OS X.


Disponível em: <http://pt.slideshare.net/dnxwit/mac-osx-9949164>. Acesso em: junho
de 2014.

Apple, Suporte. Como usar o Monitor de Atividade para ler a Memória do Sistema
e determinar a quantidade de RAM sendo usada (OS X Mountain Lion e anterior).
Disponível em: <http://support.apple.com/kb/HT1342?viewlocale=pt_BR>. Acesso em:
junho de 2014.

Fontes:
Site Hardware: (Acessado no dia 18/05/14)
http://www.hardware.com.br/termos/sistema-de-arquivos
Site Kiskea: (Acessado no dia 18/05/14)
http://pt.kioskea.net/contents/repar/filesys.php3
Site Macifícos: (Acessado no dia 18/05/14)
http://macnificos.wordpress.com/sistemas-de-arquivos-mac-os/
Site Mac Rumors: (Acessado no dia 18/05/14)
http://guides.macrumors.com/File_systems

Referencias

Site: Slideshare

http://pt.slideshare.net/dnxwit/mac-osx-9949164. Acessado em: 24/05/14

Site: Slideshare

http://www.slideshare.net/Evandromadeira/apple-macosx. Acessado em: 24/05/14

Site: Slideshare

http://pt.slideshare.net/guestf2a4bc5/apresentao-mac-os. Acessado em: 24/05/14

Site: Wikipedia

http://pt.wikipedia.org/wiki/XNU. Acessado em: 24/05/14

Site: Wikipedia

http://pt.wikipedia.org/wiki/N
%C3%BAcleo_(software)#N.C3.BAcleos_monol.C3.ADticos. Acessado em: 24/05/14

Site: Oficinadanet
30

http://www.oficinadanet.com.br/post/10330-kernel-dos-sistemas-operacionais. Acessado
em: 24/05/14

Site: Youtube

https://www.youtube.com/watch?v=-7GMHB3Plc8. Acessado em: 24/05/14

Site: HowStuffWorks

http://computer.howstuffworks.com/macs/mac-os-x2.htm. Acessado em: 24/05/14

Site: Osxbook

http://osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html. Acessado em:


24/05/14

Site: PureDarwin

http://www.puredarwin.org/developers/xnu#TOC-What-is-XNU. Acessado em:


24/05/14

Site: Netgreat

http://www.netgreat.com.br/disciplinas/so/3/mcxmo2.pdf. Acessado em: 24/05/14

Site: Xataka

http://www.xataka.com/componentes-de-pc/que-es-apple-fusion-drive. Acessado em:


24/05/14

Site: Intel

http://intel.adrenaline.uol.com.br/tecnologia/artigos/206/o-que-e-o-thunderbolt.html.
Acessado em: 25/05/14

Site: Toshiba

http://www.toshiba.com/us/accessory/USB3SAUB3BK. Acessado em: 26/05/14

Você também pode gostar