�����󡢤ʤ���������ѡ�������ͤ������Τˡ�����Ѥ��Τ�ʤ���ŷ�򸫤����ӤΤ褦�ʵ�ʬ��
naoya�ΤϤƤʥ������꡼ - tmpfs �����������̤�ưŪ�ʤΤ�tmpfs �� OS �����꤬Â��ʤ��ʤä��Ȥ��˥���åפ��ơ�OS ¦�˥������ݤ����뵡ǽ������
�錄����Linux�ϥ桼�����Ȥ��Ƥ����褦�Τ�ʤ�������ɡ�����ä�tmpfs�Ρֵ�ǽ�פǤʤ��ơ�malloc()�ε�ǽ���Ȼפ��衣
��Υۡ��॰�饦��ɤ�FreeBSD�ˤ�md�äƤΤ����äơ�tmpfs�Τ褦�ʤ��Ȥ������Τ����ɡ�΢�Ǥ�malloc()�ǥ��꡼����ݤ��Ƥ���(FreeBSD�ξ�硢malloc()��Ȥ�ʤ�option�⤢�������)�������顢���꡼�١����Ǥ� file system �ο����񤤤Ȥ����Τϡ��¤�malloc()�ο����񤤤����Τޤ޸���롣
��ǡ��Ƕ��OS�Ǥϡ�malloc()��������äơ������ˤ�������Υ��꡼���Ȥ���Ȥ������ȤϤʤ��������ޤǤ⤽�λ����Ǥϡֻ��ѵ��ġפ�����NULL�Ǥʤ��ݥ��󥿡��ȶ��˽Ф���롣�ºݤ��ɤ߽ñ¤¤Ê¤É¤Î¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ã¤Æ¡ï¿½ï¿½Ï¤ï¿½ï¿½ï¿½ï¿½OS��ɬ�פʥ��꡼����ݤ��롣���κݡ�ɬ�פȤ����swap�⤹�롣
�ʲ���C�ץ������򥳥�ѥ��뤷�ơ�tty����Ĥ����ơ������Ǥ����ư�����ʤ���⤦������top��¹Ԥ��Ƥߤ�ȡ������ͻҤ��褯�狼�롣process��¿������top -U naoya�Ȥ�����Ф�����
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #define M 1024*1024 #define RAMSIZE 256 int main(int argc, char **argv){ int i, m, ramsize; char *buf, *p; ramsize = argc ? atoi(argv[1]) : RAMSIZE; if (ramsize == 0) { ramsize = RAMSIZE; }; /* in case atoi() fails */ if((buf = (char *)malloc(ramsize*M)) == NULL) { perror(NULL); exit(errno); } fprintf(stderr, "%3d Mbytes malloc()'d\n", ramsize); p = buf; for (m = 0; m < ramsize; m++){ for (i = 0; i < M; i++){ *p++ = '\xff'; } fprintf(stderr, "%3d Mbytes used\n", m+1); sleep(1); } for (i = 10; i > 0; i--){ fprintf(stderr, " \r%d\r", i); sleep(1); } free(buf); fprintf(stderr, "Memory free()'d; Press ctrl-c to kill me!\n"); while(1){}; }
top�θ��Ф���OS�ˤ�äƤޤ��ޤ������ɡ�FreeBSD�ǤϤ�������ˤʤäƤ��롣
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
Mac OS X �ǤϤ�����
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
���������ܤ��٤��ϡ�SIZE��RES����SIZE�����ϡ�OS�������ޤǻȤäƤ�����פȵ��Ĥ�Ф���ʬ��RES�����������˻Ȥ��Ƥ���ʬ����OS X�Ǥ�VSIZE��RSIZE��������������롣
�åµï¿½Î¥×¥ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Â¹Ô¤ï¿½ï¿½ï¿½È¡ï¿½SIZE������������ʬ�Ϥ��Τޤޤˡ�RES������������ʬ���������������ƹԤ��Ϥ����������free()�����ޤ�³����
���פʤΤϡ��֥��꡼��ưŪ�˳�����Ƥ�׺ݤˡ����䤹���˴ؤ��Ƥ�OS�������������������ݤ򸫤Ƥ���뤱�ɡ����餹���˴ؤ��Ƥϻ��¾�free()������ˡ���ʤ��Ȥ������ȡ�tmpfs�Ȥ�md�ξ�硢���줬����Τ��̾�umount�λ��Ȥ������Ȥˤʤ롣�ե�������������餽��˹�碌�ƻ��ѥ��꡼�����äƤ����д򤷤����ɡ����Ȥߤ���ͤ��Ƥ���Ϥ��ʤ��񤷤��Ȥ����ΤϤ狼���͡�
��������󤽤����������ۤΡ�in-memory fs���߷פ���Τϲ�ǽ�����ɡ�tmpfs�Ϥ����ޤǤ�����?�����Ԥ�Linux�˴ؤ��Ƥ��Τ�ʤ����ɡ���ݡ��Ȥ򸫤�¤ꤽ������ʤ���͡�
�Ȥ������Ȥǡ��ʤ������ɥ�����Ȥ˽񤤤Ƥʤ��Τ������ȡ������и���������å�ȯ���������ϰ��Τɤ��������ȤʤΤ��������Ǥ��ʤ����Ȥ����Τ������������ޤ޼¸�������äƤ��ޤ��ޤ��������ä��Τ��ȶ������̤ˤʤäƤ���ʬ�ϻȤ��ʤ��ȤʤäƤ��줿�ۤ������ä��ꤷ��������ɡ�
�Ȥ������ȤǤ��ä��ꤷ������?����ʾ�˴ؤ��Ƥϥ������Ǥˤʤ�Τ��ʡ���äѡ�Linux�����ϻ����Ǥʤ�����w
����ˤ��Ƥ⡢itmedia�ε����Ϥ���äȤҤɤ��Ȼפ����硣
Dan the Memory Gazzler
���Υ֥����˥����Ȥ���ˤ�����������ɬ�פǤ���
��������������
���ε����ˤϵ��ĥ桼�����������Ȥ��Ǥ��ޤ���