Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LINUX ¶àÏ̻߳¥³âÁ¿ºÍ¶ÁÐ´ËøÇø±ð


Ï̵߳Äͬ²½, ·¢ÉúÔÚ¶à¸öÏ̹߳²ÏíÏàͬÄÚ´æµÄʱºò, ÕâʱҪ±£Ö¤Ã¿¸öÏß³ÌÔÚÿ¸öʱ¿Ì¿´µ½µÄ¹²ÏíÊý¾ÝÊÇÒ»ÖµÄ. Èç¹ûÿ¸öÏß³ÌʹÓõıäÁ¿¶¼ÊÇÆäËûÏ̲߳»»áʹÓõÄ(read & write), »òÕß±äÁ¿ÊÇÖ»¶ÁµÄ, ¾Í²»´æÔÚÒ»ÖÂÐÔÎÊÌâ. µ«ÊÇ, Èç¹ûÁ½¸ö»òÁ½¸öÒÔÉϵÄÏ߳̿ÉÒÔread/writeÒ»¸ö±äÁ¿Ê±, ¾ÍÐèÒª¶ÔÏ߳̽øÐÐͬ²½, ÒÔÈ·±£ËüÃÇÔÚ·ÃÎʸñäÁ¿Ê±, ²»»áµÃµ½ÎÞЧµÄÖµ, ͬʱҲ¿ÉÒÔΨһµØÐ޸ĸñäÁ¿²¢Ê¹ËüÉúЧ.
    ÒÔÉϾÍÊÇÎÒÃÇËù˵µÄÏß³Ìͬ²½.
    Ïß³Ìͬ²½ÓÐÈýÖÖ³£ÓõĻúÖÆ: »¥³âÁ¿(mutex), ¶ÁÐ´Ëø(rwlock)ºÍÌõ¼þ±äÁ¿(cond).
    »¥³âÁ¿ÓÐÁ½ÖÖ״̬: lockºÍunlock, ËüÈ·±£Í¬Ò»Ê±¼äÖ»ÓÐÒ»¸öÏ̷߳ÃÎÊÊý¾Ý;
    ¶ÁÐ´ËøÓÐÈýÖÖ״̬: ¶Á¼ÓËø, д¼ÓËø, ²»¼ÓËø, Ö»ÓÐÒ»¸öÏ߳̿ÉÒÔÕ¼ÓÐдģʽµÄ¶ÁÐ´Ëø, µ«ÊÇ¿ÉÒÔÓжà¸öÏß³ÌͬʱռÓжÁģʽµÄ¶ÁÐ´Ëø.
    Ìõ¼þ±äÁ¿Ôò¸ø¶à¸öÏß³ÌÌṩÁËÒ»¸ö»áºÏµÄ³¡Ëù, Ó뻥³âÁ¿Ò»ÆðʹÓÃʱ, ÔÊÐíÏß³ÌÒÔÎÞ¾ºÕùµÄ·½Ê½µÈ´ýÌØ¶¨Ìõ¼þµÄ·¢Éú.
»¥³âÁ¿
    »¥³âÁ¿´Ó±¾ÖÊÉÏ˵¾ÍÊÇÒ»°ÑËø, Ìṩ¶Ô¹²Ïí×ÊÔ´µÄ±£»¤·ÃÎÊ.
1. ³õʼ»¯:
    ÔÚLinuxÏÂ, Ï̵߳Ļ¥³âÁ¿Êý¾ÝÀàÐÍÊÇpthread_mutex_t. ÔÚʹÓÃǰ, Òª¶ÔËü½øÐгõʼ»¯:
¶ÔÓÚ¾²Ì¬·ÖÅäµÄ»¥³âÁ¿, ¿ÉÒÔ°ÑËüÉèÖÃΪPTHREAD_MUTEX_INITIALIZER, »òÕßµ÷ÓÃpthread_mutex_init.
¶ÔÓÚ¶¯Ì¬·ÖÅäµÄ»¥³âÁ¿, ÔÚÉêÇëÄÚ´æ(malloc)Ö®ºó, ͨ¹ýpthread_mutex_init½øÐгõʼ»¯, ²¢ÇÒÔÚÊÍ·ÅÄÚ´æ(free)ǰÐèÒªµ÷ÓÃpthread_mutex_destroy.
Ô­ÐÍ:
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restric attr);
int pthread_mutex_destroy(pthread_mutex_t *mutex);
Í·Îļþ: <pthread.h>
·µ»ØÖµ: ³É¹¦Ôò·µ»Ø0, ³ö´íÔò·µ»Ø´íÎó±àºÅ.
˵Ã÷: Èç¹ûʹÓÃĬÈϵÄÊôÐÔ³õʼ»¯»¥³âÁ¿, Ö»Ðè°ÑattrÉèΪNULL. ÆäËûÖµÔÚÒÔºó½²½â.
2. »¥³â²Ù×÷:
    ¶Ô¹²Ïí×ÊÔ´µÄ·ÃÎÊ, Òª¶Ô»¥³âÁ¿½øÐмÓËø, Èç¹û»¥³âÁ¿ÒѾ­ÉÏÁËËø, µ÷ÓÃÏ̻߳á×èÈû, Ö±µ½»¥³âÁ¿±»½âËø. ÔÚÍê³ÉÁ˶Թ²Ïí×ÊÔ´µÄ·ÃÎʺó, Òª¶Ô»¥³âÁ¿½øÐнâËø.
