使用者空間:
1.unsigned int sleep(unsigned int seconds);
sleep()會使當前程式休眠seconds秒。如果sleep()沒睡飽,它將會返回還需要補眠的時間,否則一般返回零。
2.void usleep(unsigned long usec);
usleep與sleep()類同,不同之處在於休眠的時間單位為毫秒(10e-6秒)。
3.int select(0,null,null,null,struct timeval *tv);
可以利用select實現sleep()的功能,它將不會等待任何事件發生。
4.int nanosleep(struct timespec *req,struct timespec *rem);
nanosleep會沉睡req所指定的時間,若rem為non-null,而且沒睡飽,將會把要補眠的時間放在rem上。
~~~~~~~~~~~~~~~~~~~~~~~~~~
實際上用
select是萬能的,下面的是乙個使用select的例子:
#include
#include
void sleep(int isec,int iusec)
isec 為延時秒數,usec為延時微秒數. 注:
1秒=1000毫秒=1000000微秒=1000000000納秒=1000000000000皮秒=1000000000000000飛秒
1s=1000ms=1000000us=1000000000ns=1000000000000ps=1000000000000000fs
核心空間:
核心裡面已經實現了延時函式.
#include
udelay(int n); 延時n微秒
mdelay(int n);延時n毫秒
ndelay(int n);延時n納秒
Linux核心空間和使用者空間
在linux系統中存在程序的概念 程序的分類 使用者程序 執行在使用者空間的程序被稱為使用者程序 核心程序 執行在核心空間的程序被稱為核心程序 程序的空間 系統會為每乙個程序分0 4g的虛擬定址空間,在4g的空間中 0 3g 屬於使用者空間,用來執行使用者的相關程序 3 4g 屬於核心空間,用來執行...
使用者空間和核心空間
應用程式是從頭到尾執行單個任務。模組只是預先註冊自己以便服務於將來的某個請求,模組初始化函式的任務就是為以後呼叫模組函式預先做準備,就像模組說 我在這,並且我能做這些工作。模組的退出函式將在模組被解除安裝前呼叫,他告訴核心 我要離開了,不要再讓我做任何事了。應用程式在退出時,可以不管資源的釋放或其他...
linux核心空間與使用者空間
核心空間和使用者空間是作業系統理論的基礎之一,即核心功能模組執行在核心空間,而應用程式執行在使用者空間。現代的cpu都具有不同的操作模式,代表不同的級別,不同的級別具有不同的功能,在較低的級別中將禁止某些操作。linux系統設計時利用了這種硬體特性,使用了兩個級別,最高端別和最低級別,核心執行在最高...