Este documento apresenta um resumo sobre o sistema operacional Mac OS X. Ele discute as principais versões do Mac OS X, desde a primeira versão Cheetah até a versão Lion. Também aborda os sistemas de arquivos, o núcleo XNU, os processos e threads, e a interface gráfica do Mac OS X.
Esta apresentação tem como foco de aprendizagem os sistemas operativos mac os desenvolvidos pela Apple.Abordei a história,arquitectura do software,bem como a segurança,integração,acessibilidade,etc do mac os.
Esta apresentação tem como foco de aprendizagem os sistemas operativos mac os desenvolvidos pela Apple.Abordei a história,arquitectura do software,bem como a segurança,integração,acessibilidade,etc do mac os.
Breve abordagem sobre o SO Mac, com algumas informações referente a estrutura do Sistema, gerenciamento de memória, processamento de dados, núcleo e versões existentes.
Slide da apresentação do artigo Um Estudo Sobre a Distribuição Linux Fedora, este artigo esta aqui em meus arquivos para quem deseje baixar. http://www.slideshare.net/slideshow/embed_code/24181718
Neste trabalho pretendo dar a conhecer o software Open Source (OSS).
Partindo de ideais de partilha, as soluções Open Source têm uma contribuição fundamental para a inovação fora da indústria de software. Elas permitem a leitura, a partilha e a disposição de diferentes programas, agregando benefícios como a redução de custos e maior transparência para o utilizador. Contribuem, também, para a transformação digital, unindo organizações a sistemas ágeis e flexíveis.
Disciplina: Sistemas Operativos
Breve abordagem sobre o SO Mac, com algumas informações referente a estrutura do Sistema, gerenciamento de memória, processamento de dados, núcleo e versões existentes.
Slide da apresentação do artigo Um Estudo Sobre a Distribuição Linux Fedora, este artigo esta aqui em meus arquivos para quem deseje baixar. http://www.slideshare.net/slideshow/embed_code/24181718
Neste trabalho pretendo dar a conhecer o software Open Source (OSS).
Partindo de ideais de partilha, as soluções Open Source têm uma contribuição fundamental para a inovação fora da indústria de software. Elas permitem a leitura, a partilha e a disposição de diferentes programas, agregando benefícios como a redução de custos e maior transparência para o utilizador. Contribuem, também, para a transformação digital, unindo organizações a sistemas ágeis e flexíveis.
Disciplina: Sistemas Operativos
proposta curricular para educação de jovens e adultos- Língua portuguesa- anos finais do ensino fundamental (6º ao 9º ano). Planejamento de unidades letivas para professores da EJA da disciplina língua portuguesa- pode ser trabalhado nos dois segmentos - proposta para trabalhar com alunos da EJA com a disciplina língua portuguesa.Sugestão de proposta curricular da disciplina português para turmas de educação de jovens e adultos - ensino fundamental. A proposta curricular da EJa lingua portuguesa traz sugestões para professores dos anos finais (6º ao 9º ano), sabendo que essa modalidade deve ser trabalhada com metodologias diversificadas para que o aluno não desista de estudar.
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24, Pr Henrique, EBD NA TV, 2° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, ORDENANÇAS BÍBLICAS, Doutrina Fundamentais Imperativas aos Cristãos para uma vida bem-sucedida e de Comunhão com DEUS, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Bispo Abner Ferreira, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxMariaSantos298247
O presente manual foi concebido como instrumento de apoio à unidade de formação de curta duração – CP4 – Processos identitários, de acordo com o Catálogo Nacional de Qualificações.
Livro de conscientização acerca do autismo, através de uma experiência pessoal.
O autismo não limita as pessoas. Mas o preconceito sim, ele limita a forma com que as vemos e o que achamos que elas são capazes. - Letícia Butterfield.
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.