Linux ndelay()很不准怎么回事,ndelay(1),结果延时了1us?

Linux ndelay()很不准怎么回事,ndelay(1),结果延时了1us?,第1张

所有的 sleep/delay 类型的接口,都只能保证休眠时间 "不短于" 传入的参数,但是无法保证绝对精确。精确度和底层实现机制有关(理论上讲任何实现都会有一个最小精度的,比如1us 或者1ms,如果试图delay一个小于最小精度的时长,最终效果就是大于等于最小精度的),也和其他因素有关,比如cpu核数,进程/线程数,优先级,任务调度等。 所以一般只能保证 "不短于" ,无法保证绝对精确。

0.5微秒的延迟相当于纳秒级的了,内核空间有提供纳秒级的延迟

#include <linux/delay.h>

ndelay(int n) 延时n纳秒

但是时间应该是不准的。

较为准确的延迟可以用select,但也只是us级的。

struct timeval tv

tv.tv_sec=0

tv.tv_usec=iUsec //微秒

select(0,NULL,NULL,NULL,&tv)

Linux *** 作系统在短短的几年之内得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux包含了Unix的全部功能和特性。简单的说,Linux具有以下主要特性:

1 开放性

开放性是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。

2 多用户

多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。Linux和Unix都具有多用户的特性。

3 多任务

多任务是现代计算机的最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。事实上,从处理器执行一个应用程序中的一组指令到Linux调度微处理器再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的。

4 良好的用户界面

Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell,它既可以联机使用,又可存在文件上脱机使用。shell有很强的程序设计能力,用户可方便地用它编制程序,从而为用户扩充系统功能提供了更高级的手段。可编程Shell是指将多条命令组合在一起,形成一个Shell程序,这个程序可以单独运行,也可以与其他程序同时运行。

系统调用给用户提供编程时使用的界面。用户可以在编程时直接使用系统提供的系统调用命令。系统通过这个界面为用户程序提供低级、高效率的服务。

Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易 *** 作、交互性强的友好的图形化界面。

5 设备独立性

设备独立性是指 *** 作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样, *** 纵、使用这些设备,而不必知道它们的具体存在形式。

具有设备独立性的 *** 作系统,通过把每一个外围设备看作一个独立文件来简化增加新设备的工作。当需要增加新设备时、系统管理员就在内核中增加必要的连接。这种连接(也称作设备驱动程序)保证每次调用设备提供服务时,内核以相同的方式来处理它们。当新的及更好的外设被开发并交付给用户时, *** 作允许在这些设备连接到内核后,就能不受限制地立即访问它们。设备独立性的关键在于内核的适应能力。其他 *** 作系统只允许一定数量或一定种类的外部设备连接。而设备独立性的 *** 作系统能够容纳任意种类及任意数量的设备,因为每一个设备都是通过其与内核的专用连接独立进行访问。

Linux是具有设备独立性的 *** 作系统,它的内核具有高度适应能力,随着更多的程序员加入Linux编程,会有更多硬件设备加入到各种Linux内核和发行版本中。另外,由于用户可以免费得到Linux的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。

6 供了丰富的网络功能

完善的内置网络是Linux的一大特点。 Linux在通信和网络功能方面优于其他 *** 作系统。其他 *** 作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

支持Internet是其网络功能之一。Linux免费提供了大量支持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。

文件传输是其网络功能之二。用户能通过一些Linux命令完成内部信息或文件的传输。

远程访问是其网络功能之三。Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地方。

7 可靠的系统安全

Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。

8 良好的可移植性

可移植性是指将 *** 作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。

Linux是一种可移植的 *** 作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。可移植性为运行Linux的不同计算机平台与其他任何机器进行准确而有效的通信提供了手段,不需要另外增加特殊的和昂贵的通信接口。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8465372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存