时间是继内存之后常用的资源之一。它用于执行几乎所有的事情:延迟工作、睡眠、调度、超时以及许多其它任务。时间有两类:绝对时间:指一天的日期和时间,内核使用绝对时间了解具体时间。有一种硬件芯片称为实时时钟(RTC)。相对时间:相对时间的作用是被内核调度程序使用,为了处理相对时间,内核依赖于被称作定时器的CPU功能(外设),也称作内核定时器。内核定时器分为两个不同的部分标准定时器或系统定时器高精度定时器标...
2023-03-29 17:27:44 991浏览 0点赞 0回复 0收藏
linux创建及初始化链表动态方法通过structlisthead创建,INITLISTHEAD初始化。(listhead以及INITLISTHEAD位于)cstructlisthead{structlistheadnext,prev;};staticinlinevoidINITLISTHEAD(structlistheadlist){listnextlist;listprevlist;}structlistheadmylist;INITLISTHEAD(&mylist)静态方法静态分配通过LISTHEAD宏完成:cdefineLISTHEADINIT(name){&(name),&(name)}defineLISTHEAD(name)structlistheadnameLISTHEADINIT(name)...
2023-03-29 17:27:09 456浏览 0点赞 0回复 0收藏
这里事先推荐给大家一个Linux源码的阅读网站,真的很方便!]进程通过睡眠机制释放处理器,使其能够处理其它进程。处理器睡眠的原因可能在于感知数据的可用性,或等待资源释放。内核调度器管理要运行的任务列表,这被称作运行队列。睡眠进程不再被调度,因为已将它们从...
2023-03-29 17:26:10 538浏览 0点赞 0回复 0收藏
cdefinecontainerof(ptr,type,member)({consttypeof(((type)0)member)mptr(ptr);(type)((char)mptroffsetof(type,member));})ptr:指向结构字段的指针。type:包装指针的结构类型(即指针的类别)member:ptr指向的结构内字段的名称(如结构体中的成员)举个例子:cstructperson{intage;charname;}somebody;structpersonthepersonthepersoncontainerof(somebody.name,structperson,name);最终结果theperson由containerof考虑到name从该结构开始处的偏移量,进而获取正确的指针位置。
2023-03-29 17:24:54 437浏览 0点赞 0回复 0收藏