Trabalho de sistemas operativos

19
Comunicação entre Processos Florêncio de Grácio Eugênio Francisco Pedro Macoo Gabriel Samuel Grit Alberto Docente: dr. Orlávio Averú Universidade Pedagógica Nampula 2015

Transcript of Trabalho de sistemas operativos

Page 1: Trabalho de sistemas operativos

Comunicação entre

Processos Florêncio de Grácio EugênioFrancisco Pedro MacooGabriel SamuelGrit AlbertoDocente: dr. Orlávio Averú

Universidade PedagógicaNampula

2015

Page 2: Trabalho de sistemas operativos

INTRODUÇÃONeste presente trabalho com o tema em foco “Comunicação entre processos”, que se refere a uma situação comum

dentro dos sistemas computacionais que ocorre quando dois ou mais processos precisam se comunicar. Faremos uma

breve menção a cerca do tema em causa, apresentando os conceitos, exemplos e alguns esquemas para melhor

compreensão.

Salientar ainda que este trabalho tem como objetivo Geral “entender a comunicação entre processos e seus

mecanismos.

Objetivos específicos

Descrever os principais mecanismos de comunicação entre processos;

Explicar a finalidade do sistema operativos como gerenciador de recursos;

Descrever a função do núcleo de um sistema operativo.

O trabalho apresenta a seguinte estrutura:

Introdução, desenvolvimento e referência bibliográfica.

Para realização do trabalho recorremos a várias obras disponíveis na biblioteca referentes à cadeira em estudo, e a

algumas obras disponíveis na web, todas serão abaixo citadas na referência bibliográfica.

Page 3: Trabalho de sistemas operativos

Figura 1: exemplo de processos. Fonte os autores.

ProcessoProcesso é geralmente entendido como um programa em execução porém, na realidade, trata-se de uma estrutura mais complexa que contém, além do programa no seu formato executável, todas as informações necessárias (contexto) à execução e ao controle da execução do mesmo, como por exemplo: o contador de programa, pilhas, registradores e área de dados. (MACHADO, 1994)

Page 4: Trabalho de sistemas operativos

Figura 2: Estado de um Processo. Fonte (MACHADO, 1994)

Estado de um Processo

Page 5: Trabalho de sistemas operativos

Comunicação entre processos

De a cordo com (SILBERSCHATZ, 2010) comunicação entre processos ou a comunicação inter-processso

(IPC- inter process comunication), é uma situação comum dentro dos sistemas computacionais que ocorre

quando dois ou mais processos precisam se comunicar, isto é, quando os processos devem compartilhar ou

trocar dados entre si. A comunicação entre processos pode ocorrer em várias situações diferentes tais como:

Redireccionamento da saída (dos resultados) de um comando para outro;

Envio de arquivos para impressão;

Transmissão de dados através da rede;

Transferência de dados entre periféricos, etc.

Page 6: Trabalho de sistemas operativos

Mecanismos de comunicação

entre processos

Page 7: Trabalho de sistemas operativos

Sistema de transmissão de mensagens

Processos se comunicam entre si sem lançar mão de variáveis compartilhadasA comunicação utiliza 2 funções a saber: Send (mensagem); Receive (mensagem);

Figura 3: Sistema de transmissão de mensagem. Fonte (MACHADO, 1994).

Page 8: Trabalho de sistemas operativos

Cont.

A transmissão de mensagens fornece um mecanismo que permite que os

processos se comuniquem e sincronizem suas ações sem compartilhar o mesmo

espaço de endereço e é particularmente útil de um ambiente distribuído. As

mensagens enviadas por um processo podem ser do tamanho fixo ou variável.

Quando só mensagens de tamanho fixo podem ser enviadas, a implementação no

nível do sistema é simples. (Machado, 1994)..

Page 9: Trabalho de sistemas operativos

Sistema de memória compartilhada

Segundo (SILBERSCHATZ, 2010) a comunicação entre processos que usa memória compartilhada requer que os

processos em comunicação estabeleçam uma região de memória compartilhada. Normalmente, a região de memória

compartilhada reside no espaço de endereço do processo que cria o seguimento de memória compartilhada. Outros

processos que quiserem se comunicar usando esse seguimento de memória compartilhada devem anexa-lo a seu

espaço de endereço. Lembre-se que, geralmente, o sistema operacional tenta impedir que um processo acesse a

memoria de outro processo. A memória compartilhada requer que dois ou mais processos concordem em eliminar

essa restrição. Assim, eles podem trocar informações lendo e gravando dados nas áreas compartilhadas.

Page 10: Trabalho de sistemas operativos

Buffers e operações de sleep e wakeup

Figura 4: sistema buffer, fonte (TANENBAUM, 2003).

Um buffer é uma pequena área de memória ultra-rápida usada para melhorar a velocidade de acesso a um determinado dispositivo. É encontrado em hds, gravadores de CD, modems, e muitos outros.

Page 11: Trabalho de sistemas operativos

Um problema típico é o do produtor-consumidor, onde dois processos distintos compartilham um buffer, uma área de dados de tamanho fixo que se comporta como um reservatório temporário. Se o produtor e consumidor são processos sequenciais, a solução do problema é simples, mas sendo processos paralelos passa a existir uma situação de concorrência. O processo produtor coloca informações no buffer enquanto o processo consumidor as retira de la. Programas que desejam imprimir podem colocar suas entradas (nomes dos arquivos a serem impressos ou os arquivos de impressão propriamente ditos) em uma área de spooling, denominada de printer spool. Um outro processo (tipicamente um deamon de impressão) verifica continuamente a entrada de entradas no spool, direcionando as para uma ou mais impressoras existentes quando estas se tornam ociosas, com isto retirando as entradas da área de spool. É claro que a área reservada para o spool é finita e que as velocidades dos diversos produtores (programas que desejam imprimir) pode ser substancialmente diferente das velocidades dos consumidores (das diferentes impressoras instaladas no sistema).

