摘要: 26.1 应用处理器 当计算机启动时,不管其中有多少个CPU,都只有一个CPU会真正启动,这个CPU就称为引导处理器(Bootstrap Processor,BSP);而其他CPU会等待被BSP唤醒,这些CPU就称为应用处理器(Application Processor, AP)。 BSP可以在任意 阅读全文
posted @ 2024-09-01 10:29 樱雨楼 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 25.1 多处理器同步原语的实现原理 当计算机中存在不止一个CPU时,基于关中断的同步原语就失效了。这是因为每个CPU的中断是独立的,关闭一个CPU的中断并不会影响其他CPU。从本质上说,中断由rflags控制,但rflags在每个CPU中都有一个,因此,只有找到一个共享区域,才能实现多CPU间的同 阅读全文
posted @ 2024-09-01 10:29 樱雨楼 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 24.1 64位文件系统 想要实现文件系统,就需要一个超级块和一个文件系统位图。在我们的操作系统中,超级块位于98号扇区,文件系统位图位于99号扇区,文件从100号扇区开始存放。 本章代码24/FS.h定义了FCB,一个FCB的大小是32字节,一个扇区可以存放16个FCB,其中,最后一个FCB改为存 阅读全文
posted @ 2024-09-01 10:28 樱雨楼 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 23.1 什么是快速系统调用 系统调用是操作系统为3特权级任务提供服务的一种手段。在32位操作系统中,我们通过中断实现了系统调用。由于系统调用是一个使用非常频繁的机制,且中断也不是专门为系统调用设计的,因此,64位CPU提供了系统调用的专用机制:快速系统调用。 快速系统调用由专用的syscall指令 阅读全文
posted @ 2024-09-01 10:28 樱雨楼 阅读(207) 评论(0) 推荐(1) 编辑
摘要: 22.1 64位TSS与TSS描述符 想要实现任务,就需要先安装好TSS与TSS描述符。 64位TSS如下图所示: 如图所示,64位TSS的大小不变,还是104字节。64位CPU淘汰了硬件任务切换和数据段寄存器,因此,64位TSS的组成与32位TSS完全不同,其已不具备保存寄存器的功能,其中的大部分 阅读全文
posted @ 2024-09-01 10:27 樱雨楼 阅读(2) 评论(0) 推荐(0) 编辑