【卷王秘籍】学了三遍操作系统后,榨干知识点,让面试官自闭!


程序开发离不开操作系统的支持。要开发出一款性能高效、功能强劲的程序,加深对操作系统的认知是每个软件开发从业者不可避免的路子。而且,在,卷王不绝如缕!

【卷王秘籍】学了三遍操作系统后,榨干知识点,让面试官自闭!

现代CPU为了提升执行效率,减少CPU与内存的交互(交互影响CPU效率),一般在CPU上集成了多级缓存架构,常见的为三级缓存结构:

  • 一级缓存(L1 Cache):分为数据缓存和指令缓存,逻辑核独占
  • 二级缓存(L2 Cache):物理核独占,逻辑核共享
  • 三级缓村(L3 Cache):所有物理核共享

【卷王秘籍】学了三遍操作系统后,榨干知识点,让面试官自闭!

其中有最为核心的两个常考点:

  • :从
    0x00000000 到 0xc0000000(PAGE_OFFSET) 的线性地址可由用户代码 和 内核代码进行引用的范围
  • :从0xc0000000(PAGE_OFFSET)到 0xFFFFFFFFF的线性地址只
    能由内核代码进行访问的内存范围。

在这个基础上我们可以知道:在 4 GB 的内存空间中,只有 3 GB 可以用于用户应用程序。进程与线程只能运行在用户方式(usermode)或内核方式(kernelmode)下。用户程序运行在用户方式下,而系统调用运行在内核方式下。在这两种方式下所用的堆栈不一样:用户方式下用的是一般的堆栈(用户空间的堆栈),而内核方式下用的是固定大小的堆栈(内核空间的对战,一般为一个内存页的大小),即每个进程与线程其实有两个堆栈,分别运行与与


由内存的空间划分,对于CPU调度的基本单位–线程来说,也划分为:

  • 内核线程模型:系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程阻塞不会引起进程阻塞。在多处理器系统上,多线程在多处理器上并行运行。线程的创建、调度和管理由内核完成,效率比ULT要慢,比进程操作快。
  • 用户线程模型:用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/内核态切换,速度快。内核对ULT无感知,线程阻塞则进程(包括它的所有线程)阻塞。
    【卷王秘籍】学了三遍操作系统后,榨干知识点,让面试官自闭!

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92165 人正在系统学习中

来源:陶人超有料

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月6日
下一篇 2022年8月6日

相关推荐