C
zzYBZ
这个作者很懒,什么都没留下…
展开
-
内核基础-笔记4
线程相关: 1、使用kernel_thread()创建内核线程: ret = (mykthread,NULL,CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD) 其中,第一参数是线程执行函数的指针,第二个是线程执行函数的参数,第三个是产生线程时的标志,这些标志定义了父进程与子进程之间要共享的资源,CLONE_FILES即共享文件,CLONE_SIGH...原创 2019-10-26 20:55:06 · 48 阅读 · 0 评论 -
内核基本概念_笔记2
定时器: 常用的定时器有两种:一种是忙等待时,CPU会不断的运转,另一种是睡眠等待时,进程将放弃CPU。 长延时: 在内核中以jiffies为单位的延时被认为为长延时。实现长延时时通常使用睡眠等待而非忙等。内核函数如下: schedule_timeout()、wait_event_timeout()、msleep()。 长延时技术仅仅适用于进程上下文,睡眠等待不能用于中断上下文。中断上下文不允许执...原创 2019-09-28 20:59:35 · 217 阅读 · 0 评论 -
内核基本概念_笔记1
两种操作模式:实模式和保护模式。在实模式下用户只能使用1MB 的内存,且没有任何保护。启动过程中CPU会将实模式切换为保护模式。 内核初始化:先执行实模式下的汇编代码,再执行保护模式下的init/main.c文件中的star_kernel()函数。最后激活init进程,init进程是所有进程的父进程。 低端内存:896MB以内的常规的可被寻址的内存区域称为低端内存,kmalloc()函数即分配的为...原创 2019-09-28 20:35:11 · 157 阅读 · 0 评论 -
位操作
1、二进制小数:0.101表示1/2+0/4+1/8即 2-1 + 2-2 +2-3。 2、与(1&1=1)、或(1 | 0=1)、异或(1^0=1) 3、掩码:flag &=MASK; 打开位:flag |= MASK; 关闭位:flag &= ~MAKS; 转置位:flag^=MASK; 4、右移:m >>n = m*(2-n); 左移:m<< ...原创 2019-09-08 22:48:51 · 66 阅读 · 0 评论 -
几个文件读写相关函数
几个文件读写相关函数新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 :1、ANSI要求提供两种文件视图即:文本...原创 2019-08-17 15:51:10 · 256 阅读 · 0 评论 -
结构体
1、直接定义在函数中的元素较多的结构体数组可能导致有关堆栈大小或堆栈溢出。 2、结构体引用元素的三种等价方式: struct stru *pstr = stu; stu.aa = (*pst).aa = pst->aa; 3、结构体使用指针元素时,一定注意要初始化指针元素。 4、typedef 与define的不同点: 1)typedef给出的名称仅限对于类型,不直接定义值。 2)tepe...原创 2019-08-25 22:32:35 · 108 阅读 · 0 评论 -
C字符
C字符欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 字符串常量:字符串常量属于...原创 2019-07-28 21:18:41 · 109 阅读 · 0 评论