Ê×ÏÈ˵һϼÓËøº¯Êý:
Í·Îļþ: <pthread.h>
Ô­ÐÍ:
int pthread_mutex_lock(pthread_mutex_t *mutex);
int pthread_mutex_trylock(pthread_mutex_t *mutex);
·µ»ØÖµ: ³É¹¦Ôò·µ»Ø0, ³ö´íÔò·µ»Ø´íÎó±àºÅ.
˵ Ã÷: ¾ßÌå˵һÏÂtrylockº¯Êý, Õâ¸öº¯ÊýÊÇ·Ç×èÈûµ÷


Ïà¹ØÎĵµ£º

LinuxÄÚºËÅäÖÃÎĵµ(make menuconfig)

Ò»¡¢ÒýÑÔ£º
    ±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾­Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾­Ñ飨Õâ¸ö»¹µ ......

linuxÖеĿéÉ豸ºÍ×Ö·ûÉ豸

ϵͳÖÐÄܹ»Ëæ»ú£¨²»ÐèÒª°´Ë³Ðò£©·ÃÎʹ̶¨´óСÊý¾ÝƬ£¨chunks
£©µÄÉ豸±»³Æ×÷¿éÉ豸£¬ÕâЩÊý¾ÝƬ¾Í³Æ×÷¿é¡£×î³£¼ûµÄ
¿éÉ豸
ÊÇÓ²ÅÌ£¬³ý´ËÒÔÍ⣬»¹ÓÐÈíÅÌÇý¶¯Æ÷¡¢CD-ROM
Çý¶¯Æ÷ºÍÉÁ´æµÈµÈÐí¶à
ÆäËû
¿éÉ豸¡£×¢Ò⣬ËüÃǶ¼ÊÇÒÔ°²×°ÎļþϵͳµÄ·½Ê½Ê¹Óõė—ÕâÒ²ÊÇ¿éÉ豸һ°ãµÄ·ÃÎÊ·½Ê½
¡£
ÁíÒ»ÖÖ»ù±¾µÄÉ豸Àà ......

Linux»·¾³½ø³Ì¼äͨÐÅ£¨¶þ£©: Ðźţ¨ÉÏ£©

Ò»¡¢Ðźż°ÐźÅÀ´Ô´
Ðźű¾ÖÊ
ÐźÅÊÇÔÚÈí¼þ²ã´ÎÉ϶ÔÖжϻúÖÆµÄÒ»ÖÖÄ£Ä⣬ÔÚÔ­ÀíÉÏ£¬Ò»¸ö½ø³ÌÊÕµ½Ò»¸öÐźÅÓë´¦ÀíÆ÷ÊÕµ½Ò»¸öÖжÏÇëÇó¿ÉÒÔ˵ÊÇÒ»ÑùµÄ¡£ÐźÅÊÇÒì²½µÄ£¬Ò»¸ö½ø³Ì²»±ØÍ¨¹ýÈκβÙ×÷À´µÈ´ýÐźŵĵ½´ï£¬ÊÂʵÉÏ£¬½ø³ÌÒ²²»ÖªµÀÐźŵ½µ×ʲôʱºòµ½´ï¡£
ÐźÅÊǽø³Ì¼äͨÐÅ»úÖÆÖÐΨһµÄÒ첽ͨÐÅ»úÖÆ£¬¿ÉÒÔ¿´×÷ÊÇÒì²½Í¨Ö ......

Linux϶ÁÓ²ÅÌÐòÁкŵijÌÐò


Linux϶ÁÓ²ÅÌÐòÁкŵijÌÐò
/*
* gethddsn.c
*
* Get serial number of ide hard disk.
* example: my Maxtor 15G 's s/n is K306S04C.
*
* Compile with: gcc -O2 gethddsn.c
*
* Xiaoming DONG <xmdong@263.net>
* Aug 24, 2000
*
*/
#include <stdio.h>
#include <stdlib.h>
#includ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