linuxÄÚºËÉè¼ÆÓëʵÏÖ£¨9£©¶¨Ê±Æ÷ºÍʱ¼ä¹ÜÀí
linuxÄÚºËÉè¼ÆÓëʵÏÖ£¨9£©¶¨Ê±Æ÷ºÍʱ¼ä¹ÜÀí
ʱ¼ä¹ÜÀíÔÚÄÚºËÖÐÕ¼Óзdz£ÖØÒªµÄµØÎ»¡£Ïà¶ÔÓÚʼþÇý¶¯£¬ÄÚºËÖÐÓдóÁ¿µÄº¯Êý¶¼ÊÇ»ùÓÚʱ¼äÇý¶¯µÄ¡£Äں˱ØÐë¹ÜÀíϵͳµÄÔËÐÐʱ¼äÒÔ¼°µ±Ç°µÄÈÕÆÚºÍʱ¼ä¡£
ÖÜÆÚ²úÉúµÄʼþ¶¼ÊÇÓÉϵͳ¶¨Ê±Æ÷Çý¶¯µÄ¡£ÏµÍ³¶¨Ê±Æ÷ÊÇÒ»Öֿɱà³ÌÓ²¼þоƬ£¬ËüÒѹ̶¨ÆµÂʲúÉúÖжϡ£¸ÃÖжϾÍÊÇËùνµÄ¶¨Ê±Æ÷Öжϣ¬ËüËù¶ÔÓ¦µÄÖжϴ¦Àí³ÌÐò¸ºÔð¸üÐÂϵͳʱ¼ä£¬»¹¸ºÔðÖ´ÐÐÐèÒªÖÜÆÚÐÔÔËÐеÄÈÎÎñ¡£ÏµÍ³¶¨Ê±Æ÷ºÍʱÖÓÖжϴ¦Àí³ÌÐòÊÇLinuxϵͳÄں˹ÜÀí»úÖÆÖеÄÖÐÊà¡£
9.1 ÄÚºËÖеÄʱ¼ä¸ÅÄî
Ó²¼þΪÄÚºËÌṩÁËÒ»¸öϵͳ¶¨Ê±Æ÷ÓÃÒÔ¼ÆËãÁ÷ÊŵÄʱ¼ä£¬ÏµÍ³¶¨Ê±Æ÷ÒÔijÖÖÆµÂÊ×ÔÐд¥·¢Ê±ÖÓÖжϣ¬¸ÃƵÂÊ¿ÉÒÔͨ¹ý±à³ÌÔ¤¶¨£¬³Æ½ÚÅÄÂÊ¡£µ±Ê±ÖÓÖжϷ¢Éúʱ£¬Äں˾Íͨ¹ýÒ»ÖÖÌØÊâÖжϴ¦Àí³ÌÐò¶ÔÆä½øÐд¦Àí¡£ÄÚºËÖªµÀÁ¬ÐøÁ½´ÎʱÖÓÖжϵļä¸ôʱ¼ä¡£Õâ¸ö¼ä¸ôʱ¼ä³ÆÎª½ÚÅÄ£¨tick£©£¬Äں˾ÍÊÇ¿¿ÕâÖÖÒÑÖªµÄʱÖÓÖжÏÀ´¼ÆËãǽÉÏʱ¼äºÍϵͳÔËÐÐʱ¼ä¡£Ç½ÉÏʱ¼ä¼´Êµ¼Êʱ¼ä£¬ÄÚºËÌṩÁËÒ»×éϵͳµ÷ÓÃÒÔ»ñȡʵ¼ÊÈÕÆÚºÍʵ¼Êʱ¼ä¡£ÏµÍ³ÔËÐÐʱ¼ä——×ÔϵͳÆô¶¯¿ªÊ¼Ëù¾¹ýµÄʱ¼ä——¶ÔÓû§ºÍÄں˶¼ºÜÓÐÓã¬ÒòΪÐí¶à³ÌÐò¶¼±ØÐëÇå³þÁ÷ÊŹýµÄʱ¼ä¡£
9.2 ½ÚÅÄÂÊ
ϵͳ¶¨Ê±Æ÷ƵÂÊÊÇͨ¹ý¾²Ì¬Ô¤´¦Àí¶¨ÒåµÄ£¬Ò²¾ÍÊÇHZ£¬ÔÚϵͳÆô¶¯Ê±°´ÕÕHz¶ÔÓ²¼þ½øÐÐÉèÖá£Ìåϵ½á¹¹²»Í¬£¬HZµÄÖµÒ²²»Í¬¡£ÄÚºËÔÚÎļþ<asm/param.h>Öж¨ÒåÁËHZµÄʵ¼ÊÖµ£¬½ÚÅÄÂʾÍÊÇHZ£¬ÖÜÆÚΪ1/HZ¡£i386µÄ½ÚÅÄÂÊΪ1000£¬ÆäËüÌåϵ½á¹¹£¨°üÀ¨ARM£©µÄ½ÚÅÄÂʶàÊý¶¼µÈÓÚ100¡£
9.3 jiffies
È«¾Ö±äÁ¿jiffiesÓÃÀ´¼Ç¼×ÔϵͳÆô¶¯ÒÔÀ´²úÉúµÄ½ÚÅĵÄ×ÜÊý¡£Æô¶¯Ê±£¬Äں˽«¸Ã±äÁ¿³õʼ»¯Îª0£¬´Ëºó£¬Ã¿´ÎʱÖÓÖжϴ¦Àí³ÌÐò¶¼»áÔö¼Ó¸Ã±äÁ¿µÄÖµ¡£ÒòΪһÃëÄÚʱÖÓÖжϵĴÎÊýµÈÓÚHz£¬ËùÒÔjiffesÒ»ÃëÄÚÔö¼ÓµÄÖµÒ²¾ÍΪHz£¬ÏµÍ³ÔËÐÐʱ¼äÒÔÃëΪµ¥Î»¼ÆË㣬¾ÍµÈÓÚjiffes/Hz¡£Jiffes=seconds*HZ¡£
Jiffs¶¨ÒåÔÚÎļþlinux/jiffs.hÖÐ
Extern unsigned long volatile jiffies£»
¹Ø¼ü×Övolatileָʾ±àÒëÆ÷ÔÚÿ´Î·ÃÎʱäÁ¿Ê±¶¼ÖØÐ´ÓÖ÷ÄÚ´æÖлñµÃ£¬¶ø²»ÊÇͨ¹ý¼Ä´æÆ÷ÖеıäÁ¿±ðÃû·ÃÎÊ£¬´Ó¶øÈ·±£Ç°ÃæµÄÑ»·Äܰ´Ô¤ÆÚµÄ·½Ê½Ö´ÐС£
9.3.1 jiffiesµÄÄÚ²¿±íʾ
jiffies±äÁ¿×ÜÊÇÎÞ·ûºÅ³¤ÕûÊý£¨unsigned long£©£¬Òò´Ë£¬ÔÚ32λÌåϵ½á¹¹ÉÏÊÇ32
Ïà¹ØÎĵµ£º
Fedora 8.0(linux)ÓÃRPM°²×°gcc
ǰһÕó×°ÁËÒ»¸öFedora 8.0£¬¾ÓÈ»½«gccÑ¡Ïîûѡ£¬ÏÖÔÚÏëÔÚLinux»·¾³Ïµ÷ÊÔc³ÌÐò£¬Ö»ÓÐÔÙ°²×°gcc±àÒëÆ÷¡£ÔÚFedora 8.0°²×°µÄÔ´ÎļþÖУ¬ÕÒµ½PackageÎļþ¼Ð£¬ÀïÃæ°²×°gcc±àÒëÆ÷µÄÎļþ£¬Fedora 8.0µÄgcc ÊÇversion 4.12 £¨20070925£©¡£
°²×°Ë³Ðò:
£¨1£©rpm -ivh kernheaders-2.6 ......
vmstat 5 10 ºÍ vmstat -d
r-->;ÔÚÔËÐжÓÁÐÖеȴýµÄ½ø³ÌÊý
b-->;ÔڵȴýioµÄ½ø³ÌÊý
w-->;¿ÉÒÔ½øÈëÔËÐжÓÁе«±»Ìæ»»µÄ½ø³Ì
memoy
swap-->;ÏÖʱ¿ÉÓõĽ»»»Äڴ棨k±íʾ£©
free-->;¿ÕÏеÄÄڴ棨k±íʾ£©
pages
re££¡·»ØÊÕµÄÒ³Ãæ
mf££¡··ÇÑÏÖØ´íÎóµÄÒ³Ãæ
pi££¡·½øÈëÒ³ÃæÊý£¨k±íʾ£©
po£ ......
Óû§¿ÉÒÔÓÃÈκα༳ÌÐòÀ´±àдShell³ÌÐò¡£ÒòΪShell³ÌÐòÊǽâÊÍÖ´Ðеģ¬ËùÒÔ²»ÐèÒª±àÒë³ÉÄ¿µÄ³ÌÐò¡£°´ÕÕShell±à³ÌµÄ¹ßÀý£¬ÒÔ bashΪÀý£¬³ÌÐòµÄµÚÒ»ÐÐÒ»°ãΪ“#£¡/bin/bash”£¬ÆäÖÐ # ±íʾ¸ÃÐÐÊÇ×¢ÊÍ£¬Ì¾ºÅ £¡ ¸æËßShellÔËÐÐ̾ºÅÖ®ºóµÄÃüÁî²¢ÓÃÎĵµµÄÆäÓಿ·Ö×÷ΪÊäÈ룬Ҳ¾ÍÊÇÔËÐÐ/bin/bash²¢ÈÃ/bin/bashÈ¥Ö´ÐÐShel ......
2010-3-8
Ò»¡¢gccµ÷ÊÔ£º
Èç¹û±àÒëʱ£¬Ê¹ÓÃÏÂÃæµÄÖ¸Áî(Ôö¼ÓÁ˲ÎÊý-g)£¬¾Í»áÉú³É´øÔ´´úÂëµ÷ÊÔ·ûºÅµÄ¿ÉÖ´ÐÐÎļþ¡£±àÒëÐγɵĿÉÖ´ÐÐÎļþÓÐ7KB¡£Ö®ËùÒÔÔö¼ÓÁË2KB£¬¾ÍÊÇÒòΪÔö¼ÓµÄµ÷ÊÔ·ûºÅ¡£
gcc -o calc calcutlator.c -g
½øÒ»²½µØ£¬¾Í¿ÉÒÔÖ´ÐÐÏÂÃæµÄÖ¸ÁîÆô¶¯µ÷ÊÔ¹¤¾ß½øÈëµ÷ÊÔ»·¾³¶Ô³ÌÐò½øÐе÷ÊÔÁË¡£
gdb calc
ÔÚµ÷ÊÔ»·¾³Ï ......
1
¡¢Ï̵߳Ĵ´½¨¡¢ÖÕÖ¹¼°¿ØÖÆ£º
Èκνø³ÌÔÚÆô¶¯Ê±¾ÍÒÑÓÐÁËÒ»¸öÖ÷Ị̈߳¬Èç¹ûÐèÒªÔÙÉú³ÉÏß³ÌÔòʹÓÃ
pthread_create
º¯Êý£¬Ôڸú¯ÊýÖпÉÒÔÖ¸¶¨Ï̵߳ÄÊôÐÔ¡¢Ïß³ÌÀý³Ì¡¢´«¸øÏß³ÌÀý³ÌµÄ²ÎÊý¡£Ïß³ÌÀý³ÌÊÇÒ»¸öÓû§×Ô¶¨ÒåµÄº¯Êý£¬¼°Ïß³ÌÖ´ÐеĴúÂë¡£µ±Ïß³ÌÀý³Ì·µ»ØÊ±£¬Ïß³ÌÔò½áÊøÔËÐУ¬ ......