linux0.11
chen4914
这个作者很懒,什么都没留下…
展开
-
linux0.11系统启动
这里写自定义目录标题biosbootsect.ssetup.shead.s欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表F...原创 2019-06-23 17:44:30 · 371 阅读 · 0 评论 -
基于内核栈切换的进程切换
1、首先了结一些汇编常识常见寄存器:2、5种寻址方式movb(8位)、movw(16位)、movl(32位)、movq(64位)寄存器寻址:movl %eax, %edxeax -> edx立即数寻址:movl $0x123, %edx数字->寄存器直接寻址:movl 0x123, %edx直接访问内存地址数据,edx = *(int32_t *)...原创 2019-07-30 19:36:29 · 1322 阅读 · 0 评论 -
内存地址映射与共享
内存管理机制虚拟地址《=(段管理机制)=》线性地址《=(分页管理机制)=》物理地址分页管理机制内存分页管理机制时同过 页目录表和内存页表 组成的二级表进行的,其中页目录表(4B)来寻址一个页表,每个页表项(4B)来寻址一个一个物理内存页,结构如下图。Linux 0.11中页目录表占用一页地址,即最多可以寻址1024个页表,1024 * 1024 * 4K = 4G。所有进程共用一个页目录表,...原创 2019-08-04 18:25:17 · 611 阅读 · 1 评论 -
信号量的实现与应用
本实验需要完成两个任务:(1)在 Ubuntu 下编写程序,用信号量解决生产者——消费者问题;(2)在 linux-0.11 中实现信号量,用生产者—消费者程序检验之。信号量,英文为 semaphore,最早由荷兰科学家、图灵奖获得者 E. W. Dijkstra 设计,任何操作系统教科书的“进程同步”部分都会有详细叙述。Linux 的信号量秉承 POSIX 规范,用man sem_ove...原创 2019-08-01 10:07:23 · 797 阅读 · 0 评论 -
地址映射与共享
实验目的深入理解操作系统的段、页式内存管理,深入理解段表、页表、逻辑地址、线性地址、物理地址等概念;实践段、页式内存管理的地址映射过程;编程实现段、页式内存管理上的内存共享,从而深入理解操作系统的内存管理。...原创 2019-08-01 15:02:39 · 286 阅读 · 0 评论 -
中断(interrupt)、异常(exception\fault)、陷阱(trap)
中断中断是为了设备与CPU之间的通信。典型的有如服务请求,任务完成提醒等。比如我们熟知的时钟中断,硬盘读写服务请求中断。中断的发生与系统处在用户态还是在内核态无关,只决定于EFLAGS寄存器的一个标志位。我们熟悉的sti, cli两条指令就是用来设置这个标志位,然后决定是否允许中断。**在单个CPU的系统中,这也是保护临界区的一种简便方法。**中断是异步的,因为从逻辑上来说,中断的产生与当前正在...原创 2019-08-01 15:11:16 · 4784 阅读 · 0 评论