Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Apple mac-osx

6,787 views

Published on

artigo sobre a arquitetura de arquivo mac

Published in: Education

Apple mac-osx

  1. 1. Evandro Madeira de AlbuquerqueSistema Operacional Mac OSX Bras´ - DF, Brasil ılia 30 de Novembro de 2011
  2. 2. Evandro Madeira de AlbuquerqueSistema 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. 3. Trabalho Apresentado sob o t´ ıtulo “Sistema Operacional Mac OSX”, defendido por:• Evandro Madeira de AlbuquerqueBras´ ılia, DF, 30 de Novembro de 2011
  4. 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 oestruturas do kernel e interface gr´fica. a
  5. 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 apara continuar com meus objetivos. Enfim, a todos aqueles que fazem ou fizeram parteda minha vida. E por ultimo, por´m mais importante, a Deus por tudo e por todos. ´ e
  6. 6. Agradecimentos Agrade¸o ao meu professor-amigo Thiago Leite, a quem a realiza¸˜o deste trabalho n˜o c ca aseria concretizada sem sua imensa colabora¸˜o, obrigado pelos conselhos, pelas orienta¸˜es ca coe pela paciˆncia, que me impulsionaram a terminar este trabalho usando a linguagem de eprograma¸˜o LTEX. ca A
  7. 7. Sum´rio a1 Introdu¸˜o ca p. 8 1.1 Objetivo deste trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 92 Vers˜es Mac OS X o p. 10 2.1 Mac OS X v10.0 Cheetah . . . . . . . . . . . . . . . . . . . . . . . . . p. 10 2.2 Mac OS X v10.1 Puma . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10 2.3 Mac OS X v10.2 Jaguar . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10 2.4 Mac OS X v10.4 Tiger . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11 2.5 Mac OS X v10.5 Leopard . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11 2.6 Mac OS X v10.6 Snow Leopard . . . . . . . . . . . . . . . . . . . . . . p. 11 2.7 Mac OS X v10.7 Lion . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 113 Sistemas de arquivos p. 12 3.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12 3.2 N´cleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u p. 12 3.3 Sobre o XNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13 3.4 Implementa¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca p. 14 3.5 Sistema Monol´ ıtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14 3.6 Microkernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15 3.7 kernel h´ ıbrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16 3.8 Funcionalidade MACH no XNU . . . . . . . . . . . . . . . . . . . . . . p. 17 3.9 Sistemas de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
  8. 8. 3.10 Cocoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21 3.11 Carbon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21 3.12 Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22 3.13 OpenGl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 234 Gest˜o de Entrada/Sa´ a ıda p. 24 4.1 I/O Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 245 Gerenciamento de Mem´ria o p. 256 Processos e Threads p. 27 6.1 thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27 Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29 6.2 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
  9. 9. 81 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 analogiaao ambiente de escrit´rio.At´ a vers˜o 7.6 o sistema operacional da Apple era chamado o e aapenas 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 cmar¸o de 2001.[1] c Figura 1: Primeira GUI desenvolvida para Macintosh
  10. 10. 1.1 Objetivo deste trabalho 91.1 Objetivo deste trabalho O objetivo deste trabalho ´ fazer um estudo mais detalhado Sobre a arquitetura edo sistema operacional Mac OSX da Apple computer, divulgar os resultados estudadosapresentando as aplica¸oes e linguagens de programa¸ao utilizadas nesta arquitetura com- c c˜putacional.
  11. 11. 102 Vers˜es Mac OS X o2.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 co Mac OS X P´blico Beta. Apresentou um novo conceito de c´digo criado completamente u odiferente do modelo do Mac OS 9 introduziu o novo n´cleo Darwin Unix-like e um sistema utotalmente novo de administra¸ao de mem´ria. c˜ o2.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 apartir da vers˜o 10.1.2, a Apple fez do Mac OS X o sistema operacional padr˜o dos novos a aMacs Vers˜es Mac OS X o2.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 cestabilidade e velocidade. Jaguar foi o primeiro sistema operacional Mac OS X onde ocodinome 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 cMac OS X, foi lan¸ado em 2003 substituindo assim o jaguar. O seu custo era de US$ c129 para uma unica licen¸a de usu´rio e US$ 199 para um pack familiar (licen¸a para 5 ´ c a ccomputadores).
  12. 12. 2.4 Mac OS X v10.4 Tiger 112.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 crecursos incluem uma nova vers˜o do navegador Safari, Dashboard, um novo tema unifi- acado, e suporte aperfei¸oado para uso em processadores 64 bits. O ”Tiger”foi tamb´m a c eprimeira vers˜o do sistema operacional Mac OS X liberada para trabalhar com m´quinas a aApple 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 c2007 e esteve dispon´ ıvel em duas variantes: uma vers˜o desktop, adequada para com- aputadores pessoais, e uma vers˜o para servidor, a vers˜o Mac OS X Server. De acordo a acom a Apple, O ”Leopard”contem mais de 300 altera¸˜es e melhorias, abrangendo desde coo n´cleo do sistema operacional at´ componentes inclu´ u e ıdos em aplica¸˜es e ferramentas copara 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 osistemas operacionais. Enquanto o Windows 7 foi lan¸ado em outubro, o Mac OS X cSnow 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 aMacs. Mas por outro lado, custa apenas US$ 30 para quem j´ possui o Leopard 10.5, o aanterior.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 ıliado Mac OS X v10.6 ”Snow Leopard”. Lion foi anunciado em 20 de Outubro de 2010 naconferˆncia ”Back To The Mac”e foi lan¸ado em 20 de Julho de 2011, estando dispon´ e c ıvelpara download atrav´s da Mac App Store. Apple: ”Pegamos nossas melhores ideias do eMac OS X e aplicamos no iPhone. Pegamos nossas melhores ideias do iPhone e aplicamosno iPad. Agora chegou a hora de aplicar tudo isso no Mac”[2].
  13. 13. 123 Sistemas de arquivos3.1 Arquitetura O Mac OS X possui uma arquitetura constru´ em torno dos principais componentes: ıdao 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 X3.2 N´ cleo u O cora¸ao do Mac OS X ´ o kernel XNU. XNU ´ composto basicamente de um N´cleo c˜ e e uMach, 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 akernel chamado de I / O Kit. XNU tem todo o c´digo fonte dispon´ livremente. o ıvel
  14. 14. 3.3 Sobre o XNU 133.3 Sobre o XNU XNU foi lan¸ado como software livre no sistema operacional Darwin. XNU ´ o c eacrˆnimo de X is Not Unix. Originalmente desenvolvido pela NeXT para o NEXTS- oTEP, XNU era um n´cleo h´ u ıbrido combinando a vers˜o 2.5 do n´cleo Mach desenvolvido a upela Universidade Carnegie Mellon com componentes do BSD 4.3 e uma API orientada aobjeto para escrever drivers. Depois da aquisi¸˜o da NeXT pela Apple Computer, o Mach foi atualizado para 3.0 e cao componente BSD foi atualizado usando c´digo do projeto FreeBSD, e a API orientada oa 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- ocamente no kernel e descarregados a partir dele. NKEs tamb´m torna poss´ configurar e ıvelautomaticamente pilhas de protocolo.[4] Figura 2: Representa¸ao do XNU no Mach c˜ Figura 3: Filtros de soquete na pilha de rede
  15. 15. 3.4 Implementa¸˜o ca 143.4 Implementa¸˜o ca Diferentemente de muitos SOs o MAC OS X n˜o foi planejado e implementado a apartir do zero, ele foi desenvolvido a partir da combina¸ao de v´rios outros SOs. Ele ´ um c˜ a eKernel h´ ıbrido com caracter´ ısticas de microkernel e monol´ ıtica, buscando tirar proveitodas vantagens de cada tecnologia.3.5 Sistema Monol´ ıtico A organiza¸˜o mais comum ´ aquela que estrutura o sistema como um conjunto de ca erotinas que podem interagir livremente umas com as outras. Pode ser comparada comuma aplica¸˜o formada por v´rios procedimentos que s˜o compilados separadamente e ca a adepois linkados, formando um grande e unico programa execut´vel. Vantagen: Grande ´ adesempenho Desvantagens: Uma falha pode paralisar o todo o n´cleo[5]. u Figura 4: Representa¸ao de um kernel monol´ c˜ ıtico
  16. 16. 3.6 Microkernel 153.6 Microkernel Uma tendˆncia dos sistemas operacionais ´ tornar o n´cleo menor e mais simples e e uposs´ e para implementar esta id´ia o sistema ´ dividido em processos. Desta forma, ıvel e esempre que uma aplica¸ao deseja algum servi¸o ela solicita ao processo respons´vel, assim, c˜ c aa aplica¸˜o que solicita um servi¸o ´ chamada de cliente e o processo que responde a ca c esolicita¸ao ´ chamado de servidor[6]. c˜ e Figura 5: Representa¸ao de um Microkernel c˜
  17. 17. 3.7 kernel h´ ıbrido 163.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 egeralmente ´ muito lento. Isso porque toda chamada de uma aplica¸ao de usu´rio requer e c˜ aque a mensagem seja enviada ao kernel (uma opera¸˜o custosa chamada mudan¸a de ca ccontexto), que ent˜o seria enviada a biblioteca Unix com outra mudan¸a de contexto. a ` cEssa 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 oa ele podem executar opera¸˜es em modo protegido, a fim de evitar trocas de contexto coe melhorar o desempenho geral do sistema.Por´m sendo h´ e ıbrido, tem a capacidade deagregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentesna sua estrutura inicial, proporcionais a sua organiza¸ao[7]. c˜ Figura 6: Representa¸ao de um kernel h´ c˜ ıbrido
  18. 18. 3.8 Funcionalidade MACH no XNU 173.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 ecomo um microkernel. O Mach ´ um subsistema de parte do kernel como tamb´m s˜o e e av´rios outros subsistemas que s˜o tipicamente implementados nos sistemas microkernel. a aO 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. 19. 3.9 Sistemas de arquivos 183.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 pelaApple Computer para uso em computadores rodando o Mac OS. Originalmente projetadopara uso em floppy e discos rigidos, ele tambem pode ser encontrado em suporte read-onlycomo CD-ROMs. no Mac OSX, os arquivos s˜o gerenciados em um sistema de arquivos ahier´rquico . O sistema hier´rquico representa uma ´rvore de cabe¸a para baixo. No Mac a a a cOSX, o diret´rio raiz ´ o disco r´ o e ıgido. O disco r´ ıgido ´ organizado por pastas, subpastas ee arquivos[8]. Figura 7: Arvore hier´rquica HFS a
  20. 20. 3.9 Sistemas de arquivos 19 UFS-(Unix file system) O sistema de arquivos UFS ´ hier´rquico, distribuindo os e av´rios arquivos em uma ´rvore de diret´rios. A base desta ´rvore ´ um diret´rio chamado a a o a e odiret´rio raiz, que possui o nome especial de ”/”(o caractere barra). Enquanto outros osistemas operacionais consideram discos individualmente, cada um possuindo seu diret´rio oraiz, arquivos e subdiret´rios, o UFS considera todos os dispositivos, discos, arquivos e odiret´rios como um todo, alocando-os na mesma ´rvore do sistema de arquivos. Assim, o ao usu´rio n˜o precisa especificar o disco ou dispositivo onde est´ um arquivo, somente o a a adiret´rio onde ele est´ armazenado. O pr´prio sistema operacional se encarrega de mapear o a oo acesso ao disco ou dispositivo correspondente[9]. Figura 8: Arvore hier´rquica UFS a
  21. 21. 3.9 Sistemas de arquivos 20 NFS-(Network File System) ´ um protocolo de rede do sistema de arquivos ori- eginalmente desenvolvido pela Sun Microsystems. Seu principal uso ´ um cliente-servidor edo sistema de arquivos distribu´ ıdos. NFS est´ dispon´ para uma ampla gama de sis- a ıveltemas heterogˆneos, incluindo UNIX, Linux, Mac OSX e Windows da Microsoft, Novell eNetware 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 ıdoret´rio do sistema de arquivos local do cliente, de modo que a nomenclatura dos diret´rios o oprovenientes do NFS segue o mesmo padr˜o do sistema de arquivos local. Portanto o NFS aprovˆ transparˆncia no acesso, pois se o servidor onde os dados se encontram mudar de e elugar, 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. 22. 3.10 Cocoa 213.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 canativa do MAC OS, e para se fazer aplica¸oes em Cocoa ´ necess´rio ter o conhecimento c˜ e ada 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 o3.11 Carbon O Carbon ´ um conjunto de APIS que permite que os usu´rios fa¸am aplicativos em e a cC e C++. A transi¸ao para aplica¸˜es de 64 bits Macintosh come¸ando com Mac OS X c˜ co cv10.5, lan¸ado 26 de outubro de 2007, trouxe as limita¸oes para o Carbono. A Apple n˜o c c˜ afornece compatibilidade entre a interface de usu´rio gr´fica do Macintosh e a linguagem a ade 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 atirar vantagem de sua filosofia orientada a objetos, a necessidade de reescrever grandesquantidades 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. 23. 3.12 Java Applet 223.12 Java Applet O MAC OS X tem suporte para a linguagem de programa¸˜o Java assim todos os causu´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. 24. 3.13 OpenGl 233.13 OpenGl Open GL permite que jogos e aplicativos que exijam gr´ficos pesados, rodem com amelhor desempenho no sistema. Isso tudo afiliado com o Darwin, melhora a performancedo Open GL, transformando o Mac num dos melhores computadores para jogos 3D ecria¸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. 25. 244 Gest˜o de Entrada/Sa´ a ıda4.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 cabaseada 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. 26. 255 Gerenciamento de Mem´ria oUma das grandes novidades neste novo sistema operacional, ´ o esquema de mem´ria e oprotegida, que ´ respons´vel por manter a integridade dos dados, ou seja, evitar que e aeles sejam perdidos ou corrompidos. Com isso, o sistema alocar´ um unico espa¸o a ´ cna mem´ria para cada programa aberto, e o programa n˜o poder´ interferir no o a aespa¸o de outros, pois isso pode causar grandes problemas, como travamento do ccomputador e conseq¨entemente, perda dos dados. Se um programa apresentar um uproblema desse tipo, o Darwin simplesmente fecha esse programa, permitindo quevocˆ 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. 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. 28. 276 Processos e Threads6.1 threadUma thread ´ um contexto da execu¸ao dentro de um processo, ela ´ associada com e c˜ euma pilha de chamada e um estado do processador. Uma thread compartilha doespa¸o de endere¸o virtual e de outros recursos com outras threads do processo. As c cthreads s˜o programadas para funcionar preemptivamente ou, com multiprocessa- amento sim´trico, concorrentemente. eCada processo (aplica¸ao) no Mac OS X ´ composto de um ou mais threads, cada c˜ euma delas representa um unico caminho de execu¸˜o atrav´s do c´digo do aplicativo. ´ ca e oCada aplicativo ´ iniciado com um unico segmento, que executa a fun¸˜o principal e ´ cado aplicativo. Aplica¸oes pode gerar t´picos adicionais, cada um dos quais executa c˜ oo 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 csua pr´pria pilha de execu¸˜o e est´ prevista para tempo de execu¸˜o separada- o ca a camente pelo kernel. Um segmento pode se comunicar com outros segmentos e outrosprocessos, 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. 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. 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. 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: ıvelhttp://pt.wikipedia.org/wiki/kernel monoliticoAcessado em 30/11/2011.[6]Representa¸˜o de um Microkernel. Dispon´ em: ca ıvelhttp://wiki.osdev.org/Micro kernelAcessado em 30/11/2011.[7]Representa¸˜o de um kernel h´ ca ıbrido. Dispon´ em: ıvelhttp://pt.wikipedia.org/wiki/Nucleo hibridoAcessado em 30/11/2011.[8]Arvore hier´rquica HFS. Dispon´ em: a ıvelhttp://academic.stedwards.edu/competency/module1/lesson6/filemgtstructuremac.htmAcessado em 30/11/2011.[9]Arvore hier´rquica UFS. Dispon´ em: a ıvelhttp://www cefet-to.orgAcessado em 30/11/2011.[10]Network File System. Dispon´ em: ıvelhttp://www.linuxfocus.org/English/November2000/article164.shtmlAcessado em 30/11/2011.
  32. 32. 6.2 Bibliografia 31[11]Cocoa. Dispon´ em: ıvelhttp://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.htmlAcessado em 30/11/2011.[12]Carbon. Dispon´ em: ıvelhttp://en.wikipedia.org/wiki/carbonAcessado em 30/11/2011.[13]Java Applet. Dispon´ em: ıvelhttp://www.java-examples.com/hello-world-applet-exampleAcessado em 30/11/2011.[14]OpenGlt. Dispon´ em: ıvelhttp://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengli ntro/opengli ntro.htmlAcessadoem30/11/2011.[15]I/O Kit. Dispon´ em: ıvelhttp://developer.apple.com/library/mac/documentation/devicedrivers/Conceptual/IOKitFundamentals/HelperClassesChart/HelperClassesChart.htmlAcessado em 30/11/2011.[16]Gerenciamento de Mem´ria. Dispon´ em: o ıvelhttp://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.htmlAcessado em 30/11/2011.[17]Usando Threads POSIX. Dispon´ em: ıvelhttp://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.htmlAcessado em 30/11/2011.[17]Estrutura de um loop. Dispon´ em: ıvelhttp://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.htmlAcessado em 30/11/2011.

×