亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 2.html

?? 介紹linux下文件和設備編程
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
pthread_t     tid;         /* 線程號 */<br>oskit_u32_tflags;        /* 線程狀態標志 */<br>pthread_lock_t  lock;        /* 鎖*/<br>queue_chain_t   chain;        /* 隊列鏈 */<br>int        preempt;       /*線程優先級 */<br>/*以下用于對死鎖的處理*/<br>pthread_mutex_t  mutex;        /* 互斥位(死鎖保護)*/<br>pthread_cond_t  cond;        /* 等待死鎖標志=1 */<br>int        dead;        /*死鎖了 */<br>/*例子所用到的資源*/<br>int        cputime;       /* 占用CPU的時間 */<br>intcpticks;       /* 上一秒所占的節拍數 */<br>oskit_u32_t    pctcpu;       /* CPU的占用率*/<br>int        childtime;      /* 子線程所占用的CPU的開銷*/<br>/*發送信息所用的變量*/<br>pthread_lock_t  waitlock;      /* 等待鎖*/<br>oskit_u32_twaitflags;      /* 等待標志位 */<br>pthread_cond_t  *waitcond;      /* 等待條件變量*/<br>struct osenv_sleeprec  *sleeprec;  /*一個osenv_sleep中的線程*/<br>/*以下是進程通訊要用到的*/<br>void       *msg;        /* 指向要發送的消息的指針*/<br>oskit_size_t   msg_size;      /* 消息的大小 */<br>pthread_t     tid;         /*線程號 */<br>void       *reply;       /* 指向響應信息的指針*/<br>oskit_size_t   reply_size;     /* 響應內容的大小*/<br>queue_head_t   senders;       /* 發送隊列中的發送者 */<br>queue_chain_tsenders_chain;    /* 發送隊列指針 */<br>/* 以下是所用到的時鐘 */<br>structoskit_timer *condtimer;<br>/* 線程的休眠和喚醒是用一個單獨的計時器實現的 */<br>structoskit_timer *sleeptimer;<br>/* 以下是所用到的信號 */<br>pthread_lock_t  siglock;       /*保護鎖信號 */<br>sigset_t     sigmask;       /* 阻塞信號*/<br>sigset_t     sigpending;     /* 未決信號 */<br>sigset_t     sigwaiting;     /*等待信號的信號 */<br>oskit_u32_t    eip;         /* 頁處理故障信號 */<br>/* 鍵值通常是一個固定的隊列*/<br>void       *keyvalues[PTHREAD_KEYS_MAX]; /* 鍵值 */<br>/* 以下用于清除操作*/<br>pthread_cleanup_t *cleanups;     /* 清楚操作鏈*/<br>char       cancelstate;     /* 取消狀態 */<br>char       canceltype;     /*取消類型 */<br>/* 以下是單獨用于調度的鎖*/<br>pthread_lock_t  schedlock;<br>void       *rtai_priv;<br>intpolicy;       /* 調度策略 */<br>int        priority;      /* 當前的優先級 */<br>structscheduler_entry *scheduler;  /* 調度程序入口 */<br>int        policy;       /* 調度策略*/<br>int        priority;      /* 當前優先級 */<br>int        base_priority;    /*初始優先級 */<br>int        ticks;        /* 調度所省下的節拍*/<br>oskit_timespec_t start;        /* 下次運行的時間*/<br>oskit_timespec_t deadline;      /* 下次運行的時間*/<br>oskit_timespec_t period;       /* 兩次執行見的間隔*/<br>queue_head_t   waiters;       /* 正在等待的線程 */<br>queue_chain_twaiters_chain;    /* 線程隊列鏈 */<br>struct pthread_thread *waiting_for;  /* 所等待的線程*/<br>struct pthread_thread *inherits_from; /* 線程從何繼承*/<br>/*以下是CPU的繼承*/<br>struct pthread_thread *scheduler;   /* 線程調度程序人口*/<br>schedmsg_t    unblockmsg;<br>schedmsg_queue_t *msgqueue;<br>sched_wakecond_t wakeup_cond;/* 喚醒條件 */<br>schedflags_t   schedflags;     /* 標志 */<br>intdonate_rc;      /* 從捐贈線程返回的值 */<br>int        timeout;       /* 毫秒*/<br>queue_head_t   donors;       /* 捐贈資源的線程 */<br>queue_chain_tdonors_chain;    /* 捐贈隊列鏈 */<br>struct pthread_thread *donating_to;  /* 被捐贈的線程*/<br>struct pthread_thread *inherits_from; /* 線程從何繼承 */<br>structpthread_thread *nextup;    /* 下一個要執行的線程 */<p><br>2.2 pthreads/pthread_create.c<p>此源碼文件包括了一套完整的線程創建機制,它是全部線程的根源所在,通過閱讀下面的函數分析,將使讀者了解OSKit到底是用什么函數來具體實現線程創建的。我認為在上一節的理論指導下對代碼進行分析,要比泛泛的闡述理論更容易讓讀者接受,更能加深在讀者腦海中的印象。<p>2.2.1 創建線程<br>說明:這就是我們在第一節中提到的創建線程的函數,所有由用戶完成的創建線程的操作,都要調用它來實現。<br>intpthread_create ( pthread_t *tid, const pthread_attr_t *attr,<br>void * (*function )( void * ), void *argument )<br>tid: 指向線程存儲位置的指針<br>attr:指向線程屬性的指針<br>*(*function)(void *): 當線程初始化時所調用的函數<br>*argument: 函數功能<p>2.2.2創建內部線程<br>說明:該函數用于系統核心部分創建核心線程,而一般的用戶沒有調用它的權利,只有系統核心才可以調用。<br>pthread_thread_t*pthread_create_internal ( void * ( *function)( void *), void *argument,constpthread_attr_t *attr)<br>注:內部線程創建時,將阻塞所有的信號<br>sigfillset(pthread-&gt;sigmask)<p>2.2.3為主進程創建一個備份線程<br>說明:出于系統安全的原因,OSKit定義了此函數,用于對主線程進行備份。由于線程創建子線程,子線程又創建自己的子線程,如此下去,將產生一個以主線程為根節點的樹形結構,所以一旦主線程丟失,將有可能導致系統崩潰,所以應對其進行備份。<br>pthread_thread_t*pthread_init_mainthread ( pthread_thread_t *pthread )<p>2.2.4初始化創建線程的線程<br>說明:這和UNIX中那個創建進程的進程有些類似,它唯一的工作就是為主線程創建子線程,并且,每個線程都包含一個該線程。<br>pthread_thread_t*thread_init_mainthread ( pthread_thread_t *pthread )<p>2.2.5為等待和休眠的線程創建一個等待時間<br>說明:由于調度的原因,一般線程不可能一直占用CPU,也不可能永遠被掛起,所以OSKit為規定線程的等待時間定義了此函數。<br>voidpthread_prepare_timer ( pthread_thread_t *pthread )<p><br>2.3 pthreads/pthread_attr.c<p>此源碼文件包括了一套完整的線程屬性的初始化機制,它與上一節的線程創建共同作用,規定了線程在創建之初的屬性,通過閱讀下面的函數分析,將使讀者了解OSKit到底是用什么函數來具體實現線程屬性的初始化。<p>2.3.1線程初始化的數據結構<br>說明:系統在創建新線程的時候,會調用此函數來規定被創建線程的屬性,所以此函數在線程屬性機制中站有最主要的地位,是一切線程屬性函數調用的源泉,希望讀者給以充分的重視。<br>intpthread_attr_init ( pthread_attr_t *attr )<br>  attr-&gt;detachstate =PTHREAD_CREATE_JOINABLE; /* 線程與其他線程關聯*/<br>  attr-&gt;priority =PRIORITY_NORMAL; /* 線程的優先級 */<br>  attr-&gt;stacksize = PTHREAD_STACK_MIN; /*線程所占堆棧的 */<br>  attr-&gt;guardsize = DEFAULT_STACKGUARD; /* 警戒堆棧的大小 */<br>  attr-&gt;stackaddr = 0; /* 堆棧的大小 */<br>  attr-&gt;policy = SCHED_RR; /*線程調度類型 */<br>  attr-&gt;inherit = PTHREAD_EXPLICIT_SCHED; /* 線程繼承類型 */<br>  注:memset 的數據結構 /* \oskit\libc\string\memset.c */<br>  void *memset(void *tov, intc, size_t len)<br>  {  register char *to = tov;<br>     while (len-- &gt;0)<br>     *to++ = c;<br>     return tov;<br>  }<br>  tov: 指向內存的首地址 c: 分配類型 len:分配長度<p>2.3.2線程屬性的撤銷<br>說明:這個函數是上一個函數的逆操作,在撤銷一個線程的同時,其屬性也應相應地被撤銷,所以OSKit定義了此函數來實現該功能。<br>intpthread_attr_destroy ( pthread_attr_t *attr )<br>  memset((void *) attr, -1,sizeof(*attr)); /* 撤銷指針并釋放內存*/<p>2.3.3設置線程的警戒堆棧大小<br>說明:警戒堆棧在操作系統中被廣泛使用,它是源于UNIX的進程間通信,在UNIX系統中,接受進程的消息緩沖可能小于發送進程。所以,當消息到來的時候,為了避免溢出造成的信息丟失,系統創建了警戒堆棧,用來存儲溢出的消息。而OSKit把它用于線程間通信的保護,但用法與UNIX大同小異。<br>intpthread_attr_setguardsize ( pthread_attr_t *attr, size_t guardsize )<p>2.3.4得到警戒堆棧的大小<br>說明:由于OSKit為每個接受線程設置警戒堆棧,所以定義此函數,為的是系統能方便的得到每個接受線程的警戒堆棧的大小,這同樣是出于對安全的考慮。<br>intpthread_attr_getguardsize ( const pthread_attr_t *attr, size_t *guardsize )<p>2.3.5設置線程的分離狀態<br>說明:上邊曾經提到,系統中的線程樹,而線程與線程之間很可能并不是完全獨立的,即使他們處于不同的層次,也可能有一定的相關性或互斥性,所以定義此函數用來規定線程之間的互斥性,即分離狀態是完全有必要的。<br>intpthread_attr_setdetachstate( pthread_attr_t *attr, int detachstate )<p>2.3.6得到線程的分離狀態<br>說明:在規定了分離狀態之后,若A線程要與B線程發生關聯的時候,它必須先看看B線程和其他線程的關系,所以要定義此函數來得到B線程與其他線程的分離狀態,提供給A,然后A在根據具體情況決定是否與B發生關系。<br>intpthread_attr_getdetachstate ( const pthread_attr_t *attr, int *detachstate)<br>  *detachstate = attr-&gt;detachstate;<p>2.3.7設置線程的繼承關系<br>說明:當線程創建子線程的時候,上邊我提到的那個創建線程的線程會為他們父子之間規定繼承關系,即子線程繼承父線程。<br>intpthread_attr_setinheritsched ( pthread_attr_t *attr, int inheritstate)<br>  attr-&gt;inherit = inheritstate;<p>2.3.8得到線程的繼承狀態<br>說明:當系統要在復雜的線程樹中得到繼承關系的時,調用此函數便能達到預期的目的。OSKit定義此函數,為的是能在復雜的線程樹中一眼看穿某兩個線程之間的關系。<br>intpthread_attr_getinheritsched ( const pthread_attr_t *attr, int *inheritstate)<br>  *inheritstate = attr-&gt;inherit;<p>2.3.9設置線程的調度參數<br>說明:OSKit提供了多種線程調度方式供選擇,而且還為每個線程在創建的時候規定了一種調度算法,系統在創建線程的時候調用下面的函數來完成這項工作。<br>intpthread_attr_setschedparam ( pthread_attr_t *attr,const struct sched_param*param )<br>  int pri      = param-&gt;priority;<br>  attr-&gt;start    =param-&gt;start; /* 線程開始參數 */<br>  attr-&gt;period    = param-&gt;period; /*線程的周期 */<br>  attr-&gt;deadline   = param-&gt;deadline; /* 線程運行的最終時限 */<p>2.3.10得到線程調度的參數<br>說明:在OSKit中,每個線程都有其自身的調度方式,換句話說,就是線程的調度方式仿佛是線程的一個屬性,在創建線程的時候就隨線程被規定了,所以調度程序可以通過下面的函數來得到某個線程的調度算法和此時它的優先級。<br>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久理论电影网| 成人免费视频caoporn| 91久久精品一区二区三| 精品欧美一区二区在线观看| 一区二区三区日韩欧美精品 | 91精品国产一区二区三区蜜臀| 国产精品国产自产拍高清av王其| 老司机免费视频一区二区| 91麻豆精品国产综合久久久久久| 一区二区三区四区五区视频在线观看 | 亚洲一区二区在线观看视频| 91视频在线看| 亚洲高清在线精品| 91精品国产欧美一区二区18| 男男成人高潮片免费网站| 欧美一区二区二区| 国产高清不卡一区| 中文字幕五月欧美| 欧美日韩成人一区二区| 蜜桃视频第一区免费观看| 久久综合丝袜日本网| 成人h版在线观看| 亚洲动漫第一页| 欧美videofree性高清杂交| 国产成人综合在线观看| 亚洲黄色小视频| 精品蜜桃在线看| 色视频成人在线观看免| 久久99精品一区二区三区| 国产精品久久久久久久久免费相片| 欧美在线视频你懂得| 激情都市一区二区| 亚洲老妇xxxxxx| 26uuu国产在线精品一区二区| 99视频热这里只有精品免费| 日本一区中文字幕| 亚洲免费观看高清完整版在线观看熊| 欧美疯狂做受xxxx富婆| 色婷婷精品久久二区二区蜜臂av| 蜜桃传媒麻豆第一区在线观看| 国产精品久久久久aaaa| 欧美videossexotv100| 欧美人牲a欧美精品| 色综合久久久久综合99| 成人aa视频在线观看| 狠狠色丁香婷综合久久| 老司机精品视频线观看86| 中文字幕一区二区三中文字幕| 欧美精品一区男女天堂| 7777女厕盗摄久久久| 欧美日韩美少妇| 欧美日韩一区二区三区不卡| 91在线观看免费视频| 国产91精品久久久久久久网曝门| 捆绑调教美女网站视频一区| 亚洲国产精品自拍| 性欧美疯狂xxxxbbbb| 亚洲va韩国va欧美va| 亚洲高清免费视频| 天天综合日日夜夜精品| 日韩精品亚洲一区二区三区免费| 亚洲国产成人tv| 久久99九九99精品| 成人av在线一区二区三区| 色www精品视频在线观看| 欧美日韩aaa| 久久综合狠狠综合久久激情 | 欧美一区二区三区的| 欧美一区二区三区在线观看| 精品国产3级a| 亚洲视频一二三| 欧美a级一区二区| 成人免费看视频| 欧美午夜不卡在线观看免费| 91精品国产综合久久久久| 精品区一区二区| 一区二区欧美国产| 国模娜娜一区二区三区| 91久久精品一区二区三区| www久久精品| 亚洲自拍偷拍综合| 国产91综合一区在线观看| 欧美日韩日日骚| 国产区在线观看成人精品 | 天天操天天综合网| 成人免费va视频| 精品国产伦一区二区三区观看体验| 国产精品国产三级国产专播品爱网 | jizz一区二区| 精品成人a区在线观看| 亚洲18影院在线观看| 成人福利在线看| 久久久国际精品| 久久99九九99精品| 精品88久久久久88久久久| 天天影视网天天综合色在线播放| www.欧美.com| 亚洲图片欧美激情| 成人综合日日夜夜| 国产精品美女久久久久久| 国产精品影音先锋| 久久久久久一级片| 成人aa视频在线观看| 亚洲免费在线电影| 国产成人av福利| 91国在线观看| 精品久久久久av影院| 亚洲综合视频在线观看| 成人中文字幕合集| 亚洲综合在线观看视频| 亚洲一区视频在线观看视频| 久久精品久久久精品美女| 欧美精品三级在线观看| 午夜精品一区二区三区电影天堂 | 在线观看国产日韩| 亚洲电影中文字幕在线观看| 日韩欧美一级特黄在线播放| 日本中文字幕一区二区有限公司| 欧美午夜精品久久久| 日韩理论电影院| 5月丁香婷婷综合| 国产乱码精品一区二区三区忘忧草 | 一片黄亚洲嫩模| 91精品午夜视频| 成人高清伦理免费影院在线观看| 亚洲精品国产成人久久av盗摄 | 成人av在线播放网址| 天天爽夜夜爽夜夜爽精品视频| 国产亚洲福利社区一区| 日本韩国精品一区二区在线观看| 日本视频在线一区| 曰韩精品一区二区| 亚洲国产精品成人久久综合一区 | 91无套直看片红桃| 精品夜夜嗨av一区二区三区| 亚洲精品自拍动漫在线| 亚洲国产精品激情在线观看| 欧美巨大另类极品videosbest| www.一区二区| 国产精品一区免费视频| 黑人巨大精品欧美黑白配亚洲| 性感美女久久精品| 亚洲综合在线第一页| 最新欧美精品一区二区三区| 精品福利在线导航| 精品国产不卡一区二区三区| 欧美一区二区三区性视频| 欧美日韩精品专区| 91麻豆精品国产91久久久更新时间| 一本到不卡免费一区二区| 不卡电影一区二区三区| 丰满白嫩尤物一区二区| 国产精品一二三四| 成人听书哪个软件好| 成人av片在线观看| 日本精品免费观看高清观看| 欧美中文字幕不卡| 8v天堂国产在线一区二区| 欧美精品1区2区| 精品久久久三级丝袜| 国产精品女人毛片| 午夜精品一区在线观看| 精久久久久久久久久久| a级高清视频欧美日韩| 日本精品免费观看高清观看| 欧美精品欧美精品系列| 欧美va亚洲va| 依依成人精品视频| 日本欧美一区二区三区乱码 | 日韩高清不卡一区二区| 国产一区欧美二区| 97se亚洲国产综合自在线| 在线观看日产精品| 久久综合色8888| 亚洲自拍偷拍九九九| 国产美女一区二区| 欧美乱熟臀69xxxxxx| 亚洲国产精品成人综合| 美女视频免费一区| 日本精品一级二级| 国产精品色哟哟网站| 蜜臀av一级做a爰片久久| 色吧成人激情小说| 国产欧美精品一区二区色综合朱莉| 亚洲国产视频a| 色综合久久久久久久久久久| 国产日韩欧美激情| 国产精选一区二区三区| 91精品国产免费| 午夜a成v人精品| 欧美日韩一区高清| 亚洲精品福利视频网站| 波多野结衣中文字幕一区| 国产日韩欧美亚洲| 国产一区二区福利视频| 精品国精品国产| 看片网站欧美日韩| 欧美岛国在线观看| 国产麻豆精品视频| 久久你懂得1024|