💻
Web 101
  • Introdução
  • Breve história dos computadores modernos
  • Comunicação entre processos
    • File descriptors
    • UNIX Pipes
    • UNIX Sockets
      • Datagram sockets
      • Stream sockets
  • Internet
    • TCP Sockets
    • UDP Sockets
    • Pseudo devices
  • Breve história da Web
  • Construindo um simples echo Web server
    • Entendendo o HTTP
    • Primeira versão do server
    • Adicionando HTML
  • Construindo um Web server com Login & Logout
Powered by GitBook
On this page
  • IPC
  • Como os dados persistentes são armazenados

Comunicação entre processos

PreviousBreve história dos computadores modernosNextFile descriptors

Last updated 2 years ago

Uma vez que entendemos como os computadores evoluíram para um modelo onde múltiplos programas podem ser executados de forma concorrente, e que a principal unidade de concorrência em um sistema operacional é o processo, como podemos fazer dois processos independentes comunicarem entre si?

Afinal, um processo isolado que não conversa com outros processos não serve para muita coisa...

Pelo motivo de serem isolados e terem seu próprio espaço em memória, para comunicação processos precisam compartilhar um canal de comunicação, ou communication channel.

É onde entramos então num conceito muito importante chamado Inter-process communication, ou IPC.

IPC

Existem diversas formas de IPC, mas vamos destacar algumas delas, que serão abordadas neste guia.

  • File descriptors

  • UNIX Pipes

  • UNIX Sockets

Antes de entrarmos em detalhe sobre cada uma das formas de comunicação acima, vamos entender como um computador armazena dados persistentes de longa duração.

Como os dados persistentes são armazenados

Sabemos que o computador possui uma memória de trabalho onde diferentes programas podem utilizá-la durante suas execuções. Mas esta memória é volátil e não serve para armazenar dados de longa duração.

Então, utilizamos outro dispositivo físico para isto, que geralmente é chamado de HDD (Hard disk drive), ou simplesmente HD. Ou então, os mais modernos SSD. Independente do dispositivo I/O, o sistema operacional utiliza um sistema de persistência e busca baseado em intervalos, ou ranges.

Como conseguimos aceder a uma informação no dispositivo? Em termos físicos, o sistema operacional precisa saber o intervalo entre o começo da informação e seu término. A este intervalo, damos o nome de file, ou arquivo.

Se agruparmos todos os arquivos/files do sistema operacional em um sistema composto por dicionários, temos o que é chamado de filesystem.

Sabendo que cada processo é isolado na memória de trabalho, não nos resta outra chance para fazer IPC a não ser utilizando o filesystem.

Vamos então, explorar diferentes formas de IPC, começando por file descriptors.