- 博客(8)
- 收藏
- 关注

原创 菜鸡面试遇到有印象的问题(LINUX下内核如何管理内存)
目录写在文章的前面---本人C/C++面试岗位,学艺不精,研究生做的与代码无关的工作,仅记录每次面试遇到的问题勉励自己!一、x86下的物理地址空间布局二、linux虚拟地址内核空间分布 三、linux虚拟地址用户空间分布 1.page(页)2.zone(区)3.获得页4. slab机制参考:https://www.cnblogs....
2018-07-24 10:14:03
845
原创 内核同步问题
前言:随着2.6版内核出现,LINUX内核已经发展成抢占式内核,这意味着调度程序可以在不加保护的情况下抢占正在运行的内核代码,重新调度其他的进程执行,而它们必须被妥善的保管起来。一、造成并发的原因中断————中断几乎可以在任何时刻异步发生,也就可能随时打断当前正在执行的代码 软中断和tasklet————内核能在任何时刻唤醒或调度软中断和tasklet,打断当前正在执行的代码 内核抢占...
2018-08-04 13:47:23
324
原创 std::function和bind绑定器
可调用对象(callable objects)有如下几种定义是一个函数指针 是一个具有operator()成员函数的类对象(仿函数) 是一个可被转换为函数指针的类对象 是一个类成员(函数)指针void func(void){ //.....}struct Foo{ void operator()void { //... }}...
2018-07-27 10:31:19
345
转载 extern
链接指示符:extern如果希望调用其他程序设计语言(尤其是C)写的函数,那么,调用函数时必须告诉编译器使用不同的要求.例如,当这样的函数被调用时,函数名或参数排列的顺序可能不同,无论是C++函数调用它,还是用其他语言写的函数调用它.程序员用链接指示符(linkage directive)告诉编译器,该函数是用其他的程序设计语言编写的.链接指示符有两种形式:单一语句(s
2017-12-04 20:31:14
191
转载 定义与声明的区别
我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下: 变量的声明有两种情况: (1) 一种是需要建立存储空间的(定义、声明)。 例如:int a在声明的时候就已经建立了存储空间。 (2) 另一种是不需要建立存储空间的(声明)。
2017-12-04 20:13:53
449
转载 值传递、指针传递、引用传递
C++ 值传递、指针传递、引用传递值传递形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。指针传递:形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作
2017-11-14 22:11:20
155
转载 四种强制类型转换的总结(const_cast、static_cast、dynamic_cast、reinterpreter_cast)
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名
2017-11-08 17:21:34
237
转载 哨兵的应用
作者:hdyjzdj链接:https://www.zhihu.com/question/27155932/answer/96193320来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。哨兵元素的应用总结哨兵,顾名思义,是用来解决国家之间边界问题的,不直接参与生产活动。同样,计算机科学中提到的哨兵,也用来解决边界问题。在许多算法中
2017-10-17 18:24:41
878
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人