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

̽Ë÷ Linux ÄÚ´æÄ£ÐÍ

ÎÄÕÂÀ´Ô´:http://www.ibm.com/developerworks/cn/linux/l-memmod/index.html
¼¶±ð£º ³õ¼¶
Vikram Shukla (vikshukl@in.ibm.com), Èí¼þ¹¤³Ìʦ, IBM
2006 Äê 2 ÔÂ 23 ÈÕ
ÔÚÕâƪ Linux® ÄÚ´æÄ£ÐÍÖ¸ÄÏÖУ¬ÎÒÃǽ«Ñ§Ï°ÈçºÎ¹¹½¨ºÍ¹ÜÀíÄÚ´æ·½ÃæµÄ»ù´¡ÖªÊ¶¡£±¾Ö¸ÄϽéÉÜÁËÄÚ´æ¿ØÖƵ¥Ôª¡¢·ÖҳģÐÍ·½ÃæµÄÄÚÈÝ£¬²¢Ïêϸ½éÉÜÁËÎïÀíÄÚ´æÇøÓò·½ÃæµÄ֪ʶ¡£
Àí½â Linux ʹÓõÄÄÚ´æÄ£ÐÍÊÇ´Ó¸ü´ó³Ì¶ÈÉÏÕÆÎÕ Linux Éè¼ÆºÍʵÏֵĵÚÒ»²½£¬Òò´Ë±¾ÎĽ«¸ÅÊö Linux ÄÚ´æÄ£Ðͺ͹ÜÀí¡£
Linux ʹÓõÄÊǵ¥Ò»ÕûÌåʽ½á¹¹ (Monolithic)£¬ÆäÖж¨ÒåÁËÒ»×éÔ­Óï»òϵͳµ÷ÓÃÒÔʵÏÖ²Ù×÷ϵͳµÄ·þÎñ£¬ÀýÈçÔÚ¼¸¸öÄ£¿éÖÐÒÔ³¬¼¶Ä£Ê½ÔËÐеĽø³Ì¹ÜÀí¡¢²¢·¢¿ØÖƺÍÄÚ´æ¹ÜÀí·þÎñ¡£¾¡¹Ü³öÓÚ¼æÈÝÐÔ¿¼ÂÇ£¬Linux ÒÀÈ»½«¶Î¿ØÖƵ¥ÔªÄ£ÐÍ (segment control unit model) ±£³ÖÒ»ÖÖ·ûºÅ±íʾ£¬µ«Êµ¼ÊÉÏÒѾ­ºÜÉÙʹÓÃÕâÖÖÄ£ÐÍÁË¡£
ÓëÄÚ´æ¹ÜÀíÓйصÄÖ÷ÒªÎÊÌâÓУº
ÐéÄâÄÚ´æµÄ¹ÜÀí£¬ÕâÊǽéÓÚÓ¦ÓóÌÐòÇëÇóÓëÎïÀíÄÚ´æÖ®¼äµÄÒ»¸öÂß¼­²ã¡£
ÎïÀíÄÚ´æµÄ¹ÜÀí¡£
ÄÚºËÐéÄâÄÚ´æµÄ¹ÜÀí/ÄÚºËÄÚ´æ·ÖÅäÆ÷£¬ÕâÊÇÒ»¸öÓÃÀ´Âú×ã¶ÔÄÚ´æµÄÇëÇóµÄ×é¼þ¡£ÕâÖÖ¶ÔÄÚ´æµÄÇëÇó¿ÉÄÜÀ´×ÔÓÚÄںˣ¬Ò²¿ÉÄÜÀ´×ÔÓÚÓû§¡£
ÐéÄâµØÖ·¿Õ¼äµÄ¹ÜÀí¡£
½»»»ºÍ»º´æ¡£
±¾ÎÄ̽ÌÖÁËÒÔÏÂÎÊÌ⣬¿ÉÒÔ°ïÖúÄú´Ó²Ù×÷ϵͳÖÐÄÚ´æ¹ÜÀíµÄ½Ç¶ÈÀ´Àí½â Linux µÄÄÚÄ»£º
¶Î¿ØÖƵ¥ÔªÄ£ÐÍ£¬Í¨³£×¨ÓÃÓÚ Linux
·ÖҳģÐÍ£¬Í¨³£×¨ÓÃÓÚ Linux
ÎïÀíÄÚ´æ·½ÃæµÄ֪ʶ
ËäÈ»±¾ÎIJ¢Ã»ÓÐÏêϸ½éÉÜ Linux Äں˹ÜÀíÄÚ´æµÄ·½·¨£¬µ«ÊǽéÉÜÁËÓйØÕû¸öÄÚ´æÄ£Ð͵Ä֪ʶÒÔ¼°ÏµÍ³µÄÑ°Ö··½Ê½£¬ÕâЩ½éÉÜ¿ÉΪÄú½øÒ»²½µÄѧϰÌṩһ¸ö¿ò¼Ü¡£±¾ÎÄÖصã½éÉܵÄÊÇ x86 ¼Ü¹¹£¬µ«±¾ÎÄÖеÄ֪ʶ¶ÔÓÚÆäËûÓ²¼þʵÏÖͬÑùÊÊÓá£
x86 ÄÚ´æ¼Ü¹¹
ÔÚ x86 ¼Ü¹¹ÖУ¬ÄÚ´æ±»»®·Ö³É 3 ÖÖÀàÐ͵ĵØÖ·£º
Âß¼­µØÖ· (logical address) ÊǴ洢λÖõĵØÖ·£¬Ëü¿ÉÄÜÖ±½Ó¶ÔÓ¦ÓÚÒ»¸öÎïÀíλÖã¬Ò²¿ÉÄܲ»Ö±½Ó¶ÔÓ¦ÓÚÒ»¸öÎïÀíλÖá£Âß¼­µØַͨ³£ÔÚÇëÇó¿ØÖÆÆ÷ÖеÄÐÅϢʱʹÓá£
ÏßÐÔµØÖ· (linear address) £¨»ò³ÆΪ ƽÃæµØÖ·¿Õ¼ä£©ÊÇ´Ó 0 ¿ªÊ¼½øÐÐÑ°Ö·µÄÄÚ´æ¡£Ö®ºóµÄÿ¸ö×Ö½Ú¶¼¿É˳ÐòʹÓÃÏÂÒ»Êý×ÖÀ´ÒýÓã¨0¡¢1¡¢2¡¢3 µÈ£©£¬Ö±µ½ÄÚ´æĩβΪֹ¡£Õâ¾ÍÊÇ´ó²¿·Ö·Ç Intel CPU µÄÑ°Ö··½Ê½¡£Intel® ¼Ü¹¹Ê¹ÓÃÁ˷ֶεĵØÖ·¿Õ¼ä£¬ÆäÖÐÄÚ´æ±»»®·Ö³É 64KB µÄ¶Î£¬ÓÐÒ»¸ö¶Î¼Ä´æÆ÷×ÜÊÇÖ¸Ïòµ±Ç°ÕýÔÚÑ°Ö·µÄ¶ÎµÄ»ùÖ·¡£ÕâÖּܹ¹ÖÐµÄ 32 λģʽ±»ÊÓΪƽÃæµØÖ·¿Õ¼ä£¬²»¹ýËüҲʹÓÃÁ˶Ρ£
ÎïÀíµØÖ· (physical address) ÊÇʹÓÃÎïÀíµØÖ·×ÜÏßÖеÄ


