Presentation is loading. Please wait.

Presentation is loading. Please wait.

2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab11 1.

Similar presentations


Presentation on theme: "2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab11 1."— Presentation transcript:

1 2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab11 1

2 目錄 Contents 線程屬性介紹 Beaglebone 線程屬性範例 Beaglebone 實作 Beaglebone 2

3 線程屬性介紹 1-1 線程屬性 Posix線程中的線程屬性pthread_attr_t主要包括scope屬性、detach屬性、堆棧地址、堆棧大小、優先級,在頭文件/usr/include/pthread.h中定義。在pthread_create中,把第二個參數設置為NULL的話,將采用默認的屬性配置。 pthread_attr_t的主要屬性的如下: __detachstate、__schedpolicy、__schedparam、__inheritsched、__scope 在設置線程屬性 pthread_attr_t 之前,通常先調用pthread_attr_init來初始化,之後來調用相應的屬性設置函數。 3

4 1-2 線程屬性介紹 線程屬性 __scope,表示線程間競爭CPU的范圍,也就是說線程優先級的有效范圍。
POSIX的標準中定義瞭兩個值:PTHREAD_SCOPE_SYSTEM和PTHREAD_SCOPE_PROCESS,前者表示與系統中所有線程一起競爭CPU時間,後者表示僅與同進程中的線程競爭CPU。 目前LinuxThreads僅實現瞭PTHREAD_SCOPE_SYSTEM一值。 __schedpolicy,表示新線程的調度策略。 三種排程策略: SCHED_OTHER 分時排程策略。 SCHED_FIFO實時排程策略,先到先服務。一旦佔用cpu則一直執行。一直執行直到有更高優先順序任務到達或自己放棄。 SCHED_RR實時排程策略,時間片輪轉。當程序的時間片用完,系統將重新分配時間片,並置於就緒佇列尾。放在佇列尾保證了所有具有相同優先順序的RR任務的排程公平。 4

5 1-3 線程屬性介紹 線程屬性 標頭檔: 函式宣告: #include <pthread.h>
int pthread_attr_setscope (pthread_attr_t* attr, int scope); 說明: 設置線程 __scope 屬性。表示線程間競爭CPU的範圍,也就是說線程優先級的有效範圍。 PTHREAD_SCOPE_SYSTEM: 表示與系統中所有線程一起競爭CPU時間 PTHREAD_SCOPE_PROCESS: 表示僅與同進程中的線程競爭CPU 默認為PTHREAD_SCOPE_PROCESS。 目前LinuxThreads僅實現PTHREAD_SCOPE_SYSTEM一值。 int pthread_attr_getscope (pthread_attr_t* attr, int *scope); 傳回值: 傳回 0 代表成功,非0 代表失敗 5

6 1-4 線程屬性介紹 線程屬性 標頭檔: 函式宣告: #include <pthread.h>
int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy); 說明: SCHED_OTHER 分時排程策略。 SCHED_FIFO實時排程策略,先到先服務。一旦佔用cpu則一直執行。一直執行直到有更高優先順序任務到達或自己放棄。 SCHED_RR實時排程策略,時間片輪轉。當程序的時間片用完,系統將重新分配時間片,並置於就緒佇列尾。放在佇列尾保證了所有具有相同優先順序的RR任務的排程公平。 int pthread_attr_getschedpolicy(pthread_attr_t *attr, int *policy); 傳回值: 傳回 0 代表成功,非0 代表失敗 6

7 2-1 線程屬性範例 線程屬性程式碼 (scope) gcc -o posix-sched posix-sched.c -lpthread
7

8 線程屬性範例 2-1 線程屬性程式碼 (policy) gcc -o posix-rt posix-rt.c -lpthread 8

9 將兩個範例合併,設置為PTHREAD_SCOPE_SYSTEM和SCHED_OTHER。
實作 將兩個範例合併,設置為PTHREAD_SCOPE_SYSTEM和SCHED_OTHER。 9

10 補充資料 實作 http://blog.csdn.net/hslinux/article/details/7951065
10

11 Thanks 作業系統實習 Operating Systems


Download ppt "2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab11 1."

Similar presentations


Ads by Google