Cont.

Page 12: Trabalho de sistemas operativos

Chamada de Procedimentos Remotos

De a cordo com (TANENBAUM, 2008) chamada de procedimentos remotos (ou RPC) é uma

forma mais estruturada de troca de mensagens entre processos servidores e clientes. Um processo

servidor dispõe de um conjunto de serviços que um processo cliente evoca como se evocasse um

procedimento local. O cliente indica o serviço desejado ao servidor, passando parâmetros para sua

execução, se for o caso.

Recebida a requisição, esta é processada pelo servidor que retorna os resultados ao cliente. O

envio e receção de parâmetros e retornos se dá por troca de mensagens. Uma biblioteca de RPC

possui duas primitivas básicas:

register_rpc(serviço): utilizada por servidores para anunciar que serviços estão aptos a processar;

call_rpc(serviço, parâmetros, resultados): utilizada por clientes para evocar serviços

Page 13: Trabalho de sistemas operativos

Sistema Operativo como gerenciador de recursos

Imagine o que poderia acontecer se três processos, rodando em um dado computador,

resolvessem imprimir suas saídas simultaneamente na mesma impressora. As três primeiras

linhas da listagem poderiam ser do processo 1, as seguintes do processo 2 e assim por diante,

até que os três terminassem a impressão. Fica claro que tal situação não é admissível em

nenhum sistema que se preze. O sistema operacional tem por função colocar ordem neste caos

potencial, armazenando em disco todas as saídas destinadas à impressora, durante a execução

dos processos.

No caso de o computador possuir múltiplos usuários, a necessidade de gerência e proteção da

memória, dos dispositivos de entrada/saída e dos demais recursos do sistema fica ainda mais

aparente.

Page 14: Trabalho de sistemas operativos

Figura 5:um núcleo de S.O. O seu funcionamento, fonte: (TANENBAUM, 2008) 

Em computação o núcleo ou cerne (em inglês kernel) é o componente central do sistema operativo da

maioria dos computadores; ele serve de ponte entre aplicativos e o processamento real de dados feito a

nível de hardware. As responsabilidades do núcleo incluem gerenciar os recursos do sistema (a

comunicação entre componentes de hardware e software). (Tanenbaum, 2008).

Função do núcleo do sistema operativo

Page 15: Trabalho de sistemas operativos

Gerenciamento do processadorA unidade de processamento central (CPU, o processador). Esta é a parte mais central de um sistema de computação,

responsável por rodar ou executar programas nele. O núcleo tem a responsabilidade de decidir, em qualquer momento,

qual dos programas em execução deve ser alocado para o processador ou processadores (cada um dos quais geralmente

pode executar um programa por vez).

Gerenciamento de memoria A memória é usada para armazenar ambas instruções do programa e dados. Tipicamente, ambos precisam estar

presentes na memória de modo a tornar a execução do programa possível. O núcleo é responsável pela decisão de que

memória cada processo pode utilizar, e determinar o que fazer quando menos do suficiente está disponível.

Finalidades básicas do núcleo

Page 16: Trabalho de sistemas operativos

Gerenciamento de dispositivos 

Qualquer dispositivo de entrada/saída presente no computador, tais como teclado, rato, entradas de disquete,

impressoras, telas, etc. O núcleo aloca pedidos de aplicativos para realizar entrada/saída para um dispositivo

apropriado (ou subseção de um dispositivo, no caso de arquivos em um disco ou janelas em uma tela) e fornece

métodos convenientes para o uso do dispositivo (tipicamente abstraído ao ponto onde o aplicativo não precisa mais

conhecer os detalhes da implementação do dispositivo).

Cont.

Page 17: Trabalho de sistemas operativos

 

Findo o trabalho, concluímos que O principal propósito do núcleo é gerenciar os recursos do computador e permitir

que outros programas rodem e usem destes recursos. Sendo assim a maioria dos sistemas em uso, os programas são

muito maiores que a quantidade de memória principal disponível e/ou é necessário rodar mais de um programa ao

mesmo tempo. Nestes casos, a utilização de esquemas de troca, páginas e segmentos pode ser uma alternativa.

Conclusão

Page 18: Trabalho de sistemas operativos

Referência bibliográficaMACHADO, francis B. E maia, luiz P., Introdução à arquitetura de sistemas operacionais,

ed. Ltc, 1994.

SILBERSCHATZ, galvin, gangne: fundamentos de sistemas operacionais 8ª edição, 2010 pag.66-68.

TANENBAUM, andrew S. Albert S. Woodhull, sistemas operativos-projecto de implementação, 3a

edição, artimed editora S.A. Porto alegre, 2008.

Disponivel em:

http://www-usr.Inf.Ufsm.Br/~rose/tanenbaum.Pdf, cessado aos 25 de março de 2015, as 11:30.

TANENBAUM, andrew S. Sistemas operacionais modernos 2. Ed. Prentice hall ( pearson ), 2003

disponivel em

http://fafiman.Br/leandro/arquivos/so/sistemas%20operacionais%20-%20tanenbaum.Pdf, cessado aos

25 de março de 2015, as 11:40

Page 19: Trabalho de sistemas operativos