SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Evandro Madeira de Albuquerque




Sistema Operacional Mac OSX




           Bras´ - DF, Brasil
               ılia
          30 de Novembro de 2011
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
Trabalho Apresentado sob o t´
                            ıtulo “Sistema Operacional Mac OSX”, defendido por:


• Evandro Madeira de Albuquerque



Bras´
    ılia, DF, 30 de Novembro de 2011
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
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
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
Sum´rio
                                      a


1 Introdu¸˜o
         ca                                                                                p. 8

  1.1   Objetivo deste trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . .      p. 9


2 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. 11


3 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
3.10 Cocoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     p. 21

  3.11 Carbon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    p. 21

  3.12 Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     p. 22

  3.13 OpenGl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      p. 23


4 Gest˜o de Entrada/Sa´
      a               ıda                                                                p. 24

  4.1   I/O Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    p. 24


5 Gerenciamento de Mem´ria
                      o                                                                  p. 25


6 Processos e Threads                                                                    p. 27

  6.1   thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   p. 27

  Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   p. 29

  6.2   Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    p. 30
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
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.
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).
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].
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
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
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
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˜
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
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
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
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
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
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].
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
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
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
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
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.
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
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
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.
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.
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação da aula de sistemas operacionais
Apresentação da aula de sistemas operacionaisApresentação da aula de sistemas operacionais
Apresentação da aula de sistemas operacionaisFelipe Martinin
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começouguestaa94fe
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Pepe Rocker
 
Introdução ao Linux Ubuntu
Introdução ao Linux UbuntuIntrodução ao Linux Ubuntu
Introdução ao Linux UbuntuFilipe Kulinski
 
Evolução dos s.o.
Evolução dos s.o.Evolução dos s.o.
Evolução dos s.o.Dulce Dias
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Joicy Souza
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Linux - Sistema Operacional
Linux - Sistema Operacional Linux - Sistema Operacional
Linux - Sistema Operacional Carine Furlanetto
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 

Was ist angesagt? (20)

Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Apresentação da aula de sistemas operacionais
Apresentação da aula de sistemas operacionaisApresentação da aula de sistemas operacionais
Apresentação da aula de sistemas operacionais
 
Linux Como Tudo Começou
Linux Como Tudo ComeçouLinux Como Tudo Começou
Linux Como Tudo Começou
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)
 
Introdução ao Linux Ubuntu
Introdução ao Linux UbuntuIntrodução ao Linux Ubuntu
Introdução ao Linux Ubuntu
 
Trabalho linux
Trabalho linuxTrabalho linux
Trabalho linux
 
Evolução dos s.o.
Evolução dos s.o.Evolução dos s.o.
Evolução dos s.o.
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Mac os
Mac osMac os
Mac os
 
Linux
LinuxLinux
Linux
 
Trabalho mac
Trabalho macTrabalho mac
Trabalho mac
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Linux para leigos
Linux para leigos Linux para leigos
Linux para leigos
 
Linux - Sistema Operacional
Linux - Sistema Operacional Linux - Sistema Operacional
Linux - Sistema Operacional
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 

Ähnlich wie Apple mac-osx (20)

Kde MEC
Kde MECKde MEC
Kde MEC
 
4767121 Apostila Sobre Kde Linux Educacional Mec
4767121 Apostila Sobre Kde Linux Educacional Mec4767121 Apostila Sobre Kde Linux Educacional Mec
4767121 Apostila Sobre Kde Linux Educacional Mec
 
Começando com o Linux.pdf
Começando com o Linux.pdfComeçando com o Linux.pdf
Começando com o Linux.pdf
 
Comandos
ComandosComandos
Comandos
 
Apostila
ApostilaApostila
Apostila
 
Apostila latex
Apostila latexApostila latex
Apostila latex
 
Apostila
ApostilaApostila
Apostila
 
Apostila esssa
Apostila   esssaApostila   esssa
Apostila esssa
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
 
Linux
LinuxLinux
Linux
 
Apostila kde edu3
Apostila kde edu3Apostila kde edu3
Apostila kde edu3
 
Apostila linux 3.0
Apostila linux 3.0Apostila linux 3.0
Apostila linux 3.0
 
Manual magalhaes
Manual magalhaesManual magalhaes
Manual magalhaes
 
Latex2009
Latex2009Latex2009
Latex2009
 
Latex2009
Latex2009Latex2009
Latex2009
 
Linux basico
Linux basicoLinux basico
Linux basico
 
Linux
LinuxLinux
Linux
 
Enviando linux
Enviando linuxEnviando linux
Enviando linux
 
Linux cursos
Linux cursosLinux cursos
Linux cursos
 
Linux basico
Linux basicoLinux basico
Linux basico
 

Kürzlich hochgeladen

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 

Kürzlich hochgeladen (20)

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
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
  • 7. Sum´rio a 1 Introdu¸˜o ca p. 8 1.1 Objetivo deste trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9 2 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. 11 3 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. 3.10 Cocoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21 3.11 Carbon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21 3.12 Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22 3.13 OpenGl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23 4 Gest˜o de Entrada/Sa´ a ıda p. 24 4.1 I/O Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24 5 Gerenciamento de Mem´ria o p. 25 6 Processos e Threads p. 27 6.1 thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27 Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29 6.2 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
  • 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.