操作系统实战 45 讲
彭东
网名 LMOS,Intel 傲腾项目关键开发者
65203 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 60 讲
尝尝鲜:从一个Hello到另一个Hello (2讲)
特别放送 (1讲)
操作系统实战 45 讲
15
15
1.0x
00:00/00:00
登录|注册

参考答案 | 对答案,是再次学习的一个机会

不必在储存设备上存在
限制创建目录和文件大小
依赖关系决定调用顺序
分配未占用的设备ID
设备类型和设备号参数
上下文切换
初始化 CPU 寄存器状态
最大 32MB 内存对象
最大 4MB
映射物理地址空间
40MB 内存空间
2的幂次方页面数
控制内核加载和运行地址
Linux 识别
GRUB 兼容性
保护共享数据结构
减少全局变量使用
数据布局与访问顺序一致
对齐 Cache 行
每个应用程序独立页表
1MB 内存空间
混合内核
结合宏内核高性能和微内核可移植性
使用 "..." 表示可变参数列表
从栈中弹出地址到指令指针寄存器
跳转到函数地址
将下一条指令地址压栈
特权级及其作用
ARM 与 RISC-V
实现 volume(数据卷)
考虑多机架、多机房问题
syscall 与 int 指令区别
int 指令限制
socket 函数中的实现
套接字与其他机制区别
中心化与去中心化
内核态与用户态实现
内核中的运转过程
super_block,dentry,inode
简单文件系统
超级块、位图、根目录
自定义逻辑存储块
加载内核模块和运行App测试
防止进程霸占 CPU
krlnew_devid 函数
open 函数
调度类优先级不同于进程优先级
krlsched_wait 函数
retnfrom_first_sched 函数
上半部分虚拟地址空间共享
kmalloc 函数
连续物理内存分配
CR2 寄存器保存缺页地址
14号异常
线性映射区
按 Cache 行大小的倍数分配
msadsc_t 结构内存占用
页面组织
主要函数链接到对应二进制文件
函数调用关系图
_entry 和 _start 标号
ext4 文件系统
优化写进程优先级
支持多进程并发读取
自旋锁与信号量
提高 Cache 命中率
分页模式
实模式
Windows NT内核
混合内核架构
变参函数
ret 指令
call 指令
ARMv8 特权级
CPU 指令集
容器数据持久化
虚拟化平台设计
汇编指令
TCP 三次握手
进程间通信
互联网架构
网络协议栈
网络数据包处理
内存中数据结构
文件系统限制
文件系统结构
文件系统存储单位
sudo 命令
systick 设备
设备ID自动分配
设备访问接口
Linux 进程优先级
进程等待状态
进程调度
进程共享内核代码和数据
SLAB 分配器
Linux 伙伴系统
CPU 缺页异常
内核虚拟地址空间
内存对象分配
内存管理
Linux 初始化流程
Cosmos硬件抽象层
GRUB
文件系统
Linux 读写锁
同步机制
编写高效代码
内存寻址
内核架构
C语言特性
函数调用与返回
操作系统学习总结

该思维导图由 AI 生成,仅供参考

你好,我是编辑宇新。
春节将至,先给你拜个早年:愿你 2022 年工期变长,需求变少,技术水平更加硬核。
距离我们专栏更新结束已经过去了不少时间,给坚持学习的你点个赞。学习操作系统是一个长期投资,需要持之以恒,才能见效。无论你是二刷、三刷的朋友,还是刚买课的新同学,都建议你充分利用留言区,给自己的学习加个增益 buff。这种学习讨论的氛围,也会激励你持续学习。
今天这期加餐,我们整理了课程里的思考题答案,一次性发布出来,供你对照参考,查漏补缺。
建议你一定要先自己学习理解,动脑思考、动手训练,有余力还可以看看其他小伙伴的解题思路,之后再来对答案。

第 1 节课

Q:为了实现 C 语言中函数的调用和返回功能,CPU 实现了函数调用和返回指令,即上图汇编代码中的“call”,“ret”指令,请你思考一下:call 和 ret 指令在逻辑上执行的操作是怎样的呢?
A:一般函数调用的情况下 call 和 ret 指令在逻辑上执行的操作如下:
1. 将 call 指令的下一条指令的地址压入栈中;
2. 将 call 指令数据中的地址送入 IP 寄存器中(指令指针寄存器),该地址就是被调用函数的地址;
3. 由于 IP 寄存器地址设置成为被调用函数的地址,CPU 自然跳转到被调用函数处开始执行指令;
4. 在被调用函数的最后都有一条 ret 指令,当 CPU 执行到 ret 指令时,就从栈中弹出一个数据到 IP 寄存器,而这个数据通常是先前执行 call 指令的下一条指令的地址,即实现了函数返回功能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

这篇文章深入探讨了操作系统和计算机体系结构的多个技术问题,涉及C语言函数调用、内核架构、内存寻址、Cache优化、自旋锁、文件系统格式化等多个方面的知识点。通过问答形式,文章深入浅出地解释了这些技术问题,为读者提供了对操作系统内部工作原理的深入理解。其中包括了对内存页面组织、内核虚拟地址空间、缺页异常、Linux伙伴系统、SLAB内存分配、进程调度等多个方面的详细解答。此外,还涉及了设备访问接口函数、设备ID分配、文件系统的储存单位等实际应用问题。文章还探讨了网络数据包处理流程、网络协议栈的实现方式、互联网架构的发展趋势以及虚拟化平台设计等多个前沿技术话题。总体而言,这篇文章对于想要深入了解操作系统和计算机体系结构的读者来说,是一份很有价值的参考资料。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《操作系统实战 45 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • ppd0705
    粗略的过了一遍+1,从去年7月底开始,还好没放弃 😭

    作者回复: 哈哈

    2022-03-13
  • ifelse
    粗略的过了一遍

    作者回复: 感觉怎么样

    2022-03-06
    3
  • Zhang
    感觉很有必要再刷一遍
    2023-01-31归属地:河南
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部