书栈网 · BookStack 本次搜索耗时 0.011 秒,为您找到 178 个相关结果.
  • Intel 80386运行模式

    Intel 80386运行模式 Intel 80386运行模式 一般CPU只有一种运行模式,能够支持多个程序在各自独立的内存空间中并发执行,且有用户特权级和内核特权级的区分,让一般应用不能破坏操作系统内核和执行特权指令。80386处理器有四种运行模式:实模式、保护模式、SMM模式和虚拟8086模式。这里对涉及ucore的实模式、保护模式做一个简要介绍...
  • proj7:支持缺页异常和VMA结构

    proj7:支持缺页异常和VMA结构 proj7项目组成 proj7编译运行 proj7:支持缺页异常和VMA结构 proj7项目组成 proj7 | |-- init | | `-- init.c | |-- mm | | |-- pmm.c | | |-- pmm...
  • 应具备的背景知识和学习环境

    本书希望通过设计实现操作系统来更好地理解操作系统原理和概念。设计实现操作系统其实就是设计实现一个可以管理CPU、内存和各种外设,并管理和服务应用软件的系统软件。为此还是需要先了解一些基本的计算机原理和编程的知识。本书的例子和描述需要读者学习过计算机原理课程、程序设计课程,掌握C语言编程(了解指针等的编程)。如需完成基于RISC-V的ucore实验,则对基于...
  • 实现: 创建并执行用户线程

    【实现】创建并执行用户线程 数据结构扩展:进程控制块和用户线程数据结构 创建用户线程 退出用户线程 【实现】创建并执行用户线程 数据结构扩展:进程控制块和用户线程数据结构 由于ucore采用的是内核级线程模型,所以一个用户线程有一个进程控制块,但由于用户线程不同于用户进程,所以要对已有进程控制块进行简单扩展,这个扩展其实就是要表达共享了同一...
  • 建立虚拟页和物理页帧的地址映射关系

    建立虚拟页和物理页帧的地址映射关系 建立虚拟页和物理页帧的地址映射关系 建立二级页表 80368的采用了二级页表来建立线性地址与物理地址之间的映射关系。由于我们已经具有了一个物理内存页管理器default_pmm_manager,支持动态分配和释放内存页的功能,我们就可以用它来获得所需的空闲物理页。在二级页表结构中,页目录表占4KB空间,可通过a...
  • 练习

    练习 练习0:填写已有实验 练习1:分配并初始化一个进程控制块(需要编码) 练习2:为新创建的内核线程分配资源(需要编码) 练习3:阅读代码,理解 proc_run 函数和它调用的函数如何完成进程切换的。(无编码工作) 扩展练习Challenge:实现支持任意大小的内存分配算法 练习 对实验报告的要求: 基于markdown格式来完成,...
  • AT&T汇编基本语法

    AT&T汇编基本语法 AT&T汇编基本语法 Ucore中用到的是AT&T格式的汇编,与Intel格式的汇编有一些不同。二者语法上主要有以下几个不同: * 寄存器命名原则 AT & T : % eax Intel : eax * 源/目的操作数顺序 ...
  • 建立段页式管理中需要考虑的关键问题

    建立段页式管理中需要考虑的关键问题 建立段页式管理中需要考虑的关键问题 为了实现分页机制,需要建立好虚拟内存和物理内存的页映射关系,即正确建立二级页表。此过程涉及硬件细节,不同的地址映射关系组合,相对比较复杂。总体而言,我们需要思考如下问题: 如何在建立页表的过程中维护全局段描述符表(GDT)和页表的关系,确保ucore能够在各个时间段上都能正常...
  • 探测系统物理内存布局

    探测系统物理内存布局 探测系统物理内存布局 当 ucore被启动之后,最重要的事情就是知道还有多少内存可用,一般来说,获取内存大小的方法由BIOS 中断调用和直接探测两种。但BIOS中断调用方法是一般只能在实模式下完成,而直接探测方法必须在保护模式下完成。通过BIOS 中断获取内存布局有三种方式,都是基于INT 15h中断,分别为88h e801he...
  • 实现: 缺页异常处理

    【实现】缺页异常处理 【实现】缺页异常处理 当启动分页机制以后,如果一条指令或数据的虚拟地址所对应的物理页框不在内存中或者访问的类型有错误(比如写一个只读页或用户态程序访问内核态的数据等),就会发生缺页异常。产生页面异常的原因主要有: 目标页面不存在(页表项全为0,即该线性地址与物理地址尚未建立映射或者已经撤销); 相应的物理页面不在内存中(页表...