LInux¶àÏ̱߳à³Ì¼¼Êõ×ܽá
Linux¶àÏ̱߳à³Ì¼¼Êõ×ܽá
1
¡¢Ï̵߳Ĵ´½¨¡¢ÖÕÖ¹¼°¿ØÖÆ£º
Èκνø³ÌÔÚÆô¶¯Ê±¾ÍÒÑÓÐÁËÒ»¸öÖ÷Ị̈߳¬Èç¹ûÐèÒªÔÙÉú³ÉÏß³ÌÔòʹÓÃ
pthread_create
º¯Êý£¬Ôڸú¯ÊýÖпÉÒÔÖ¸¶¨Ï̵߳ÄÊôÐÔ¡¢Ïß³ÌÀý³Ì¡¢´«¸øÏß³ÌÀý³ÌµÄ²ÎÊý¡£Ïß³ÌÀý³ÌÊÇÒ»¸öÓû§×Ô¶¨ÒåµÄº¯Êý£¬¼°Ïß³ÌÖ´ÐеĴúÂë¡£µ±Ïß³ÌÀý³Ì·µ»ØÊ±£¬Ïß³ÌÔò½áÊøÔËÐУ¬Ò²¿ÉÒÔÏÔʾµ÷ÓÃ
pthread_exit
À´Í˳ö¡£Ïß³ÌÔÚ´´½¨ºó¿ÉÒÔÓÃ
pthread_self
º¯Êý»ñÈ¡Ïß³Ì
ID
¡£º¯Êý
pthread_join
ʹµÃ½ø³ÌµÈ´ýÏ̵߳ÄÖÕÖ¹£¬µ÷ÓÃ
pthread_join
ºó½ø³Ì½«±»¹ÒÆð£¬Ö±µ½Ö¸¶¨µÄij¸öỊ̈߳¨ÔÚ
pthread_join
µÄ²ÎÊý
thread
ÖÐÖ¸¶¨£©ÖÕÖ¹¡£¶ø
pthread_detach
º¯ÊýÕýºÃÏà·´£¬ËüʹµÃ½ø³Ì²»±ØµÈ´ýÏ̵߳ĽáÊø£¬´Ó¶øÔÊÐí½ø³Ì¼ÌÐøÖ´ÐбðµÄ²Ù×÷£¬±»
detach
µÄÏß³ÌÔÚÖ´ÐнáÊøºóÆäÕ¼ÓõÄ×ÊÔ´ÓÉϵͳ×Ô¶¯Êջء£
2
¡¢Ï̼߳äµÄ»¥³â£º
»¥³â²Ù×÷
£¬¾ÍÊǶÔij¶Î´úÂë»òij¸ö±äÁ¿Ð޸ĵÄʱºòÖ»ÄÜÓÐÒ»¸öÏß³ÌÔÚÖ´ÐÐÕâ¶Î´úÂ룬ÆäËûÏ̲߳»ÄÜͬʱ½øÈëÕâ¶Î´úÂë»òͬʱÐ޸ıäÁ¿¡£
pthread
³£ÓÃ
pthread_mutex
»¥³âÌåÀ´ÊµÏÖÏ̻߳¥³â²Ù×÷¡£
pthread_mutex_init
º¯ÊýÓÃÓÚ³õʼ»¯Ò»¸ö»¥³âÌå±äÁ¿¡£
pthread_mutex_lock
º¯ÊýÓÃÓÚ¸ø»¥³âÌå±äÁ¿ÉÏËø£¬Èç¹ûÉÏËøÊ±»¥³âÌåÒѾ±»±»µÄÏß³ÌËø×¡ÁË£¬ÄÇôµ÷Óøú¯ÊýµÄÏ߳̽«±»×èÈûÖ±µ½»¥³âÌå±»½âËøÎªÖ¹¡£¶ø
pthread_mutex_trylock
ÔòÊÇÊÔÍ¼Ëø×¡»¥³âÌ壬µ«ÔÚ»¥³âÌåÒѾ±»¼ÓËøÊ±²»»áÔì³É×èÈû£¬¶øÊÇѸËÙ·µ»Ø¡£
pthread_mutex_unlock
º¯Êý¶Ô»¥³âÌå½âËø¡£
pthread_mutex_destroy
ÔòÓÃÀ´ÊÍ·Å»¥³âÌåËùÕ¼×ÊÔ´¡£
3
¡¢Ï̵߳Äͬ²½£º
ͬ²½¾ÍÊÇÈô¸É¸öÏ̵߳ȴýij¸öʼþµÄ·¢Éú£¬µ±¸Ãʼþ·¢Éúʱ£¬Ò»Æð¿ªÊ¼¼ÌÐøÖ´ÐС£ÔÚ
Linux
Ïß³ÌÖÐÓÃÌõ¼þ±äÁ¿À´ÊµÏÖͬ²½¡£º¯Êý
pthread_cond_init
ÓÃÀ´´´½¨Ò»¸öÌõ¼þ±äÁ¿¡£
pthread_cond_wait
ºÍ
pthread_cond_timewait
ÓÃÀ´µÈ´ýÌõ¼þ±äÁ¿±»ÉèÖã¬ÖµµÃ×¢ÒâµÄÊÇÕâÁ½¸öµÈ´ýµ÷ÓÃÐèÒªÒ»¸öÒѾÉÏËøµÄ»¥³âÌå
mutex
£¬ÕâÊÇΪÁË·ÀÖ¹ÔÚÕæÕý½øÈëµÈ´ý״̬֮ǰ±ðµÄÏß³ÌÓпÉÄÜÉèÖøÃÌõ¼þ±äÁ¿¶ø²úÉú¾ºÕù¡£
pthread_cond_broadcast
ÓÃÓÚÉèÖÃÌõ¼þ±äÁ¿£¬¼´Ê¹Ê¼þ·¢Éú£¬²¢Ê¹µÃËùÓеȴý¸ÃʼþµÄÏ̲߳»ÔÙ×èÈû¡£¶ø
pthread_cond_signal
ÔòÊÇÓýâ³ýijһ¸öµÈ´ýÏ̵߳Ä×èÈû״̬¡£
pthread_cond_destroy
ÓÃÀ´ÊÍ·ÅÒ»¸öÌõ¼þ±äÁ¿µÄ×ÊÔ´¡£
4
¡¢Éú²úÕß——Ïû·ÑÕ
Ïà¹ØÎĵµ£º
caddr_t //ºËÐĵØÖ·
clock_t //ʱÖӵδð¼ÆÊýÆ÷
compt_t //ѹËõµÄʱÖӵδð
dev_t //É豸ºÅ£¨Ö÷ºÍ´Î£©
fd_set //ÎļþÃèÊö·û¼¯
fpos_t //ÎļþλÖÃ
gid_t //ÊýÖµ×éID
ino_t //i½Úµã±àºÅ
mode_t //ÎļþÀ ......
1£¬ÏÔÖøÓ°ÏìϵͳÐÔÄܵÄ4ÖÖ×ÊÔ´
(1),CPUʱ¼ä
(2),ÄÚ´æ
(3),Ó²ÅÌI/O
(4),ÍøÂçI/O
2£¬·ÖÎöCPUʹÓÃÇé¿ö
ʹÓÃvmstat²É¼¯CPUµÄÐÔÄÜÆ¿¾±
[root@local]# vmstat 2
procs -----------memory---------- ---swap-- -----io-- ......
Red Hat Enterprise Linux ÏÂcvs·þÎñÆ÷µÄ°²×°ÓëÅäÖÃ
°²×°ÓëÅäÖÃ
Ê×ÏȰ²×° cvs £¬Ò»°ã·þÎñÆ÷×Ô´øÁËcvs·þÎñ£¬°æ±¾ËæÒ⣬ûʲô²î±ð
[root@RHEL ~]#rpm –ivh cvs-1.11.22-5.el5.i386.rpm
È»ºó´´½¨Ò»¸öcvsÓû§×飬²¢´´½¨Ò»¸öcvsrootÓû§
[root@RHEL ~]#groupadd cvs
[root@RHEL ~]#useradd –g cv ......
Ò».linuxµÄÌØµã
1£©Ãâ·ÑµÄ/¿ªÔ´µÄ
2£©Ö§³Ö¶àÏß³Ì/¶àÓû§
3£©°²È«ÐÔºÃ
4£©¶ÔÄÚ´æºÍÎļþ¹ÜÀíÓÅÔ½
¶þ.ËÔÚͦlinux
IBM/Compaq/Novell/Oracle/Sun/NEC....
Èý.linux ×îСֻҪ4MÄÚ´æ -¡·Ç¶Èëʽ¿ª·¢
ËÄ.linux µÄ¹ÊÊÂ
1973£¬unix³öÏÖ¡£´ËʱwindowsÉÐδ³öÉú
Ô´ÂëÄں˹²Ïí -¡·IBMÍÆ³öaix£¬SUNÍÆ³ösolaris£¬HPÍÆ³öHP unix£¬ ......
/bin ´æ·Å×î³£ÓõÄÃüÁ´ËĿ¼ÏµÄÃüÁîËùÓÐÓû§¶¼ÓÐÖ´ÐеÄȨÏÞ
/boot LinuxϵͳÒýµ¼Ä¿Â¼£¬´ËĿ¼±£´æÏµÍ³Æô¶¯Ê±µÄÄÚºËÎļþºÍÄÚºËÓ³ÏñÎļþ¼°Æô¶¯Ê±ËùÐèµÄÆäËüÎļþ
/dev É豸Îļþ£¬±£´æËùÓеÄÓ²¼þÉ豸Îļþ£¬ÈçÓ²ÅÌÉ豸Îļþ£¬ÈíÇý¡¢¹âÇýÉ豸ÎļþµÈµÈ
/etc ......