![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式操作系统
文章平均质量分 90
饼干饼干圆又圆
这个作者很懒,什么都没留下…
展开
-
嵌入式面试总结
new 、delete是C++中的操作符,而malloc、free是标准库函数。new、delete是类型安全的,new知道要分配对象的类型并调用构造函数,malloc只知道字节大小,不调用构造函数。new调用构造函数,delete调用析构函数。malloc、free不调用析构函数。new返回指定类型的指针,malloc返回void*,需要强制类型转换。new可以初始化对象,malloc不会初始化分配的内存。new在分配失败时抛出异常,malloc在分配失败时返回NULL。原创 2024-07-15 14:08:39 · 727 阅读 · 0 评论 -
嵌入式面试准备
malloc()从堆里面获得空间,也就是说函数返回的指针是指向堆里面的一块内存,操作系统中有一个记录空闲内存地址的链表,当操作系统收到程序的申请时,就会遍历该链表,寻找第一个空间大于所申请空间的堆节点,然后将该节点从空闲节点链表中删除,并将该结点的空间分配给程序。依次从小到大取每个序列中的元素比较,较小的一个放进新序列,取完一个有序序列中的所有元素后,再把剩下一个序列中的元素放进新序列的后面的即可。最坏情况下,每次选择的基准总是数组中的最小或最大元素时,快速排序退化为链表,高度为n,每层需要进行n次比较。原创 2024-07-13 10:46:45 · 584 阅读 · 0 评论 -
操作系统——内存管理(面试准备)
我们来看这样一个例子。每个进程都有4GB的虚拟地址空间,而对于大多数程序来说,其使用到的空间远未达到4GB,因为会存在部分对应的页表项都是空的,根本没有分配,对于已分配的页表项,如果存在最近一定时间未访问的页表,在物理内存紧张情况下,操作系统会将页面换出到硬盘,也就是说不会占用物理内存。我们利用这一特性,把最常访问的几个页表项存储到访问速度更快的硬件,于是计算机科学家们,就在CPU芯片中,加入了一个专门存放程序最常访问的页表项的Cache,这个Cache就是TLB,通常称为页表缓存,转址旁路缓存、快表等。原创 2024-07-11 09:53:26 · 1176 阅读 · 0 评论 -
嵌入式实时操作系统的设计与开发学习(一)
TCB里的stack成员隐含了线程的执行代码信息,因为当任务切换时,stack将保存被切换线程的PC指针,PC是指向线程的当前执行代码的。next_id:下一资源的ID,它是一个空闲链表指针,指向下一个空闲资源的编号,属于资源ID的一部分。当某个资源空闲时,id的高16位表示该资源在资源池的编号,分配后表示该资源的ID。线程控制块是一种资源,id表示该线程的资源ID。aCoral线程状态切换图。原创 2022-10-15 06:21:41 · 361 阅读 · 0 评论