核心執行緒學習筆記總結2

2021-05-22 00:05:12 字數 1432 閱讀 4691

#

include

< linux/ module. h>

#include

< linux/ kernel. h>

#include

< linux/ init. h>

#include

< linux/ sched. h>

module_author(

"t-bagwell_cu");

module_license(

"gpl");

static declare_wait_queue_head( myevent_waitqueue)

;extern

unsigned

int myevent_id;

static

int example_kernel_thread(

void

* unused)

}set_current_state( task_running)

;remove_wait_queue(

& myevent_waitqueue,

& wait)

;printk( kern_warning "this is in example_kernel_thread/n");

return 0;

}static __init int init_hello_kernel_thread(

void

)else

return 0;

}static __exit void cleanup_hello_kernel_thread(

void

)module_init( init_hello_kernel_thread)

;module_exit( cleanup_hello_kernel_thread)

;寫乙個makefile來編譯這個module

kerneldir =

/ usr/ src/ kernels/ 2. 6. 27. 5- 117. fc10. i686

pwd :=$

( shell pwd)

obj- m :

= kernel_thread. o

modules:

$( make)

- c $

( kerneldir) m=

$( pwd) modules

clean:

rm - rf *

. o *

. ko test_chrdev module.

* module*

*. mod. c

編譯完成以後,可以看一下結果:

從上圖可以看出來,kernel_thread.ko檔案已經被insmod進了modules裡

接下來可以看一下程序:

這個核心執行緒也被建立出來了

執行緒學習筆記2

在兩個程序間進行socket通訊中,在其中乙個程序中建立新的執行緒,用於監聽,程式設計中發現自己對執行緒的操作僅限於執行緒的建立,銷毀,以及互斥量的操作,感覺還有許多關於執行緒的東西沒有掌握,so,需要好好學習總結一下,不足之處望指出 為什麼要引入執行緒呢?雖然程序可以提高cpu的利用率,但是程序之...

學習筆記 原子位 核心執行緒

原子操作主要用於實現資源計數 linux中的基本原子操作 atomic read atomic set atomic add atomic sub atomic cmpxchg atomic clear mask while atomic cmpxchg v,1,0 1 for i 0 i 3 i ...

linux核心學習筆記2

選擇符用來查詢段描述符的,其中有一位會標明是去全域性描述符表中查詢還是去區域性描述符表中查詢。實模式下 直接在段暫存器中存放段基位址。每乙個段暫存器 即選擇符 都有乙個高速緩衝暫存器,為了加快訪問速度。為了避免每次儲存器訪問時,都要訪問描述符表,讀取描述符並對段進行解碼得到描述符本身的各種資訊,每個...