Pintos 线程系统详解(三):线程创建
详细解析 Pintos 中 thread_create() 函数的实现,理解线程如何被创建和初始化。
详细解析 Pintos 中 thread_create() 函数的实现,理解线程如何被创建和初始化。
详细解析 Pintos 中线程的状态转换和生命周期管理,理解线程从创建到销毁的完整过程。
详细解析 Pintos 中 struct thread 的定义和线程的内存布局,理解线程是如何在内存中表示的。
Pintos 操作系统线程子系统的详细分析文档系列概述,包括文档列表、阅读顺序和先决知识。
Pintos 内核启动(十五):启动完成与任务执行 概述 本文档是 Pintos 内核启动系列的最后一篇,详细解析内核启动完成后的任务执行过程。在完成所有初始化工作后,内核需要: 打印启动完成信息 解析并执行命令行指定的操作 正确关闭或重启系统 这一阶段标志着 Pintos 从初始化状态过渡到正常运行状态。 原始代码 pintos_init() 的最后部分 pr...
Pintos 内核启动(十四):设备初始化 概述 本文档详细解析 Pintos 内核的设备初始化过程。在中断系统初始化完成后,内核需要初始化各种硬件设备,使它们能够正常工作。Pintos 涉及的主要设备包括: 定时器(Timer):提供时间基准和周期性中断 键盘(Keyboard):处理用户输入 串口(Serial Port):用于调试输出和通信 控制台(Consol...
Pintos 内核启动(十三):中断系统初始化 概述 本文档详细解析 Pintos 内核的中断系统初始化过程 intr_init()。中断是操作系统响应外部事件和处理异常的核心机制。正确初始化中断系统是操作系统能够响应硬件事件(如定时器、键盘)和处理软件异常(如除零错误、缺页)的前提。 Pintos 的中断系统涉及以下关键组件: IDT(Interrupt Descriptor ...
Pintos 内核启动(十二):线程系统初始化 概述 本文档详细解析 Pintos 内核的线程系统初始化过程,包括 thread_init() 和 thread_start() 两个关键函数。线程是操作系统调度的基本单位,线程系统的正确初始化是内核正常运行的基础。 Pintos 的线程系统具有以下特点: 每个线程占用一个页:线程结构体位于页底部,栈从页顶向下增长 简单的调度器...
Pintos 内核启动(十一):永久页表建立 概述 本文档详细解析 Pintos 内核的 paging_init() 函数,该函数负责建立永久的页表结构,替换 start.S 中创建的临时页表。这是内核初始化过程中至关重要的一步,它建立了内核运行所需的完整地址映射。 在 start.S 中,我们创建了一个简单的临时页表,只映射了前 64MB 的物理内存。现在,paging_init()...
Pintos 内核启动(十):内存系统初始化 概述 本文档详细解析 Pintos 内核的内存系统初始化过程,包括页分配器 palloc_init() 和动态内存分配器 malloc_init() 的初始化。内存系统是操作系统最核心的子系统之一,它为内核和用户程序提供内存分配服务。 Pintos 的内存管理采用两级分配策略: 页分配器(Page Allocator):以页(4KB)...