Você está na página 1de 4

IPC Mac OS X

Programas complexos, mesmo aqueles que so moderadamente assim, geralmente


so divididas em lgica e constituintes funcionalmente separados, ao invs de ser programas
monolticos que fazer "tudo". Este permite o desenvolvimento mais fcil, manuteno e
flexibilidade, bem como uma melhor compreenso da software. Embora essa separao possa
ser feito de vrias maneiras, vrios deles so padronizado, um resultado geral que em um
sistema operacional tpico, pode haver vrias entidades executar operaes relacionadas.
Essas entidades, muitas vezes precisam compartilhar informaes, sincronizar, e de outra
forma comunicar uns com os outros
Comunicao entre processos (IPC) pode ser definida como um conjunto de
tcnicas utilizadas para a troca de dados entre os vrios segmentos em um ou mais processos.
Os processos podem estar em execuo em um ou mais computadores conectados por uma
rede. Mtodos IPC pode dividido em mtodos para a passagem de mensagens, sincronizao
de memria compartilhada, e chamadas de procedimento remoto (RPC).
Existe varios motivo para que um IPC permita que dois ou mais processos se
comuniquem uns com os outros:

Informaes partilha.

Multiprocessamento.

Separao de previlegios.

Modularidade.

Convenience.
Arquivo Compartilhado
Soluo mais simples em que vrios processos iro compartilhar um arquivo
comum. Poderia ser um arquivo .txt simples ou um arquivo qualquer. Os problemas bvios
deste mtodo so: os clientes precisam pesquisar continuamente para ver se o servidor tem
escrito algo no arquivo. Problemas de Gravao se vrios processos esto tentando escrever
para o arquivo compartilhado ao mesmo tempo.

Memria Compartilhada
Esta uma outra aplicao para o IPC, onde uma seo de memria
compartilhada entre diferentes processes. Em outras palavras A escreve a esta memria e B

pode ler a partir desta memria, ou vice-versa. Este processo rpido e os dados no tem de
ser copiada. A desvantagem que realmente difcil de coordenar as alteraes para a rea de
memria compartilhada.
Mach Ports
Os servios fundamentais e primitivas do kernel do OS X so baseados em Mach
3.0. Mach 3.0 foi originalmente concebido como um, extensvel microkernel comunicaes
simples. Ele capaz de correr como um kernel autnomo, com outros servios do sistema
operacional tradicionais, como I / O, sistemas de arquivos e pilhas de redes que funcionam
como servidores de modo de usurio. No entanto, no OS X, Mach est relacionada com outros
componentes do kernel em um nico espao de endereo kernel. Isto principalmente para o
desempenho. muito mais rpido para fazer uma ligao direta entre os componentes ligados
do que est a enviar mensagens ou fazer chamadas de procedimento remoto (RPC) entre as
tarefas separadas. Esta estrutura modular resulta em um sistema mais robusto e extensvel do
que um kernel monoltico permitiria, sem a pena de um microkernel puro de desempenho. A
nica desvantagem a complexidade de implementao e menos documentao.
Sockets
Enquanto a maioria das conexes TCP / IP so estabelecidas atravs de uma rede
entre duas mquinas diferentes, tambm possvel ligar dois processos em execuo na
mesma mquina sem nunca tocar uma rede usando TCP / IP. Usando sockets TCP / IP para
comunicao entre processos (IPC) no muito diferente de us-los para comunicaes de
rede. Na verdade, eles podem ser usados exatamente da mesma maneira. Mas se a inteno
apenas para IPC local, criar um socket na famlia AF_UNIX para obter um soquete que s
para a comunicao local mais flexvel do que o endereamento TCP / IP permite.
Apple Events
Estes so o nico mecanismo IPC que universalmente suportado por aplicaes
GUI no Mac OS X para o controle remoto. Operao como abrir uma contando uma aplicao
para abrir um arquivo ou para sair etc. pode ser feito usando estes. AppleScript uma
linguagem de script construda em cima de eventos Apple que podem ser usados usando ponte
de script em uma aplicao Mac.

As notificaes distribudas
Um centro de notificao gerencia o envio e recebimento de notificaes. Ele
informa todos os observadores de notificaes os critrios especficos da reunio. As
informaes notificao encapsulado em objetos NSNotification. Cliente objetos se
registram com o centro de notificao, como observadores de notificaes especficas
postadas por outros objetos. Quando ocorre um evento, um objeto envia uma notificao
adequada para o centro da notificao. Portando uma notificao distribuda uma operao
cara. A notificao enviada para um servidor de todo o sistema que, em seguida, distribui
para todos os processos que tm objetos registrados para notificaes distribudas. A latncia
entre a publicar a notificao e a chegada da notificao em outro processo ilimitada. Na
verdade, se muitas notificaes esto sendo postadas e fila do servidor enche, as notificaes
podem ser descartadas.
Pasteboards
Cada vez que um copy-paste acontece entre as aplicaes, isso IPC acontecendo
usando pasteboards. possvel criar pasteboards personalizados que somente os aplicativos
desejados podem acessar para a passagem de ida e volta de dados entre aplicaes.
Notificaes distribudas como, o trabalho de pasteboards, conversando com um servidor
central, utilizando pasteboards e mach ports.
Objetos Distribudos
Este mecanismo permite que um Cocoa Application chamar um objeto em um
aplicativo de Cocoa diferente (ou um segmento diferente na mesma aplicao). As aplicaes
podem ainda estar em execuo em diferentes computadores em uma rede. Objetos
distribudos opera por ter o servidor pblico, um objeto para que outros processos cliente
podem se conectar. Uma vez que uma conexo feita, o processo cliente invoca um dos
mtodos do objeto pblico como se o objeto existisse no processo do cliente. Objectos
normalmente distribudos corre atravs de mach ports, mas tambm pode ser usado com
sockets, permitindo-lhe trabalhar entre computadores tambm.

Obs.: Essa uma traduo e adaptao do contedo de um blog, Se no for possvel utilizar
me avisa que tento fazer algo com o contedo do livro.
Referencias:

https://macdevelopers.wordpress.com/2014/09/29/inter-process-

communication-on-mac-know-how-part1/
https://macdevelopers.wordpress.com/2014/10/06/inter-process-

communication-on-mac-know-how-part2-shared-memory/
https://macdevelopers.wordpress.com/2014/11/04/inter-process-

communication-on-mac-know-how-part3-apple-events/
https://macdevelopers.wordpress.com/2014/11/11/inter-process-

communication-on-mac-know-how-part4distributed-notifications/
http://books.google.com.br/books?
hl=ptBR&lr&id=K8vUkpOXhN4C&oi=fnd&pg=PR7&dq=HFS+mac+Os&ots
=OLjhXSVw0D&sig=lAM6toTxrOZNjlOXFW3NIV15MGQ#v=onepage&q=

HFS%20mac%20Os&f=false
http://en.wikipedia.org/wiki/Cocoa_%28API%29