Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Apple mac-osx
1. Evandro Madeira de Albuquerque
Sistema Operacional Mac OSX
Bras´ - DF, Brasil
ılia
30 de Novembro de 2011
2. Evandro Madeira de Albuquerque
Sistema Operacional Mac OSX
Trabalho apresentado para conclus˜o da
a
disciplina Sistemas Operacionais na UDF-
Centro Universit´rio do Distrito Federal
a
Orientador:
Thiago Leite
´ ¸˜
Departamento de Tecnologia da Informacao
´
UDF-Centro Universitario do Distrito Federal
Bras´ - DF, Brasil
ılia
30 de Novembro de 2011
3. Trabalho Apresentado sob o t´
ıtulo “Sistema Operacional Mac OSX”, defendido por:
• Evandro Madeira de Albuquerque
Bras´
ılia, DF, 30 de Novembro de 2011
4. Resumo
Neste trabalho, fazemos um estudo sobre o sistema operacional da Aplle Mac OSX,
faremos uma abordagem sobre as principais funcionalidades do sistema operacional como:
Vers˜es do sistema, tipos de arquivos, gerenciamento de mem´ria, processos e theads,
o o
estruturas do kernel e interface gr´fica.
a
5. Dedicat´ria
o
Aos meus amigos da faculdade, os quais se tornaram minha segunda fam´lia nesta ci-
ı
dade, obrigado por compartilhar os conhecimentos adquiridos, que s´ fortalece, os ˆnamimos
o a
para continuar com meus objetivos. Enfim, a todos aqueles que fazem ou fizeram parte
da minha vida. E por ultimo, por´m mais importante, a Deus por tudo e por todos.
´ e
6. Agradecimentos
Agrade¸o ao meu professor-amigo Thiago Leite, a quem a realiza¸˜o deste trabalho n˜o
c ca a
seria concretizada sem sua imensa colabora¸˜o, obrigado pelos conselhos, pelas orienta¸˜es
ca co
e pela paciˆncia, que me impulsionaram a terminar este trabalho usando a linguagem de
e
programa¸˜o LTEX.
ca A
9. 8
1 Introdu¸˜o
ca
O Mac OS foi o primeiro sistema gr´fico a usar ´
a ıcones para representar os itens do com-
putador. O sistema tamb´m foi pioneiro na dissemina¸ao do conceito de ”Desktop”com
e c˜
´
uma ”Area de Trabalho”com ´ıcones de documentos, pastas e uma lixeira, em analogia
ao ambiente de escrit´rio.At´ a vers˜o 7.6 o sistema operacional da Apple era chamado
o e a
apenas de ”System”. S´ a partir da´ ele passou a ser chamado de Mac OS, que evoluiu
o ı
at´ sua ”vers˜o 10”. O lan¸amento oficial e completo do Mac OS X ocorreu em 24 de
e a c
mar¸o de 2001.[1]
c
Figura 1: Primeira GUI desenvolvida para Macintosh
10. 1.1 Objetivo deste trabalho 9
1.1 Objetivo deste trabalho
O objetivo deste trabalho ´ fazer um estudo mais detalhado Sobre a arquitetura
e
do sistema operacional Mac OSX da Apple computer, divulgar os resultados estudados
apresentando as aplica¸oes e linguagens de programa¸ao utilizadas nesta arquitetura com-
c c˜
putacional.
11. 10
2 Vers˜es Mac OS X
o
2.1 Mac OS X v10.0 Cheetah
Mac OS X v10.0 ”Cheetah”Lan¸ado em 2001 por um pre¸o de US$129,95. Substituiu
c c
o Mac OS X P´blico Beta. Apresentou um novo conceito de c´digo criado completamente
u o
diferente do modelo do Mac OS 9 introduziu o novo n´cleo Darwin Unix-like e um sistema
u
totalmente novo de administra¸ao de mem´ria.
c˜ o
2.2 Mac OS X v10.1 Puma
Tamb´m lan¸ado em 2001 como atualiza¸ao gratuita o Mac OS X v10.1 ”Puma”foi
e c c˜
a segunda vers˜o do sistema operacional Mac OS X e antecedeu ao Mac OS X v10.2 A
a
partir da vers˜o 10.1.2, a Apple fez do Mac OS X o sistema operacional padr˜o dos novos
a a
Macs Vers˜es Mac OS X
o
2.3 Mac OS X v10.2 Jaguar
Jaguar foi a terceira vers˜o lan¸ada em 2002 permitindo cinco instala¸oes em com-
a c c˜
putadores separados. Foi bem aceito pelos usu´rios do Macintosh pelo grande avan¸o na
a c
estabilidade e velocidade. Jaguar foi o primeiro sistema operacional Mac OS X onde o
codinome foi usado em an´ncios publicit´rios
u a
Mac OS X v10.3 Panther O Mac OS X v10.3 ”Panther”foi o quarto lan¸amento do
c
Mac OS X, foi lan¸ado em 2003 substituindo assim o jaguar. O seu custo era de US$
c
129 para uma unica licen¸a de usu´rio e US$ 199 para um pack familiar (licen¸a para 5
´ c a c
computadores).
12. 2.4 Mac OS X v10.4 Tiger 11
2.4 Mac OS X v10.4 Tiger
”Tiger”foi o quinto lan¸amento do Mac OS X. lan¸ado em 2005 Alguns dos novos
c c
recursos incluem uma nova vers˜o do navegador Safari, Dashboard, um novo tema unifi-
a
cado, e suporte aperfei¸oado para uso em processadores 64 bits. O ”Tiger”foi tamb´m a
c e
primeira vers˜o do sistema operacional Mac OS X liberada para trabalhar com m´quinas
a a
Apple com arquitetura Intel.
2.5 Mac OS X v10.5 Leopard
O Mac OS X v10.5 ”Leopard”´ o sexto lan¸amento da fam´ Mac OS X , foi lan¸ado
e c ılia c
2007 e esteve dispon´
ıvel em duas variantes: uma vers˜o desktop, adequada para com-
a
putadores pessoais, e uma vers˜o para servidor, a vers˜o Mac OS X Server. De acordo
a a
com a Apple, O ”Leopard”contem mais de 300 altera¸˜es e melhorias, abrangendo desde
co
o n´cleo do sistema operacional at´ componentes inclu´
u e ıdos em aplica¸˜es e ferramentas
co
para desenvolvedores.
2.6 Mac OS X v10.6 Snow Leopard
Em 2009, Apple e Microsoft mudaram a estrat´gia, lan¸ando novas vers˜es de seus
e c o
sistemas operacionais. Enquanto o Windows 7 foi lan¸ado em outubro, o Mac OS X
c
Snow Leopard 10.6 chegou ao mercado americano na ultima semana de agosto. Como
´
desvantagem est´ a exigˆncia do processador Intel, o que significa que n˜o roda nos antigos
a e a
Macs. Mas por outro lado, custa apenas US$ 30 para quem j´ possui o Leopard 10.5, o
a
anterior.
2.7 Mac OS X v10.7 Lion
O Mac OS X v10.7 ”Lion”´ o oitavo lan¸amento da fam´ Mac OS X, sendo o sucessor
e c ılia
do Mac OS X v10.6 ”Snow Leopard”. Lion foi anunciado em 20 de Outubro de 2010 na
conferˆncia ”Back To The Mac”e foi lan¸ado em 20 de Julho de 2011, estando dispon´
e c ıvel
para download atrav´s da Mac App Store. Apple: ”Pegamos nossas melhores ideias do
e
Mac OS X e aplicamos no iPhone. Pegamos nossas melhores ideias do iPhone e aplicamos
no iPad. Agora chegou a hora de aplicar tudo isso no Mac”[2].
13. 12
3 Sistemas de arquivos
3.1 Arquitetura
O Mac OS X possui uma arquitetura constru´ em torno dos principais componentes:
ıda
o sistema operacional central Darwin, um grupo diversificado de estruturas de aplicativo,
sistemas de imagem (ou sistemas gr´ficos)[3].
a
Figura 2: Arquitetura interna do Mac OS X
3.2 N´ cleo
u
O cora¸ao do Mac OS X ´ o kernel XNU. XNU ´ composto basicamente de um N´cleo
c˜ e e u
Mach, com caracter´
ısticas complementares previstos do Berkeley Software Distribution
(BSD). Al´m disso, o XNU ´ respons´vel por proporcionar um ambiente de drivers do
e e a
kernel chamado de I / O Kit. XNU tem todo o c´digo fonte dispon´ livremente.
o ıvel
14. 3.3 Sobre o XNU 13
3.3 Sobre o XNU
XNU foi lan¸ado como software livre no sistema operacional Darwin. XNU ´ o
c e
acrˆnimo de X is Not Unix. Originalmente desenvolvido pela NeXT para o NEXTS-
o
TEP, XNU era um n´cleo h´
u ıbrido combinando a vers˜o 2.5 do n´cleo Mach desenvolvido
a u
pela Universidade Carnegie Mellon com componentes do BSD 4.3 e uma API orientada a
objeto para escrever drivers.
Depois da aquisi¸˜o da NeXT pela Apple Computer, o Mach foi atualizado para 3.0 e
ca
o componente BSD foi atualizado usando c´digo do projeto FreeBSD, e a API orientada
o
a objeto foi substitu´ por outra em C++ chamada de I/O Kit.
ıda
Observe que no XNU fica as bibliotecas de drives e as APIs de programa¸ao, uma
c˜
aten¸ao especial deve ser dada para o item NKE (network kernel extensions (NKEs).
c˜
NKE permite criar m´dulos de rede e pilhas de protocolo podem ser carregados dinami-
o
camente no kernel e descarregados a partir dele. NKEs tamb´m torna poss´ configurar
e ıvel
automaticamente pilhas de protocolo.[4]
Figura 2: Representa¸ao do XNU no Mach
c˜
Figura 3: Filtros de soquete na pilha de rede
15. 3.4 Implementa¸˜o
ca 14
3.4 Implementa¸˜o
ca
Diferentemente de muitos SOs o MAC OS X n˜o foi planejado e implementado a
a
partir do zero, ele foi desenvolvido a partir da combina¸ao de v´rios outros SOs. Ele ´ um
c˜ a e
Kernel h´
ıbrido com caracter´
ısticas de microkernel e monol´
ıtica, buscando tirar proveito
das vantagens de cada tecnologia.
3.5 Sistema Monol´
ıtico
A organiza¸˜o mais comum ´ aquela que estrutura o sistema como um conjunto de
ca e
rotinas que podem interagir livremente umas com as outras. Pode ser comparada com
uma aplica¸˜o formada por v´rios procedimentos que s˜o compilados separadamente e
ca a a
depois linkados, formando um grande e unico programa execut´vel. Vantagen: Grande
´ a
desempenho Desvantagens: Uma falha pode paralisar o todo o n´cleo[5].
u
Figura 4: Representa¸ao de um kernel monol´
c˜ ıtico
16. 3.6 Microkernel 15
3.6 Microkernel
Uma tendˆncia dos sistemas operacionais ´ tornar o n´cleo menor e mais simples
e e u
poss´ e para implementar esta id´ia o sistema ´ dividido em processos. Desta forma,
ıvel e e
sempre que uma aplica¸ao deseja algum servi¸o ela solicita ao processo respons´vel, assim,
c˜ c a
a aplica¸˜o que solicita um servi¸o ´ chamada de cliente e o processo que responde a
ca c e
solicita¸ao ´ chamado de servidor[6].
c˜ e
Figura 5: Representa¸ao de um Microkernel
c˜
17. 3.7 kernel h´
ıbrido 16
3.7 kernel h´
ıbrido
Como vimos, o XNU ´ um kernel h´
e ıbrido porque ele inclui muitas das fun¸oes do
c˜
BSD (que roda como um servidor) ao pr´prio kernel. Isso ´ feito porque um microkernel
o e
geralmente ´ muito lento. Isso porque toda chamada de uma aplica¸ao de usu´rio requer
e c˜ a
que a mensagem seja enviada ao kernel (uma opera¸˜o custosa chamada mudan¸a de
ca c
contexto), que ent˜o seria enviada a biblioteca Unix com outra mudan¸a de contexto.
a ` c
Essa opera¸˜o seria ainda repetida para todas as respostas.
ca
N´cleo h´
u ıbrido define um n´cleo baseado em micron´cleo no qual m´dulos externos
u u o
a ele podem executar opera¸˜es em modo protegido, a fim de evitar trocas de contexto
co
e melhorar o desempenho geral do sistema.Por´m sendo h´
e ıbrido, tem a capacidade de
agregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentes
na sua estrutura inicial, proporcionais a sua organiza¸ao[7].
c˜
Figura 6: Representa¸ao de um kernel h´
c˜ ıbrido
18. 3.8 Funcionalidade MACH no XNU 17
3.8 Funcionalidade MACH no XNU
O componente Mach do XNU ´ baseado na vers˜o 3.0 do Mach, mas n˜o ´ usado
e a a e
como um microkernel. O Mach ´ um subsistema de parte do kernel como tamb´m s˜o
e e a
v´rios outros subsistemas que s˜o tipicamente implementados nos sistemas microkernel.
a a
O Mach do XNU ´ respons´vel por v´rios aspectos de baixo n´ do sistema, tais como:
e a a ıvel
• Prote¸ao de mem´ria;
c˜ o
• Gerenciamento de mem´ria virtual;
o
• Comunica¸˜o inter-processos;
ca
• Gerenciamento de interrup¸ao;
c˜
• Suporte real-time;
• Console I/O
• Multitarefa preemptiva, incluindo threads de kernel;
• Suporte a depura¸˜o do kernel.
ca
19. 3.9 Sistemas de arquivos 18
3.9 Sistemas de arquivos
• HFS+ ou HFS Plus
• UFS (Unix file system)
• NFS (Network File System)
HFS- (Hierarchical File System), e um sistema de arquivos desenvolvido pela
Apple Computer para uso em computadores rodando o Mac OS. Originalmente projetado
para uso em floppy e discos rigidos, ele tambem pode ser encontrado em suporte read-only
como CD-ROMs. no Mac OSX, os arquivos s˜o gerenciados em um sistema de arquivos
a
hier´rquico . O sistema hier´rquico representa uma ´rvore de cabe¸a para baixo. No Mac
a a a c
OSX, o diret´rio raiz ´ o disco r´
o e ıgido. O disco r´
ıgido ´ organizado por pastas, subpastas
e
e arquivos[8].
Figura 7: Arvore hier´rquica HFS
a
20. 3.9 Sistemas de arquivos 19
UFS-(Unix file system) O sistema de arquivos UFS ´ hier´rquico, distribuindo os
e a
v´rios arquivos em uma ´rvore de diret´rios. A base desta ´rvore ´ um diret´rio chamado
a a o a e o
diret´rio raiz, que possui o nome especial de ”/”(o caractere barra). Enquanto outros
o
sistemas operacionais consideram discos individualmente, cada um possuindo seu diret´rio
o
raiz, arquivos e subdiret´rios, o UFS considera todos os dispositivos, discos, arquivos e
o
diret´rios como um todo, alocando-os na mesma ´rvore do sistema de arquivos. Assim,
o a
o usu´rio n˜o precisa especificar o disco ou dispositivo onde est´ um arquivo, somente o
a a a
diret´rio onde ele est´ armazenado. O pr´prio sistema operacional se encarrega de mapear
o a o
o acesso ao disco ou dispositivo correspondente[9].
Figura 8: Arvore hier´rquica UFS
a
21. 3.9 Sistemas de arquivos 20
NFS-(Network File System) ´ um protocolo de rede do sistema de arquivos ori-
e
ginalmente desenvolvido pela Sun Microsystems. Seu principal uso ´ um cliente-servidor
e
do sistema de arquivos distribu´
ıdos. NFS est´ dispon´ para uma ampla gama de sis-
a ıvel
temas heterogˆneos, incluindo UNIX, Linux, Mac OSX e Windows da Microsoft, Novell
e
Netware e OpenVMS. A partir de NFSv4.1 o protocolo adicionado Parallel NFS (pNFS)
para dados paralelismo de acesso. Isso efetivamente fornece a op¸ao de separar o sistema
c˜
de arquivos de meta-dados a partir da localiza¸ao do arquivo de dados.
c˜
No NFS se pode montar um peda¸o do sistema de arquivos distribu´ em algum di-
c ıdo
ret´rio do sistema de arquivos local do cliente, de modo que a nomenclatura dos diret´rios
o o
provenientes do NFS segue o mesmo padr˜o do sistema de arquivos local. Portanto o NFS
a
provˆ transparˆncia no acesso, pois se o servidor onde os dados se encontram mudar de
e e
lugar, o cliente n˜o precisa saber dessa mudan¸a para continuar a usar o NFS[10].
a c
Figura 9: NFS monta peda¸os de arquivos
c
Figura 10: Algoritimo de reinicializa¸ao do servi¸o de rede
c˜ c
22. 3.10 Cocoa 21
3.10 Cocoa
Cocoa ´ uma API, ou seja, uma interface de programa¸ao de aplicativos para computa-
e c˜
dores da Apple e seu sistema operacional Mac OS X. Cocoa ´ a linguagem de programa¸˜o
e ca
nativa do MAC OS, e para se fazer aplica¸oes em Cocoa ´ necess´rio ter o conhecimento
c˜ e a
da linguagem C Orientada a Objeto[11].
Figura 11: Exemplo de c´digo feito em cocoa
o
O c´digo acima imprime uma mensagem de Apple Mac OSX artigo
o
3.11 Carbon
O Carbon ´ um conjunto de APIS que permite que os usu´rios fa¸am aplicativos em
e a c
C e C++. A transi¸ao para aplica¸˜es de 64 bits Macintosh come¸ando com Mac OS X
c˜ co c
v10.5, lan¸ado 26 de outubro de 2007, trouxe as limita¸oes para o Carbono. A Apple n˜o
c c˜ a
fornece compatibilidade entre a interface de usu´rio gr´fica do Macintosh e a linguagem
a a
de programa¸ao C no ambiente de 64 bits, em vem exigindo o uso do dialeto Objective-C
c˜
com a API Cocoa.
Apesar de Objective-C poder oferecer vantagens significativas para c´digo j´ escritos para
o a
tirar vantagem de sua filosofia orientada a objetos, a necessidade de reescrever grandes
quantidades de c´digo legado retardou a transi¸ao de aplica¸oes a base de carbono, famosa
o c˜ c˜ `
como o Adobe Photoshop, que acabou por ser atualizado para Cocoa, em abril de 2010[12].
23. 3.12 Java Applet 22
3.12 Java Applet
O MAC OS X tem suporte para a linguagem de programa¸˜o Java assim todos os
ca
usu´rios conseguem fazer aplica¸oes em Java[13].
a c˜
Figura 12: C´digo utilizando a classe java.Applet
o
Figura 13: Mensagem da classe java.awt.Graphics
24. 3.13 OpenGl 23
3.13 OpenGl
Open GL permite que jogos e aplicativos que exijam gr´ficos pesados, rodem com
a
melhor desempenho no sistema. Isso tudo afiliado com o Darwin, melhora a performance
do Open GL, transformando o Mac num dos melhores computadores para jogos 3D e
cria¸ao de imagens pesadas.
c˜
Figura 14: Estrura do OpenGL
Figura 15: Anima¸˜o usando OpenGL
ca
Usando o Core Animation, QuickTime Player fornece uma interface limpa e organi-
zada, com controles que simplesmente desaparecem
25. 24
4 Gest˜o de Entrada/Sa´
a ıda
4.1 I/O Kit
O I/O Kit ´ uma cole¸ao de frameworks, bibliotecas, ferramentas e outros recursos
e c˜
para cria¸˜o de drivers de dispositivos no Mac OS X totalmente orientada a objetos e
ca
baseada numa implementa¸ao de C++ esse kit oferece:
c˜
• Configura¸ao autom´tica e dinˆmica. (Plug and play);
c˜ a a
• Novos tipos de dispositivos, como acelera¸ao gr´fica e de multim´
c˜ a ıdia.
O gr´fico a seguir apresenta a hierarquia de todas as classes I / O Kit que s˜o mem-
a a
bros desta fam´
ılia. Veja as Referˆncia da Fam´ I / O Kit para mais detalhes[15].
e ılia
Figura 16: Classes do I/O Kit
26. 25
5 Gerenciamento de Mem´ria
o
Uma das grandes novidades neste novo sistema operacional, ´ o esquema de mem´ria
e o
protegida, que ´ respons´vel por manter a integridade dos dados, ou seja, evitar que
e a
eles sejam perdidos ou corrompidos. Com isso, o sistema alocar´ um unico espa¸o
a ´ c
na mem´ria para cada programa aberto, e o programa n˜o poder´ interferir no
o a a
espa¸o de outros, pois isso pode causar grandes problemas, como travamento do
c
computador e conseq¨entemente, perda dos dados. Se um programa apresentar um
u
problema desse tipo, o Darwin simplesmente fecha esse programa, permitindo que
vocˆ continue seu trabalho nos outros programas abertos.
e
– Cada processo tem seu pr´prio conjunto (32 bits ou 64 bits) de espa¸o de
o c
endere¸o virtual. Para processos de 32 bits, cada processo tem um espa¸o que
c c
pode endere¸ar dinamicamente chegando ao limite de 4GB. Para processos de
c
64 bits, pode endere¸ar at´ o limite de 18 exabytes.
c e
27. 5 Gerenciamento de Mem´ria
o 26
Figura 17: Exemplo de c´digo para gerencia de mem´ria
o o
O c´digo acima cria e usa v´rios objetos, uma poll autorelease para gerencia-
o a
mento de mem´ria, uma cole¸ao de objetos (conjunto de matrizes) para ”uni-
o c˜
quing”classificando as palavras especificadas, e um objeto enumerador para itera-
gir atrav´s dos elementos da matriz e imprimi-los na sa´ padr˜o.
e ıda a
Uniquing Garante um Objeto Gerenciado por registro de Contexto
que em um determinado objeto gerenciado uma entrada em um armazenamento
persistente ´ associado com apenas um objeto gerenciado. Esta t´cnica ´ conhecida
e e e
como uniquing. Sem o uniquing, vocˆ podia acabar com um contexto para mais
e
de um objeto para representar um determinado registro.
28. 27
6 Processos e Threads
6.1 thread
Uma thread ´ um contexto da execu¸ao dentro de um processo, ela ´ associada com
e c˜ e
uma pilha de chamada e um estado do processador. Uma thread compartilha do
espa¸o de endere¸o virtual e de outros recursos com outras threads do processo. As
c c
threads s˜o programadas para funcionar preemptivamente ou, com multiprocessa-
a
mento sim´trico, concorrentemente.
e
Cada processo (aplica¸ao) no Mac OS X ´ composto de um ou mais threads, cada
c˜ e
uma delas representa um unico caminho de execu¸˜o atrav´s do c´digo do aplicativo.
´ ca e o
Cada aplicativo ´ iniciado com um unico segmento, que executa a fun¸˜o principal
e ´ ca
do aplicativo. Aplica¸oes pode gerar t´picos adicionais, cada um dos quais executa
c˜ o
o c´digo de uma fun¸˜o espec´
o ca ıfica.
Quando um aplicativo gera um novo segmento, esse segmento se torna uma enti-
dade independente dentro do espa¸o do aplicativo e processo. Cada segmento tem
c
sua pr´pria pilha de execu¸˜o e est´ prevista para tempo de execu¸˜o separada-
o ca a ca
mente pelo kernel. Um segmento pode se comunicar com outros segmentos e outros
processos, podem realizar outras opera¸oes de I / O, e fazer qualquer outra coisa
c˜
que vocˆ pode precisar fazer. Porque eles est˜o dentro do mesmo espa¸o de processo.
e a c
29. 6.1 thread 28
Usando Threads POSIX O Mac OS X e fornece suporte baseado em C para
criar threads usando o POSIX THREAD API. essa tecnologia pode realmente
ser usada em qualquer tipo de aplica¸ao (incluindo Cocoa e aplica¸oes Cocoa Touch)
c˜ c˜
e pode ser mais conveniente se vocˆ estiver escrevendo o seu software para m´ltiplas
e u
plataformas.
A figura abaixo mostra duas fun¸˜es personalizadas para criar uma thread usando
co
chamadas POSIX. A fun¸ao LaunchThread cria um novo segmento, cuja principal
c˜
rotina ´ implementado na fun¸ao PosixThreadMainRoutine[17].
e c˜
Figura 18: Cria Threads Usando POSIX
30. 6.1 Loop 29
Loop
UM Loop de execu¸ao recebe eventos de dois tipos diferentes de dados, entrada e
c˜
sa´ de eventos ass´
ıda ıncronos, geralmente mensagens de outro segmento ou de uma
aplica¸ao diferente. Dados de temporizador, sa´ de eventos s´
c˜ ıda ıncronos; executando
de forma agendado, ou em um intervalo de tempo programado[18].
Figura 19: Estrutura de um loop de um c´digo em execu¸˜o
o ca
A figura acima mostra a estrutura conceitual de um loop de execu¸˜o e uma varie-
ca
dade de eventos. Os dados de entrada proporciona a execu¸ao de eventos ass´
c˜ ıncronos
para os manipuladores correspondente e faz com que, o (runUntilDate) m´todo
e
chamado no objeto do thread saia do temporizador e entregue seus eventos
para as rotinas do manipulador.
31. 6.2 Bibliografia 30
6.2 Bibliografia
[1]Primeira GUI desenvolvida para Macintosh. Dispon´ em:
ıvel
http://www.judsonmaria.net/index.php/geral/a-evolucao-dos-sistemas-operacionais
Acessado em 30/11/2011.
[2]Vers˜es Mac OS X. Dispon´ em:
o ıvel
http://pt.wikipedia.org/wiki/versoe
Acessado em 30/11/2011.
[3]Arquitetura interna do Mac OS X. Dispon´ em:
ıvel
http://pt.wikipedia.org/wiki/Mac OS X
Acessado em 30/11/2011.
[4]Filtros de soquete na pilha de rede. Dispon´ em:
ıvel
http://http://developer.apple.com/library/mac/documentation/MacOSX/
Conceptual/OSXT echnologyO verview/SystemT echnology/SystemT echnology.html
Acessadoem30/11/2011.
[5]Representa¸˜o de um kernel monol´
ca ıtico. Dispon´ em:
ıvel
http://pt.wikipedia.org/wiki/kernel monolitico
Acessado em 30/11/2011.
[6]Representa¸˜o de um Microkernel. Dispon´ em:
ca ıvel
http://wiki.osdev.org/Micro kernel
Acessado em 30/11/2011.
[7]Representa¸˜o de um kernel h´
ca ıbrido. Dispon´ em:
ıvel
http://pt.wikipedia.org/wiki/Nucleo hibrido
Acessado em 30/11/2011.
[8]Arvore hier´rquica HFS. Dispon´ em:
a ıvel
http://academic.stedwards.edu/competency/module1/lesson6/filemgtstructuremac.htm
Acessado em 30/11/2011.
[9]Arvore hier´rquica UFS. Dispon´ em:
a ıvel
http://www cefet-to.org
Acessado em 30/11/2011.
[10]Network File System. Dispon´ em:
ıvel
http://www.linuxfocus.org/English/November2000/article164.shtml
Acessado em 30/11/2011.
32. 6.2 Bibliografia 31
[11]Cocoa. Dispon´ em:
ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/
CocoaFundamentals/CocoaObjects/CocoaObjects.html
Acessado em 30/11/2011.
[12]Carbon. Dispon´ em:
ıvel
http://en.wikipedia.org/wiki/carbon
Acessado em 30/11/2011.
[13]Java Applet. Dispon´ em:
ıvel
http://www.java-examples.com/hello-world-applet-example
Acessado em 30/11/2011.
[14]OpenGlt. Dispon´ em:
ıvel
http://developer.apple.com/library/mac/documentation/GraphicsImaging/
Conceptual/OpenGL-MacProgGuide/opengli ntro/opengli ntro.html
Acessadoem30/11/2011.
[15]I/O Kit. Dispon´ em:
ıvel
http://developer.apple.com/library/mac/documentation/devicedrivers/Conceptual/
IOKitFundamentals/HelperClassesChart/HelperClassesChart.html
Acessado em 30/11/2011.
[16]Gerenciamento de Mem´ria. Dispon´ em:
o ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/
CreatingThreads/CreatingThreads.html
Acessado em 30/11/2011.
[17]Usando Threads POSIX. Dispon´ em:
ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/
CreatingThreads/CreatingThreads.html
Acessado em 30/11/2011.
[17]Estrutura de um loop. Dispon´ em:
ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/
RunLoopManagement/RunLoopManagement.html
Acessado em 30/11/2011.