Professional Documents
Culture Documents
Memria compartilhada
Prof. MSc. Pedro Batista de Carvalho Filho
Exerccio
Introduo:
Este exerccio visa explorar na prtica contedo abordado em sala de aula referente a tcnica de
memria compartilhada como forma de intercomunicao entre processos.
Pr-requisitos:
firefox: Navegador web, utilizado para este experimento pois faz uso da tcnica de memria
compartilhada;
Identificar quanto de memria est sendo utilizado para todas essas reas;
Identificar o limite mximo que cada rea dessa pode consumir de memria.
chave (key): usado como argumento para as funes msgget( ), semget( ), ou shmget( )
para criar uma nova entrada de segmento;
Quando tambm utilizado a opo -p, possvel identificar qual o processo que solicitou ao sistema
operacional a criao de cada rea de memria compartilhada existente, como tambm, identificar o
ultimo processo que acessou, vinculou ou alterou alguma informao dentro da rea de memria
compartilhada.
cpid (Created PID): PID do processo que solicitou a criao da rea de memria
compartilhada;
lpid (Last PID): ltimo processo que acessou, vinculou ou modificou alguma informao
dentro da rea de memria compartilhada.
Tamanho mximo de segmentos (max seg size): Este nmero limita o tamanho total de
cada segmento de memria compartilhada, ou seja, o sistema operacional no permitira a
criao de um segmento de memria maior que 358400 Kbyte = 257 Mbyte;
Total mximo de memria compartilhada (max total shared memory): Limita quanto da
memria principal pode ser utilizado pela tcnica de memria compartilhada, o nmero
expressado acima representa um valor muito mair do que atualmente os computadores
podem suportar de memria principal.
21474836480 KByte = 20971520 MByte = 20480 Gbyte = 20 TByte
shmmax: Valor expresso em bytes, representa o limite apresentado em max seg size
(kbyte);
shmmni: Total de segmentos suportados pelo kernel, representado por max number of
segments;
Apesar do programa sysctl alterar em tempo real parmetros do kernel forando alguma funo
interna mudar seu comportamento, tais mudanas esto gravadas apenas na memria, ou seja,
quando reiniciar o computador, os valores padres deve voltar.
Para que tais valores sejam gravados e aplicados ao iniciar o sistema operacional, necessrio
alterar o arquivo /etc/sysctl.conf, que corresponde ao arquivo de configurao do programa sysctl.
As configuraes inseridas neste arquivo sero aplicadas pelo programa sysctl quando iniciar o
sistema operacional.
Exemplo: Se desejarmos definir que o sistema operacional deve suportar no mximo 1000
segmentos de memria compartilhada, faa:
[root@vm ~]# vi /etc/sysctl.conf
kernel.shmmni = 1000
Observe se no arquivo /etc/sysctl j existe alguma configurao que voc deseja aplicar, por
exemplo o shmmin, pois se houver mais de uma configurao, ser aplicado apenas o ltimo
expressado no arquivo /etc/sysctl.conf.
Referncias:
http://www.linuxcommand.org/man_pages/ipcs8.html
http://www.thegeekstuff.com/2010/08/ipcs-command-examples/
http://gerardnico.com/wiki/linux/shared_memory
http://www-archive.mozilla.org/projects/nspr/reference/html/prshm.html
Anexo 1
Pgina de memria...