linux 使用者空間 和 核心空間 延時函式

2021-06-22 23:34:48 字數 1011 閱讀 6254

from:

使用者空間:

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系統設計時利用了這種硬體特性,使用了兩個級別,最高端別和最低級別,核心執行在最高...