书栈网 · BookStack 本次搜索耗时 0.015 秒,为您找到 178 个相关结果.
  • 实验3: 基于内核线程实现全局内存页替换机制

    基于内核线程实现全局内存页替换机制 实验目标 proj11概述 实现描述 项目组成 编译运行 基于内核线程实现全局内存页替换机制 实验目标 到proj11为止,还没有能够在ucore中实现一个完整的内存页替换机制。但其实在lab2的proj8中,已经为ucore实现内存页替换机制提供了大量的支持,并在相关测试函数kern/mm/swap...
  • 实验目的

    实验目的 实验目的 理解操作系统的同步互斥的设计实现; 理解底层支撑技术:禁用中断、定时器、等待队列; 在ucore中理解信号量(semaphore)机制的具体实现; 理解管程机制,在ucore内核中增加基于管程(monitor)的条件变量(conditionvariable)的支持; 了解经典进程同步问题,并能使用同步机制解决进程同步问题。
  • 实验1: 创建并执行内核线程

    创建并执行内核线程 实验目标 proj10概述 实现描述 项目组成 编译运行 创建并执行内核线程 实验目标 ucore在lab2完成了内存管理。一个程序如果要加载到内存中运行,通过ucore的内存管理就可以分配合适的空间了。接下来就需要考虑如何使用CPU来“并发”执行多个程序。 操作系统把一个程序加载到内存中运行,这个运行的程序会经历...
  • 实验一:显示字符的toy bootloader

    显示字符的toy bootloader 实验目标 proj1概述 实现描述 项目组成 编译运行 显示字符的toy bootloader 实验目标 操作系统是一个软件,也需要通过某种手段加载并运行它。在这里我们将通过另外一个更加简单的软件-bootloader来完成这些工作。为此,我们需要完成一个能够切换到x86的保护模式并显示字符的bo...
  • 实现: 物理内存探测

    【实现】物理内存探测 【实现】物理内存探测 物理内存探测是在bootasm.S中实现的,相关代码很短,如下所示: probe_memory : //对0x8000处的32位单元清零,即给位于0x8000处的 //struct e820map的结构域nr_map清零 movl $0 , 0x8000 ...
  • 关键数据结构和相关函数分析

    关键数据结构和相关函数分析 关键数据结构和相关函数分析 对于第一个问题的出现,在于实验二中有关内存的数据结构和相关操作都是直接针对实际存在的资源—物理内存空间的管理,没有从一般应用程序对内存的“需求”考虑,即需要有相关的数据结构和操作来体现一般应用程序对虚拟内存的“需求”。一般应用程序的对虚拟内存的“需求”与物理内存空间的“供给”没有直接的对应关系,...
  • 实现分页机制

    实现分页机制 实现分页机制 在本实验中,需要重点了解和实现基于页表的页机制和以页为单位的物理内存管理方法和分配算法等。由于ucore OS是基于80386 CPU实现的,所以CPU在进入保护模式后,就直接使能了段机制,并使得ucore OS需要在段机制的基础上建立页机制。下面比较详细地介绍了实现分页机制的过程。
  • 实现: 实现分页内存管理

    【实现】实现分页内存管理 重新建立段映射 初始化物理内存页分配管理 物理内存页分配与释放 建立二级页表 自映射机制 【实现】实现分页内存管理 重新建立段映射 前面已经介绍了如何探测物理内存,接下来ucore需要根据物理内存的情况来建立分页管理机制。首先观察一下tools/kernel.ld文件在proj4.1和proj5中的区别,在pr...
  • 了解OS实验

    了解OS实验 了解OS实验 写一个操作系统难吗?别被现在上百万行的Linux和Windows操作系统吓倒。当年Thompson乘他老婆带着小孩度假留他一人在家时,写了UNIX;当年Linus还是一个21岁大学生时完成了Linux雏形。站在这些巨人的肩膀上,我们能否也尝试一下做“巨人”的滋味呢? MIT的Frans Kaashoek等在2006年参考...
  • 实验执行流程概述

    实验执行流程概述 实验执行流程概述 到实验四为止,ucore还一直在核心态“打转”,没有到用户态执行。提供各种操作系统功能的内核线程只能在CPU核心态运行是操作系统自身的要求,操作系统就要呆在核心态,才能管理整个计算机系统。但应用程序员也需要编写各种应用软件,且要在计算机系统上运行。如果把这些应用软件都作为内核线程来执行,那系统的安全性就无法得到保证...