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

LinuxϵĽø³Ì¿ØÖƿ飨PCB£©


½ø³ÌÔÚ²Ù×÷ϵͳÖж¼ÓÐÒ»¸ö»§¿Ú£¬ÓÃÓÚ±íʾÕâ¸ö½ø³Ì¡£Õâ¸ö»§¿Ú²Ù×÷ϵͳ±»³ÆÎªPCB£¨½ø³Ì¿ØÖƿ飩£¬ÔÚlinuxÖоßÌåʵÏÖÊÇ
task_structÊý¾Ý½á¹¹£¬Ëü¼Ç¼ÁËһϼ¸¸öÀàÐ͵ÄÐÅÏ¢£º
1.״̬ÐÅÏ¢£¬ÀýÈçÕâ¸ö½ø³Ì´¦ÓÚ¿ÉÖ´ÐÐ״̬£¬ÐÝÃߣ¬¹ÒÆðµÈ¡£
2.ÐÔÖÊ£¬ÓÉÓÚunixÓкܶà±äÖÖ£¬½ø³ÌÓÐ×Ô¼º¶ÀÌØµÄÐÔÖÊ¡£
3.×ÊÔ´£¬×ÊÔ´µÄÁ´½Ó±ÈÈçÄڴ棬»¹ÓÐ×ÊÔ´µÄÏÞÖÆºÍȨÏ޵ȡ£
4.×éÖ¯£¬ÀýÈç°´ÕÕ¼Ò×å¹ØÏµ½¨Á¢ÆðÀ´µÄÊ÷£¨¸¸½ø³Ì£¬×Ó½ø³ÌµÈ£©¡£
ÏÂÃæÊÇÕâÒ»¸öÊý¾Ý½á¹¹
struct task_struct {
    /*
     * offsets of these are hardcoded elsewhere - touch with care
     */
    volatile long state;    /* -1 unrunnable, 0 runnable, >0 stopped
*/ //½ø³Ìµ±Ç°µÄ״̬
    unsigned long flags;    /* per process flags, defined below */   
//·´Ó¦½ø³Ì״̬µÄÐÅÏ¢£¬µ«²»ÊÇÔËÐÐ״̬£¬¶¨Òå¼ûÏÂ
    int sigpending; //½ø³ÌÊÕµ½ÁËÐźţ¬µ«ÉÐδ´¦Àí
    mm_segment_t addr_limit;    /* thread address space: //Ðé´æµØÖ·ÉÏÏÞ
                         0-0xBFFFFFFF for user-thead
                        0-0xFFFFFFFF for kernel-thread
                     */
    struct exec_domain *exec_domain;
    volatile long need_resched;    //Óë½ø³Ìµ÷¶ÈÓйرíʾÓû§´Óϵͳ¿Õ¼ä°´·µ»ØÓû§¿Õ¼äÒªÖ´ÐеÄÒ»´Îµ÷¶È
    unsigned long ptrace;
    int lock_depth;        /* Lock depth */
/*
 * offset 32 begins here on 32-bit platforms. We keep
 * all fields in a single cacheline that are needed for
 * the goodness() loop in schedule().
 */
    long counter; //Óë½ø³Ìµ÷¶ÈÏà¹Ø
    long ni


Ïà¹ØÎĵµ£º

Linux studying

2010-3-8
Ò»¡¢gccµ÷ÊÔ£º
Èç¹û±àÒëʱ£¬Ê¹ÓÃÏÂÃæµÄÖ¸Áî(Ôö¼ÓÁ˲ÎÊý-g)£¬¾Í»áÉú³É´øÔ´´úÂëµ÷ÊÔ·ûºÅµÄ¿ÉÖ´ÐÐÎļþ¡£±àÒëÐγɵĿÉÖ´ÐÐÎļþÓÐ7KB¡£Ö®ËùÒÔÔö¼ÓÁË2KB£¬¾ÍÊÇÒòΪÔö¼ÓµÄµ÷ÊÔ·ûºÅ¡£
gcc -o calc calcutlator.c -g
½øÒ»²½µØ£¬¾Í¿ÉÒÔÖ´ÐÐÏÂÃæµÄÖ¸ÁîÆô¶¯µ÷ÊÔ¹¤¾ß½øÈëµ÷ÊÔ»·¾³¶Ô³ÌÐò½øÐе÷ÊÔÁË¡£
gdb calc
ÔÚµ÷ÊÔ»·¾³Ï ......

LinuxÏÂCÓïÑÔ±à³Ì ÎļþµÄ²Ù×÷

ǰÑÔ: 
    ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý. 
1.ÎļþµÄ´´½¨ºÍ¶Áд 
2.ÎļþµÄ¸÷¸öÊôÐÔ 
3.Ŀ¼ÎļþµÄ²Ù×÷ 
4.¹ÜµÀÎļþ 
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд 
......

linux socketµÄselectº¯ÊýÀý×Ó

ʹÓÃselectº¯Êý¿ÉÒÔÒÔ·Ç×èÈûµÄ·½Ê½ºÍ¶à¸ösocketͨÐÅ¡£³ÌÐòÖ»ÊÇÑÝʾselectº¯ÊýµÄʹÓ㬹¦Äܷdz£¼òµ¥£¬¼´Ê¹Ä³¸öÁ¬½Ó¹Ø±ÕÒÔºóÒ²²»»áÐ޸ĵ±Ç°Á¬½ÓÊý£¬Á¬½ÓÊý´ïµ½×î´óÖµºó»áÖÕÖ¹³ÌÐò¡£
1. ³ÌÐòʹÓÃÁËÒ»¸öÊý×éfd_A£¬Í¨ÐÅ¿ªÊ¼ºó°ÑÐèҪͨÐŵĶà¸ösocketÃèÊö·û¶¼·ÅÈë´ËÊý×é¡£
2. Ê×ÏÈÉú³ÉÒ»¸ö½Ðsock_fdµÄsocketÃèÊö·û£¬ÓÃÓÚ¼àÌý¶Ë¿ ......

linuxÏÂntpʵÏÖ

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define NTP_SERVER "clock.via.net"
#define ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