Ïà¹ØÎĵµ£º

linuxÏ̵߳ĹÒÆðÓë»Ö¸´

#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
pthread_mutex_t wqy_mutex_pause = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t wqy_cond_pause = PTHREAD_COND_INITIALIZER;
bool wqy_pthread_pause = false;
void wqy_pthread_suspend(void)
{
if ......

Linux ´ÅÅÌ·ÖÇø±í¡¢ÎļþϵͳµÄ²é¿´

ÌáÒª£ºLinux ´ÅÅÌ·ÖÇø±í¡¢ÎļþϵͳµÄ²é¿´¡¢Í³¼ÆµÄ¹¤¾ßºÜ¶à£¬ÓÐЩ¹¤¾ßÊǶ๦Äܵģ¬²»½ö½öÊDz鿴´ÅÅ̵ķÖÇø±í£¬¶øÇÒÒ²ÄܽøÐдÅÅÌ·ÖÇøµÄ²Ù×÷£»µ«ÔÚ±¾ÎÄ£¬ÎÒÃÇÖ»½²´ÅÅÌ·ÖÇøµÄ²é¿´£¬ÒÔ¼°·ÖÇøµÄʹÓÃÇé¿öµÄ²é¿´£»±¾ÎÄÖ»ÊǸøÐÂÊÖÉÏ·֮Ó㻹ØÓÚ·ÖÇø¹¤¾ßµÄ²Ù×÷£¬ÎÒ½«ÔÚÒÔºó×öרÃŽéÉÜ£»´ËÎÄÄ¿µÄ:Ö÷ÒªÊÇÏò³õѧÕß½éÉÜÒ»ÏÂÈëÃűر¸µÄÒ»µ ......

¸ßЧʹÓÃLinuxϵͳµÄÔÚÏßÎĵµÏµÍ³

LinuxÏà±ÈÓÚWindowsÒ»¸ö±È½ÏºÃµÄµØ·½ÔÚÓÚLinuxÌṩÁ˷dz£·á¸»µÄÔÚÏßÎĵµ£¬¸üÖØÒªµÄÊÇÕâЩ¶¼ÊÇfreeµÄ£¨ÏÂÃæµÄ˵Ã÷ÊÇÕë¶Ôdebian·¢Ðа棬ÆäËûµÄ·¢ÐаæÇé¿ö¿ÉÄÜ»áÓÐËù²»Í¬£©¡£
LinuxµÄÔÚÏßÎĵµ´ó¸Å¿ÉÒÔ·ÖΪÒÔϼ¸Àࣺ
£¨1£©Man¸ñʽµÄÊֲᣬĬÈÏ´æ·ÅÓÚ/usr/share/manĿ¼£¬ÓÃmanÃüÁî²é¿´¡£
£¨2£©Info ¸ñʽµÄÊֲᣬĬÈÏ´æ·Å ......

Linux ͬ²½·½·¨ÆÊÎö

ÎÄÕÂÀ´Ô´:http://www.ibm.com/developerworks/cn/linux/l-linux-synchronization.html
¼¶±ð£º Öм¶
M. Tim Jones, ¹ËÎʹ¤³Ìʦ, Emulex
2007 Äê 11 ÔÂ 19 ÈÕ
ÔÚѧϰ Linux® µÄ¹ý³ÌÖУ¬ÄúÒ²Ðí½Ó´¥¹ý²¢·¢£¨concurrency£©¡¢ÁÙ½ç¶Î£¨critical section£©ºÍËø¶¨£¬µ«ÊÇÈçºÎÔÚÄÚºËÖÐʹÓÃÕâЩ¸ÅÄîÄØ£¿±¾ÎÄÌÖÂÛÁË 2.6 °æÄÚºËÖÐ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