书栈网 · BookStack 本次搜索耗时 0.016 秒,为您找到 178 个相关结果.
  • 实验4: 创建并执行用户线程

    创建并执行用户线程 实验目标 概述 实现描述 项目组成 编译运行 创建并执行用户线程 实验目标 到proj12为止,ucore还一直没有用户线程。而用户线程与用户进程的区别在于操作系统用户进程管理除了涉及与执行过程相关的调度、进程上下文切换、执行状态变化外,还需管理内存、文件等资源,而用户线程只管理与执行过程相关的调度、上下文切换、执行...
  • 面向对象编程方法

    面向对象编程方法 面向对象编程方法 uCore设计中采用了一定的面向对象编程方法。虽然C 语言对面向对象编程并没有原生支持,但没有原生支持并不等于我们不能用 C 语言写面向对象程序。需要注意,我们并不需要用 C语言模拟出一个常见 C++ 编译器已经实现的对象模型。如果是这样,还不如直接采用C++编程。 uCore的面向对象编程方法,目前主要是采用了...
  • 创建用户进程

    创建用户进程 1. 应用程序的组成和编译 2. 用户进程的虚拟地址空间 3. 创建并执行用户进程 创建用户进程 在实验四中,我们已经完成了对内核线程的创建,但与用户进程的创建过程相比,创建内核线程的过程还远远不够。而这两个创建过程的差异本质上就是用户进程和内核线程的差异决定的。 1. 应用程序的组成和编译 我们首先来看一个应用程序,这里我...
  • 设计关键数据结构 — 进程控制块

    设计关键数据结构 — 进程控制块 设计关键数据结构 — 进程控制块 在实验四中,进程管理信息用structproc_struct表示,在kern/process/proc.h中定义如下: struct proc_struct { enum proc_state state ; // Process state ...
  • Simple FS 文件系统

    Simple FS 文件系统 Simple FS 文件系统 这里我们没有按照从上到下先讲文件系统抽象层,再讲具体的文件系统。这是由于如果能够理解SimpleFS(简称SFS)文件系统,就可更好地分析文件系统抽象层的设计。即从具体走向抽象。ucore内核把所有文件都看作是字节流,任何内部逻辑结构都是专用的,由应用程序负责解释。但是ucore区分文件的物...
  • 页面置换机制

    页面置换机制 1. 可以被换出的页 2. 虚存中的页与硬盘上的扇区之间的映射关系 3. 执行换入换出的时机 4. 页替换算法的数据结构设计 5. swap_check的检查实现 页面置换机制 如果要实现页面置换机制,只考虑页替换算法的设计与实现是远远不够的,还需考虑其他问题: 哪些页可以被换出? 一个虚拟的页如何与硬盘上的扇区建立对应关...
  • 附录D. 自映射机制

    自映射机制 自映射机制 这是扩展知识。上一小节讲述了通过boot_map_segment函数建立了基于一一映射关系的页目录表项和页表项,这里的映射关系为: virtual addr (KERNBASE~KERNBASE+KMEMSIZE) = physical_addr(0~KMEMSIZE) 这样只要给出一个虚地址和一个物理地址,就可以设置相应...
  • 项目组成

    项目组成 项目组成 lab1的整体目录结构如下所示: . ├── boot │ ├── asm . h │ ├── bootasm . S │ └── bootmain . c ├── kern │ ├── debug │ │ ├── assert . h...
  • 创建用户进程

    创建用户进程 应用程序的组成和编译 用户进程的虚拟地址空间 创建并执行用户进程 创建用户进程 在proj10中,我们已经完成了对内核线程的创建,但与用户进程的创建过程相比,创建内核线程的过程还远远不够。而这两个创建过程的差异本质上就是用户进程和内核线程的差异决定的。 应用程序的组成和编译 首先,我们要有一个应用程序,这里我们假定是hell...
  • 实验内容

    实验内容 实验内容 实验五完成了用户进程的管理,可在用户态运行多个进程。但到目前为止,采用的调度策略是很简单的FIFO调度策略。本次实验,主要是熟悉ucore的系统调度器框架,以及基于此框架的Round-Robin(RR) 调度算法。然后参考RR调度算法的实现,完成Stride Scheduling调度算法。