LinuxÄں˽ø³Ìµ÷¶ÈÒÔ¼°¶¨Ê±Æ÷ʵÏÖ»úÖÆ(ת)
ÕªÒª¡¿±¾Îļòµ¥½éÉÜÁËÈÎÎñµÄ¸÷ÖÖ״̬ºÍPCBµÄ½á¹¹£¬·ÖÎöÁ˼¸ÖÖÈÎÎñµ÷¶È²ßÂÔ£¬Ïê½âÁËschedule£¬²¢·ÖÎöÁËÈçºÎ½øÐнø³ÌÉÏÏÂÎÄÇл»£»Ëæºó·ÖÎöÁË2.6ÄÚºËÈçºÎÓÅ»¯ÁËÈÎÎñµ÷¶ÈËã·¨£»×îºó½éÉÜÁËÄں˶¨Ê±Æ÷µÄʵÏÖ»úÖÆºÍϵͳµ÷ÓõÄʵÏÖ¹ý³Ì¡£
¡¾¹Ø¼ü´Ê¡¿½ø³Ì¿ØÖÆ¿éPCB£¬RR£¬FIFO£¬Äں˵÷¶ÈËã·¨£¬ÈÎÎñÇл»£¬Äں˶¨Ê±£¬timer£¬ÈíÖжÏsoftirq£¬ÏµÍ³µ÷ÓÃ
Ò»¡¢2.6°æÒÔǰÄں˽ø³Ìµ÷¶È»úÖÆ¼ò½é... 1
1¡¢½ø³Ì¿ØÖÆ¿éÊý¾Ý½á¹¹... 1
2¡¢½ø³Ìµ÷¶È... 2
3¡¢½ø³ÌÉÏÏÂÎÄÇл»... 5
¶þ¡¢2.6°æÄں˶Խø³Ìµ÷¶ÈµÄÓÅ»¯... 7
1¡¢Ðµ÷¶ÈËã·¨¼ò½é... 7
2¡¢2.6°æÐµ÷¶ÈËã·¨·ÖÎö... 8
3¡¢2.6°æÐµ÷¶ÈËã·¨Á÷³Ìͼ... 11
Èý¡¢ÄÚºËÖжϼ°¶¨Ê±Æ÷ʵÏÖ·ÖÎö... 11
ËÄ¡¢ÏµÍ³µ÷ÓõÄʵÏÖ¹ý³Ì... 14
²Î¿¼×ÊÁÏ£º... 14
Ò»¡¢2.6°æÒÔǰÄں˽ø³Ìµ÷¶È»úÖÆ¼ò½é
LinuxµÄ½ø³Ì¹ÜÀíÓɽø³Ì¿ØÖƿ顢½ø³Ìµ÷¶È¡¢Öжϴ¦Àí¡¢ÈÎÎñ¶ÓÁС¢¶¨Ê±Æ÷¡¢bottom half¶ÓÁС¢ÏµÍ³µ÷Óᢽø³ÌͨÐŵȵȲ¿·Ö×é³É¡£
½ø³Ìµ÷Ó÷ÖΪʵʱ½ø³Ìµ÷¶ÈºÍ·Çʵʱ½ø³Ìµ÷¶ÈÁ½ÖÖ¡£Ç°Õßµ÷¶Èʱ£¬¿ÉÒÔ²ÉÓûùÓÚ¶¯Ì¬ÓÅÏȼ¶µÄÂÖת·¨£¨RR£©£¬Ò²¿ÉÒÔ²ÉÓÃÏȽøÏȳöËã·¨£¨FIFO£©¡£ºóÕßµ÷¶Èʱ£¬Ò»ÂɲÉÓûùÓÚ¶¯Ì¬ÓÅÏȼ¶µÄÂÖת·¨¡£Ä³¸ö½ø³Ì²ÉÓúÎÖÖµ÷¶ÈËã·¨Óɸýø³ÌµÄ½ø³Ì¿ØÖÆ¿éÖеÄijЩÊôÐÔ¾ö¶¨£¬Ã»ÓÐרÃŵÄϵͳÓÃÀ´´¦Àí¹ØÓÚ½ø³Ìµ÷¶ÈµÄÏà¹ØÊÂÒË¡£LinuxµÄ½ø³Ìµ÷¶ÈÓÉschedule( )º¯Êý¸ºÔð£¬Èκνø³Ì£¬µ±Ëü´Óϵͳµ÷Ó÷µ»ØÊ±£¬¶¼»áתÈëschedule( )£¬¶øÖжϴ¦Àíº¯ÊýÍê³ÉËüÃǵÄÏìÓ¦ÈÎÎñÒÔºó£¬Ò²»á½øÈëschedule( )¡£
1¡¢½ø³Ì¿ØÖÆ¿éÊý¾Ý½á¹¹
LinuxϵͳµÄ½ø³Ì¿ØÖÆ¿éÓÃÊý¾Ý½á¹¹task_struct±íʾ£¬Õâ¸öÊý¾Ý½á¹¹Õ¼ÓÃ1680¸ö×Ö½Ú£¬¾ßÌåµÄÄÚÈݲ»ÔÚÕâÀï½éÉÜ£¬ÏêϸÄÚÈݼû¡¶LinuxÄÚºË2.4°æÔ´´úÂë·ÖÎö´óÈ«¡·µÚ¶þÒ³¡£
½ø³ÌµÄ״̬Ö÷Òª°üÀ¨Èçϼ¸¸ö£º
TASK_RUNNING ÕýÔÚÔËÐлòÔÚ¾ÍÐ÷¶ÓÁÐrun-queueÖÐ×¼±¸ÔËÐеĽø³Ì£¬Êµ¼Ê²ÎÓë½ø³Ìµ÷¶È¡£
TASK_INTERRUPTIBLE ´¦Óڵȴý¶ÓÁÐÖеĽø³Ì£¬´ý×ÊÔ´ÓÐЧʱ»½ÐÑ£¬Ò²¿ÉÓÉÆäËü½ø³Ìͨ¹ýÐźŻò¶¨Ê±Öжϻ½ÐѺó½øÈë¾ÍÐ÷¶ÓÁÐrun-queue¡£
TASK_UNINTERRUPTIBLE ´¦Óڵȴý¶ÓÁеĽø³Ì£¬´ý×ÊÔ´ÓÐЧʱ»½ÐÑ£¬²»¿ÉÓÉÆäËü½ø³Ìͨ¹ýÐźŻòÕß¶¨Ê±Öжϻ½ÐÑ¡£
TASK_ZOMBIE ±íʾ½ø³Ì½áÊøµ«ÉÐδÏûÍöµÄÒ»ÖÖ״̬£¨½©ËÀ£©£¬´Ëʱ£¬½ø³ÌÒѾ½áÊøÔËÐв¢ÇÒÒѾÊÍ·ÅÁ˴󲿷Ö×ÊÔ´£¬µ«ÊÇÉÐδÊͷŽø³Ì¿ØÖƿ顣
TASK_STOPPED ½ø³ÌÔÝÍ££¬Í¨¹ýÆäËü½ø³ÌµÄÐźŲÅÄÜ»½ÐÑ¡£
ËùÓнø³Ì£¨ÒÔPCBÐÎʽ£©×é³
Ïà¹ØÎĵµ£º
ÔÚLinuxÓÃc±à³Ì£¬ºÜ¶àʱºò¶¼»áÅöµ½½á¹¹ÌåÕâ¸ö¸ÅÄÓÈÆäÊÇʹÓÃÖ¸Õë·ÃÎʽṹÌå³ÉÔ±¡££¨ÏÂÃæµÄÎÄ×Ö½éÉÜ£¬Çë²Î¿¼´úÂëÀí½â£©
1. ʹÓÃÒ»¸öÐÂÔËËã·û£º->,Õâ¸öÔËËã·ûÓÐÒ»¸öÁ¬½ÓºÅ£¨-£©ºó¸úÒ»¸ö´óÓÚ·ûºÅ£¨>£©×é³É
&nbs ......
redhatϵÁÐ(rhel,centos,fc) yum install package-name
debianϵÁÐ(debian,ubuntu) apt-get install package-name
¶ÔÓÚ¿ª·¢°ü
redhat: yum install python-devel
debian: apt-get install python-dev
Ìí¼ÓÓû§
redhat: useradd user-name
debian: useradd -m user-name
debianϵÁÐÀï ......
[¾¹ý°²×°²âÊԳɹ¦µÄ·½·¨from CYBEND ]
µÚÒ»²½£ºÏµÍ³ÓëÈí¼þµÄ×¼±¸
ϵͳ°æ±¾ redhat enterprise linux 5 ,Äں˰汾 2.6.18
µÚ¶þ²½£ºÈí¼þ°üµÄ×¼±¸
httpdÈí¼þ°ü£ºhttpd-2.2.8.tar.bz2
mysqlÈí¼þ°ü´Ómysql¹Ù·½ÍøÕ¾ÏÂÔØ£¬ÎÒÑ¡ÓõÄÊÇehel5µÄrpm°ü
MySQL-server-community-5.0.51a-0.rhel5.i386.rpm
MySQL-client-community ......
ÕâÀï¼ÌÐøÉÏһƪ¹ØÓÚÏ̺߳¯ÊýµÄ½éÉÜ£º
int pthread_detach (pthread_t thread_handle);
Õâ¸öº¯ÊýµÄ×÷ÓÃÊÇÈÃthread_handleÖ¸ÏòµÄÄ¿±êÏß³ÌÔÚÖÐÖ¹µÄʱºòÇåÀí×Ô¼ºÓµÓеÄÊý¾Ý¡£ÔÚÕâ¸öº¯Êýµ÷ÓÃÖ®ºó£¬
²»ÄÜÔÙ¶Ôthread_handleʹÓÃpthread_join¡£
ÏÔ¶øÒ×¼ûµÄÊÇ£¬Èç¹ûÎÒÃÇûÓжÔд´½¨µÄÏ̵߳÷ÓÃpthread_detach£¬Õâ¸öÏß ......
±¾ÎĽ«ÃèÊöÏ̵߳ÄÒ»¸ö±È½ÏÖØÒªµÄÒ»·½Ã棺Ïß³Ì˽ÓÐÊý¾Ý£¬ÈçÏ´úÂ룺
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
pthread_key_t kKey = 0;
void * ThreadProc(void* arg)
{
char* a = (char*)(arg);
sleep(2);
pthread_setspecific(kKey, a);
......