上一页 1 2 3 4 5 6 7 8 ··· 22 下一页
摘要: 如果出于内核和用户空间隔离考虑,这里应该不能共享的。共享就会让用户进程能感知到内核的内存布局,不知道会导致什么问题,但是感觉内核的内存布局用户进程应该不能访问。 通过查一些资料,现在linux这样做的原因是为了性能考虑,解决在用户态和内核态之间切换时可能导致的性能问题。 这位阿里内核开发的回答: 问 阅读全文
posted @ 2020-12-17 11:17 Birding 阅读(1196) 评论(0) 推荐(0) 编辑
摘要: 线程切换过程: interrupt_handler.S(interrupt_handle_entry) -> interrupt.c(c_version_handle) -> switch_to.S 结论: 在switch_to函数中必须保存esi/edi/edx/ebp这四个寄存器 原因: GCC 阅读全文
posted @ 2020-12-16 10:05 Birding 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 结论:根据维基百科里说的,应该是为了保持不改变CPU位数的情况下,让CPU支持访问更大的内存地址。 【1978年的Intel 8086开始引入了内存分段。这使得16位CPU可以访问超过64 KB (65,536字节)的内存】 【为了使用16字节寄存器访问20字节地址,整个内存被划分为多个区块】 关于 阅读全文
posted @ 2020-10-20 10:16 Birding 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 在调试中断代码时,中断总是只执行了几次就不再执行了。但是之前的代码都是正常执行的。 我回退了中断控制器初始化代码和中断处理程序,问题依然存在。 最后偶然翻代码发现是主线程后面的while(1){}这段代码被注释掉了,这段代码是让操作系统保持运行不退出。 如果这段代码去掉了就导致操作系统在执行了几个时 阅读全文
posted @ 2020-10-14 13:01 Birding 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 在写内核代码的时候定义了一个结构体,在往结构体里属性赋值时访问内存异常,直接jump到未知地址。 代码如下: 在执行stack->function=function时报错。 排查过程: 考虑是否是代码写的有问题,先在本机编写相同代码用gcc编译运行来测试,结果没有任何问题。 考虑是否是stack-> 阅读全文
posted @ 2020-10-13 11:04 Birding 阅读(315) 评论(0) 推荐(0) 编辑
摘要: ES RestClient 底层是封装了HttpClient组件来是现实通过http方式访问远程ES服务,这个可以通过查看RestClient的 org.elasticsearch.client.RestClient#performRequestAsync() 这个方法得到验证,这个方法里有直接调用 阅读全文
posted @ 2020-10-11 18:01 Birding 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 多个角色: 编程语言、编译器、磁盘、内存、CPU 在字节序里他们都扮演什么样的角色? CPU决定字节序。x86架构的CPU都是小端字节序,意味着当CPU要从存储器(可能是寄存器、内存)中读取多字节数值时,CPU是按照小端来计算多字节对应的最终的数值,比如内存中存储的一个32位数值(例如int)的物理 阅读全文
posted @ 2020-08-20 11:19 Birding 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 相同点: 冒泡排序和插入排序都是把数组分成两块,一块是已排好序,剩下的是未排好序。按照标准的时间复杂度和空间复杂度来算,两个算法都是O(n^2)时间复杂度,和常数空间复杂度。两个算法都是通过一步一步的移动元素达到最后的位置。 有两点差异我比较关注:元素比较的次数和元素移动的次数。 元素比较次数可以理 阅读全文
posted @ 2020-06-09 09:33 Birding 阅读(998) 评论(0) 推荐(0) 编辑
摘要: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } 主要思路: 递归 先递归到最后一个节点, 阅读全文
posted @ 2020-06-05 09:26 Birding 阅读(218) 评论(0) 推荐(0) 编辑
摘要: /**https://leetcode-cn.com/problems/reorder-list/submissions/ * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex 阅读全文
posted @ 2020-06-03 09:52 Birding 阅读(316) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 22 下一页