LinuxϵͳϵĶàÏ̱߳à³ÌÈëÃŶþ
ÐÞ¸ÄÏ̵߳ÄÊôÐÔ
¡¡¡¡ÔÚÉÏÒ»½ÚµÄÀý×ÓÀÎÒÃÇÓÃpthread_createº¯Êý´´½¨ÁËÒ»¸öỊ̈߳¬ÔÚÕâ¸öÏß³ÌÖУ¬ÎÒÃÇʹÓÃÁËĬÈϲÎÊý£¬¼´½«¸Ãº¯ÊýµÄµÚ¶þ¸ö²ÎÊýÉèΪNULL¡£µÄÈ·£¬¶Ô´ó¶àÊý³ÌÐòÀ´Ëµ£¬Ê¹ÓÃĬÈÏÊôÐԾ͹»ÁË£¬µ«ÎÒÃÇ»¹ÊÇÓбØÒªÀ´Á˽âÒ»ÏÂÏ̵߳ÄÓйØÊôÐÔ¡£
¡¡¡¡ÊôÐԽṹΪpthread_attr_t£¬ËüͬÑùÔÚÍ·Îļþ/usr/include/pthread.hÖж¨Ò壬ϲ»¶×·¸ùÎʵ׵ÄÈË¿ÉÒÔ×Ô¼ºÈ¥²é¿´¡£ÊôÐÔÖµ²»ÄÜÖ±½ÓÉèÖã¬ÐëʹÓÃÏà¹Øº¯Êý½øÐвÙ×÷£¬³õʼ»¯µÄº¯ÊýΪpthread_attr_init£¬Õâ¸öº¯Êý±ØÐëÔÚpthread_createº¯Êý֮ǰµ÷Óá£ÊôÐÔ¶ÔÏóÖ÷Òª°üÀ¨ÊÇ·ñ°ó¶¨¡¢ÊÇ·ñ·ÖÀë¡¢¶ÑÕ»µØÖ·¡¢¶ÑÕ»´óС¡¢ÓÅÏȼ¶¡£Ä¬ÈϵÄÊôÐÔΪ·Ç°ó¶¨¡¢·Ç·ÖÀ롢ȱʡ1MµÄ¶ÑÕ»¡¢Ó븸½ø³ÌͬÑù¼¶±ðµÄÓÅÏȼ¶¡£
¡¡¡¡¹ØÓÚÏ̵߳İ󶨣¬Ç£Éæµ½ÁíÍâÒ»¸ö¸ÅÄÇá½ø³Ì£¨LWP£ºLight Weight Process£©¡£Çá½ø³Ì¿ÉÒÔÀí½âΪÄÚºËỊ̈߳¬ËüλÓÚÓû§²ãºÍϵͳ²ãÖ®¼ä¡£ÏµÍ³¶ÔÏß³Ì×ÊÔ´µÄ·ÖÅä¡¢¶ÔÏ̵߳ĿØÖÆÊÇͨ¹ýÇá½ø³ÌÀ´ÊµÏֵģ¬Ò»¸öÇá½ø³Ì¿ÉÒÔ¿ØÖÆÒ»¸ö»ò¶à¸öÏ̡߳£Ä¬ÈÏ×´¿öÏ£¬Æô¶¯¶àÉÙÇá½ø³Ì¡¢ÄÄЩÇá½ø³ÌÀ´¿ØÖÆÄÄЩÏß³ÌÊÇÓÉϵͳÀ´¿ØÖƵģ¬ÕâÖÖ×´¿ö¼´³ÆÎª·Ç°ó¶¨µÄ¡£°ó¶¨×´¿öÏ£¬Ôò¹ËÃû˼Ò壬¼´Ä³¸öÏ̶̹߳¨µÄ"°ó"ÔÚÒ»¸öÇá½ø³ÌÖ®ÉÏ¡£±»°ó¶¨µÄÏ߳̾ßÓнϸߵÄÏìÓ¦ËÙ¶È£¬ÕâÊÇÒòΪCPUʱ¼äƬµÄµ÷¶ÈÊÇÃæÏòÇá½ø³ÌµÄ£¬°ó¶¨µÄÏ߳̿ÉÒÔ±£Ö¤ÔÚÐèÒªµÄʱºòËü×ÜÓÐÒ»¸öÇá½ø³Ì¿ÉÓá£Í¨¹ýÉèÖñ»°ó¶¨µÄÇá½ø³ÌµÄÓÅÏȼ¶ºÍµ÷¶È¼¶¿ÉÒÔʹµÃ°ó¶¨µÄÏß³ÌÂú×ãÖîÈçʵʱ·´Ó¦Ö®ÀàµÄÒªÇó¡£
¡¡¡¡ÉèÖÃḬ̈߳ó¶¨×´Ì¬µÄº¯ÊýΪ pthread_attr_setscope£¬ËüÓÐÁ½¸ö²ÎÊý£¬µÚÒ»¸öÊÇÖ¸ÏòÊôÐԽṹµÄÖ¸Õ룬µÚ¶þ¸öÊǰó¶¨ÀàÐÍ£¬ËüÓÐÁ½¸öȡֵ£º PTHREAD_SCOPE_SYSTEM£¨°ó¶¨µÄ£©ºÍPTHREAD_SCOPE_PROCESS£¨·Ç°ó¶¨µÄ£©¡£ÏÂÃæµÄ´úÂë¼´´´½¨ÁËÒ»¸ö°ó¶¨µÄÏ̡߳£
#include £¼pthread.h£¾
pthread_attr_t attr;
pthread_t tid;
/*³õʼ»¯ÊôÐÔÖµ£¬¾ùÉèΪĬÈÏÖµ*/
pthread_attr_init(&attr);
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
pthread_create(&tid, &attr, (void *) my_function, NULL);
¡¡¡¡Ï̵߳ķÖÀë״̬¾ö¶¨Ò»¸öÏß³ÌÒÔʲôÑùµÄ·½Ê½À´ÖÕÖ¹×Ô¼º¡£ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃDzÉÓÃÁËÏ̵߳ÄĬÈÏÊôÐÔ£¬¼´Îª·Ç·ÖÀë״̬£¬ÕâÖÖÇé¿öÏ£¬ÔÓеÄÏ̵߳ȴý´´½¨µÄÏ߳̽áÊø¡£Ö»Óе±pthread_join£¨£©º¯Êý·µ»ØÊ±£¬´´½¨µÄÏ̲߳ÅËãÖÕÖ¹£¬²ÅÄÜÊÍ·Å×Ô¼ºÕ¼ÓõÄϵͳ×ÊÔ´¡£¶ø·ÖÀëÏ̲߳»ÊÇÕâÑù×ӵģ¬ËüûÓб»ÆäËûµÄÏß³ÌËùµÈ´ý£¬×Ô¼ºÔËÐнáÊøÁË£¬Ïß³ÌÒ²¾ÍÖÕÖ¹ÁË£¬ÂíÉÏÊÍ·Åϵͳ×ÊÔ´¡£³ÌÐòÔ±Ó¦¸
Ïà¹ØÎĵµ£º
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
µ±Ç°£¬Ò»¸öºÜÃ÷ÏÔµÄÊÂʵÊÇ£¬
Linux
×ÀÃæ²¢²»ÆÕ¼°¡£ÔÒòºÎÔÚ£¿
ÔÚ
XP
µÁ°æº£ÑóÖУ¬ÆÕ¼°
Linux
£¬Ì¸ºÎÈÝÒ×£¿Ê®¼¸ÄêÁË£¬Ëµ¾¡
XP
µÁ°æµÄ»µ»°Ò²ÎÞÓ㨲»ÁéÑ飩¡£
Linux
¹ú²ú»¯Ò²Ê§°ÜÁË¡£ÎÊÌ⾿¾¹ ......
1. ²é¿´Äں˰汾ÃüÁ
1) [root@q1test01 ~]# cat /proc/version
Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 20050721 (Red Hat
3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005
2) [root@q1test01 ~]# uname -a
Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 ......
ÐéÄâ»úÏÂlinuxÏ¿ÉÒÔÓÃʹÓÃÖ÷»úµÄ´®¿Ú(ÐéÄâ»úÌí¼ÓÓ²¼þÀïÃæ¿ÉÑ¡)
linuxϵij¬¼¶ÖÕ¶Ëminicom
½øÈ볬¼¶Öն˵ÄÃüÁî
[root]#minicom -s
Ñ¡Ôñ´®¿ÚÒ»Ïî
ÐèÒªÉ趨´®¿ÚttyS0£¨ÄãµÄ´®¿ÚµÄÉ豸Ãû£©
²¨ÌØÂÊ115200
Ó²¼þÁ÷¿Ø¹Ø±Õ£¨Ä¬ÈÏÊÇ¿ªÆô£¬Èç¹û¿ªÆôµÄ»°£¬²»ÄÜÓüüÅÌÊäÈ룩
Èí¼þÁ÷¿Ø¹Ø±Õ
Save setup as dfl
exit
OK£¬Õâ¾Í¿É ......
1¡¢ÒýÑÔ
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ» ......
Windows ºÍ Linux µÄIPC API¶ÔÓ¦±í
Table 1. Process mapping
Windows
Linux
Classification
CreateProcess()
CreateProcessAsUser()
fork()
setuid()
exec()
Mappable
TerminateProcess()
kill()
Mappable
SetThreadpriority()
GetThreadPriority()
Setpriority()
getPriority()
Mappa ......