书栈网 · BookStack 本次搜索耗时 0.015 秒,为您找到 178 个相关结果.
  • 实验执行流程概述

    实验执行流程概述 实验执行流程概述 lab2和lab3完成了对内存的虚拟化,但整个控制流还是一条线串行执行。lab4将在此基础上进行CPU的虚拟化,即让ucore实现分时共享CPU,实现多条控制流能够并发执行。从某种程度上,我们可以把控制流看作是一个内核线程。本次实验将首先接触的是内核线程的管理。内核线程是一种特殊的进程,内核线程与用户进程的区别有两...
  • 实现: 进程调度

    【实现】进程调度 内核的抢占性 进程调度时机 运行态到就绪态的变化过程 运行态到就睡眠态的变化过程 运行态到就退出态的变化过程 进程切换过程 进程调度类框架设计 设计思路 数据结构和变量 调度点的关键调度相关函数 进程调度策略/算法 FCFS调度算法的实现 RR调度算法的实现 MLFQ调度算法的实现 【实现】进程调度 ...
  • 附录B. 实现物理内存探测

    实现物理内存探测 物理内存探测是在bootasm.S中实现的,相关代码很短,如下所示: probe_memory : //对0x8000处的32位单元清零,即给位于0x8000处的 //struct e820map的成员变量nr_map清零 movl $0 , 0x8000 ...
  • 双向循环链表

    双向循环链表 双向循环链表 在“数据结构”课程中,如果创建某种数据结构的双循环链表,通常采用的办法是在这个数据结构的类型定义中有专门的成员变量 data, 并且加入两个指向该类型的指针next和prev。例如: typedef struct foo { ElemType data ; struct foo ...
  • 进程切换过程

    进程切换过程 进程切换过程 进程调度函数schedule选择了下一个将占用CPU执行的进程后,将调用进程切换,从而让新的进程得以执行。通过实验四和实验五的理解,应该已经对进程调度和上下文切换有了初步的认识。在实验五中,结合调度器框架的设计,可对ucore中的进程切换以及堆栈的维护和使用等有更加深刻的认识。假定有两个用户进程,在二者进行进程切换的过程中...
  • 物理内存页分配算法实现

    物理内存页分配算法实现 物理内存页分配算法实现 如果要在ucore中实现连续物理内存分配算法,则需要考虑的事情比较多,相对课本上的物理内存分配算法描述要复杂不少。下面介绍一下如果要实现一个FirstFit内存分配算法的大致流程。 lab2的第一部分是完成first_fit的分配算法。原理FirstFit内存分配算法上很简单,但要在ucore中实现,...
  • 基于时间事件的等待与唤醒

    基于时间事件的等待与唤醒 timer数据结构 timer相关操作 基于时间事件的等待与唤醒 Clock(时钟)中断(irq0,可回顾第二章2.4节) 可给操作系统提供有一定间隔的时间事件, 操作系统将其作为基本的计时单位,这里把两次时钟中断之间的时间间隔为一个时间片(timer splice)。基于此时间片,操作系统得以向上提供基于时间点的事件,...
  • 实验目的

    实验目的 实验目的 理解操作系统的调度管理机制 熟悉 ucore 的系统调度器框架,以及缺省的Round-Robin 调度算法 基于调度器框架实现一个(Stride Scheduling)调度算法来替换缺省的调度算法
  • 文件系统设计与实现

    文件系统设计与实现 文件系统设计与实现 ucore 文件系统总体介绍 通用文件系统访问接口 文件系统抽象层 - VFS Simple FS 文件系统
  • 进程退出和等待进程

    进程退出和等待进程 进程退出和等待进程 当进程执行完它的工作后,就需要执行退出操作,释放进程占用的资源。Ucore分了两步来完成这个工作,首先由进程本身完成大部分资源的占用内存回收工作,然后由此进程的父进程完成剩余资源占用内存的回收工作。为何不让进程本身完成所有的资源回收工作呢?这是因为进程要执行回收操作,就表明此进程还存在,还在执行指令,这就需要内...