Linuxϵͳµ÷ÓÃfork()Ó÷¨Ïê½â
1. ÏÈ¿´ÏÂÃæ´úÂë:
#include<stdio.h>
#include <sys/types.h> //pid_tÀàÐͶ¨Òå
#include <unistd.h> //º¯Êýfork()£¬getpid()¶¨Òå
void main ()
{
pid_t pid;
pid=fork();
if (pid < 0)
printf("error in fork!");
else if (pid == 0)
printf("i am the child process, my process id is %d\n",getpid());
else
printf("i am the parent process, my process id is %d\n",getpid());
}
Òª¸ãÇå³þforkµÄÖ´Ðйý³Ì£¬¾Í±ØÐëÏȽ²Çå³þ²Ù×÷ϵͳÖеē½ø³Ì(process)”¸ÅÄî¡£
Ò»¸ö½ø³Ì£¬Ö÷Òª°üº¬Èý¸öÔªËØ£º
o. Ò»¸ö¿ÉÒÔÖ´ÐеijÌÐò£»
o. ºÍ¸Ã½ø³ÌÏà¹ØÁªµÄÈ«²¿Êý¾Ý£¨°üÀ¨±äÁ¿£¬ÄÚ´æ¿Õ¼ä£¬»º³åÇøµÈµÈ£©£»
o. ³ÌÐòµÄÖ´ÐÐÉÏÏÂÎÄ£¨execution context£©¡£
 
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
¸ÃÎļþÖеÄËùÓÐÖµ¶¼ÊÇ´ÓϵͳÆô¶¯¿ªÊ¼ÀۼƵ½µ±Ç°Ê±¿Ì¡£¸ÃÎļþÖ»¸ø³öÁËËùÓÐCPUµÄ¼¯ºÏÐÅÏ¢£¬²»Äܸóöÿ¸öCPUµÄÐÅÏ¢¡£
[root@localhost ~]# cat /proc/loadavg
4.61 4.36 4.15 9/84 5662
ÿ¸öÖµµÄº¬ÒåΪ£º
²ÎÊý ½âÊÍ
lavg_1 (4.61) 1-·ÖÖÓÆ½¾ù¸ºÔØ
lavg_5 (4.36) 5-·ÖÖÓÆ½¾ù¸ºÔØ
lavg_15(4.15) 15-·ÖÖÓÆ½¾ù¸ºÔØ
nr_run ......
µ±Ê¹ÓÃDSLÁ¬½ÓÉÏÍøÊ±£¬Èç¹ûÄãʹÓÃÊÇÓй̶¨»ò¾²Ì¬IPµØÖ·µÄDSLÁ¬½Ó£¬ÄÇôÅäÖò½ÖèºÍÇ°ÃæµÄ“ÍøÂçÅäÖÔÖÐÃèÊöµÄÊÇÒ»ÑùµÄ¡£Äã°ÑÒÔÌ«Íø½Ó¿ÚÁ¬½Óµ½DSL modemÉÏ£¬ÅäÖÃISPÌṩµÄIPµØÖ·£¬×ÓÍøÑÚÂ룬¹ã²¥µØÖ·£¬ºÍÍø¹ØÐÅÏ¢¡£ÖØÆôÍøÂçÉ豸ºóÄã¾ÍÓ¦¸ÃÁ¬ÉÏÍøÁË¡£¼Çס£¬Äã¿ÉÄÜ»¹ÐèÒªÕýÈ·µØÅäÖÃDNS·þÎñÆ÷¡£Èç ......
1. ÎļþϵͳµÄ¶¨Òå
Èý¸ö·½Ã棺
ijÖÖÎļþ¸ñʽ¡¢ÒÔijÖÖ¸ñʽ´æ´¢µÄÉ豸¡¢Ä³ÖÖ¹ÜÀíÎļþµÄ»úÖÆ¡£
2. VFSÓëÎļþϵͳ
VFSÊÇÐéÄâÎļþϵͳµÄËõд¡£²»Í¬µÄÎļþϵͳÓв»Í¬µÄ¸ñʽ¡¢¹ÜÀí»úÖÆºÍʵÏÖ¡£VFSÔòÊǸ÷ÖÖÎļþϵͳ±ØÐë×ñÊØµÄAPI¹æ·¶¡£
3. ½ø³ÌÓëÎļþϵͳ
task_structÖÐÓÐÁ½¸öÖ¸Õ룬һ¸öÖ¸Ïòfs_struct£¬¼Ç¼ÁËÎļþϵͳÏà¹ØµÄÊ ......
ºÇºÇ£¬ÖÕÓÚ½«linux 0.11 ÏÂÃæµÄbootÎļþ¼ÐϵÄÈý¸öÎļþ¶ÁÍ꣬ÏÂÃæÊÇÏà¹Ø×¢ÊÍ£¬Ã»Óлã±à»ù´¡µÄÈËÒ²ÊÇ¿ÉÒÔ¶ÁµÄ¡£·Ï»°ÉÙ˵£¬ÏÂÃæ¾ÍÊÇlinuxµÄÔ´ÂëÁË¡£
²Î¿¼×ÊÁÏ LinuxÄÚºËÍêȫעÊÍ.pdf
ÍøÉÏÏà¹Ø×ÊÁÏ
!ʱ¼ä : 2010-1-14
!¹¤×÷ : ÔĶÁlinux 0.11 Ô ......