LinuxÉ豸Çý¶¯ÖеIJ¢·¢¿ØÖÆ
²¢·¢Ó뾺̬
½â¾ö¾ºÌ¬ÎÊÌâµÄ;¾¶ÊDZ£Ö¤¶Ô¹²Ïí×ÊÔ´µÄ»¥³â·ÃÎÊ¡£
·ÃÎʹ²Ïí×ÊÔ´µÄ´úÂëÇøÓò³ÆÎªÁÙ½çÇø£¬ÁÙ½çÇøÐèÒªÒÔijÖÖ»¥³â»úÖÆ¼ÓÒÔ±£»¤¡£ÖÐ¶ÏÆÁ±Î¡¢Ô×Ó²Ù×÷¡¢×ÔÐýËøºÍÐźÅÁ¿µÈÊÇLinuxÉ豸Çý¶¯ÖпɲÉÓõĻ¥³â;¾¶¡£
ÖÐ¶ÏÆÁ±Î
ÖÐ¶ÏÆÁ±Î½«Ê¹µÃÖжÏÓë½ø³ÌÖ®¼äµÄ²¢·¢²»ÔÙ·¢Éú£¬¶øÇÒ£¬ÓÉÓÚLinuxÄں˵Ľø³Ìµ÷¶ÈµÈ²Ù×÷¶¼ÒÀÀµÖжÏÀ´ÊµÏÖ£¬ÄÚºËÇÀÕ¼½ø³ÌÖ®¼äµÄ²¢·¢Ò²¾ÍµÃÒÔ±ÜÃâÁË¡£µ«ÊÇ£¬ÐèҪעÒâÊǵÄÊdz¤Ê±¼äµÄÖжÏÊÇΣÏյģ¬ÓпÉÄܵ¼ÖÂÊý¾Ý¶ªÊ§»ò×Åϵͳ±ÀÀ£¡£
local_irq_disable()ºÍlocal_irq_enable()¶¼Ö»ÄܽûÖ¹ºÍʹÄܱ¾CPUÄÚµÄÖжϣ¬²»Äܽâ¾öSMP¶àCPUÒý·¢µÄ¾ºÌ¬¡£
local_irq_save(flags)³ýÁ˽øÐнûÖ¹ÖжϲÙ×÷ÒÔÍ⣬»¹±£´æÄ¿Ç°CPUµÄÖжÏλÐÅÏ¢£¬local_irq_restore(flags)½øÐÐÏà·´µÄ²Ù×÷¡£
Èç¹ûÖ»Ïë½ûÖ¹Öжϵĵװ벿£¬Ó¦Ê¹ÓÃlocal_bh_disable(),ʹÄܵװ벿ʹÓÃlocal_bh_enable()¡£
Ô×Ó²Ù×÷
Ô×Ó²Ù×÷Ö¸µÄÊÇÔÚÖ´Ðйý³ÌÖв»»á±»±ðµÄ´úÂë·¾¶ËùÖжϵIJÙ×÷¡£
LinuxÄÚºËÌṩÁËһϵÁк¯ÊýÀ´ÊµÏÖÄÚºËÖеÄÔ×Ó²Ù×÷£¬ÕâЩº¯ÊýÓÖ·ÖΪÁ½À࣬·Ö±ðÕë¶ÔλºÍÕûÐͱäÁ¿½øÐÐÔ×Ó²Ù×÷¡£
ÕûÐÍÔ×Ó²Ù×÷
1. ÉèÖÃÖµ void atomic_set(atomic_t *v,int i); Atomic_t v = ATOMIC_INT(0);
2. »ñȡֵ atomic_read(atomic_t *v);
3. ¼Ó¼õ void atomic_add(int i,atomic_t *v); void atomic_sub(int i,atomic_t *v);
4. ×ÔÔö×Ô¼õ void atomic_inc(atomic_t *v); void atomic_dec(atomic_t *v);
5. ²Ù×÷²âÊÔ int atomic_inc_and_test(atomic_t *v); int atomic_dec_and_test(atomic_t *v); int atomic_sub_and_test(int i, atomic_t *v);
²Ù×÷ºó²âÊÔÆäÖµÊÇ·ñΪ0£¬Îª0·µ»Øtrue£¬·ñÔò·µ»Øfalse¡£
6. ²Ù×÷·µ»Øint atomic_inc_and_return(atomic_t *v); int atomic_dec_and_return(atomic_t *v); int atomic_sub_and_return(int i, atomic_t *v); int atomic_add_and_return(int i, atomic_t *v);
²Ù×÷ºó·µ»ØÐÂÖµ¡£
λÔ×Ó²Ù×÷
1. ÉèÖÃλ void set_bit(nr,void *addr); ÉèÖÃaddrµØÖ·µÄµÚnr룬¼´½«Î»Ð´1¡£
2. Çå³ýλ void clear_bit(nr,void *addr); ½«Î»Ð´Îª0¡£
3. ¸Ä±äλ void change_bit(nr,void *addr); ½«Î»½øÐз´Öá£
4. ²âÊÔλtest_bit(nr,void *addr); ·µ»ØµÚnrλ¡£
5. ²âÊÔ²Ù×÷int test_and_set_bit(nr,void *addr); int test_and_clear_bit(nr,void *addr); int test_and_change_bit(nr,void *a
Ïà¹ØÎĵµ£º
Ò»¡¢ÒýÑÔ£º
±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾Ñ飨Õâ¸ö»¹µ ......
·ÖÏíÒ»ÏÂÎÒÔÚÍøÉÏ¿´µ½µÄÓ²Å̰²×°Linux 9.0µÄÏà¹Ø²Ù×÷£º
ÏÂÃæÓÐÁ½ÖÖ°²×°·½·¨.
<A>´Ódos°²×°.Õâ·½·¨¿ÉÒÔ²»ÓÃÈíÅÌ,±È½Ï·½±ã.
<A.1> µÃµ½dosutilsĿ¼
Õâ¸öĿ¼ÀïÓдÓdos°²×°ºÍÈíÅ̰²×°µÄ¹¤¾ß.Ò»°ã¶¼ÔÚµÚÒ»¸öisoÎļþÀï.
ÔÚlinuxÏ¿ÉÒÔÕâÑù×°ÔØisoÎļþ.
mount -o loop valhalla-i386-disc1.iso /mnt/cdro ......
Name
times - get process times
Synopsis
#include <sys/times.h>
clock_t times(struct tms *buf);
Description
times() stores the current process times in the
struct tms that buf points to. The struct tms is as defined
in <sys/times.h>
:
struct tms {
clock_t tms_utime; /* us ......
·Ò룺·É¸ç (
http://hi.baidu.com/imlidapeng
)
°æÈ¨ËùÓУ¬×ðÖØËûÈËÀͶ¯³É¹û£¬×ªÔØÊ±Çë×¢Ã÷×÷ÕߺÍÔʼ³ö´¦¼°±¾ÉùÃ÷¡£
ÔÎÄÃû³Æ£º¡¶Linux Performance and Tuning Guidelines¡·
ÔÎĵØÖ·£ºhttp://www.redbooks.ibm.com/abstracts/redp4285.html
------------------------------------------------------------------- ......
¼ÌÐøÌ¸Ì¸ÆäËüÓïÑԵĿª·¢¡£
3.2) ¶¯Ì¬ÓïÑÔ
ÕâÀïÖ¸µÄÊǰüÀ¨½Å±¾ÓïÑÔ£¬½âÊÍÐÍÓïÑÔÔÚÄڵıà³ÌÓïÑÔ£¬ÀýÈçJava£¬Perl£¬Python£¬PHP£¬JavaScript£¬Ruby£¬Shell Script£¬µÈµÈ¡£
´Ó¿ª·¢»·¾³½Ç¶È¿´£¬¶¯Ì¬ÓïÑÔ¶¼ÓÐ×Ô¼ºµÄÔËÐл·¾³£¬¶øÇÒͨ³£¶¼ÊÇ¿çÆ½Ì¨µÄ¡£Òò´Ë£¬±àд´úÂ룬µ÷ÊÔÔËÐÐÔòÍêÈ«¿ÉÒÔÔÚ×Ô¼ºµÄ»·¾³ÖÐÍê³É£¬Ö»ÊÇ´ó¶àÊÇÃüÁîÐÐ ......