xv6学习笔记(4) : 进程 xv6所有程序都是单进程、单线程程序。要明白这个概念才好继续往下看 1. XV6中进程相关的数据结构 在XV6中,与进程有关的数据结构如下 与前述的两类信息的对应关系如下 操作系统管理进程有关的信息:内核栈kstack,进程的状态state,进程 ...
https: blog.csdn.net Swartz article details xv 进程切换 swtch函数 进程切换中由于需要保存当前进程的寄存器状态信息,又要将新进程记录的寄存器状态信息加载到寄存器,因此涉及到许多栈的操作,堆栈间的来回切换,容易让人眼花缭乱,难以理解。本文试图分析以下xv 中的进程切换过程。 当前进程通过调用yield函数,进行进程切换。yield函数调用sched ...
2018-07-11 11:50 0 1081 推荐指数:
xv6学习笔记(4) : 进程 xv6所有程序都是单进程、单线程程序。要明白这个概念才好继续往下看 1. XV6中进程相关的数据结构 在XV6中,与进程有关的数据结构如下 与前述的两类信息的对应关系如下 操作系统管理进程有关的信息:内核栈kstack,进程的状态state,进程 ...
1. 下载xv6 从github上拉取xv6的源码: 2. 下载qemu 在Ubuntu下使用apt-get,其他发行版自行搜索如何下载: 3. 测试编译环境 输入下面的命令 第二行应该输出:elf32-i386 输入下面的命令, 应输出: /usr/lib ...
代码在github上。 这一个实验是要利用缺页异常来实现懒分配(lazy allocation)。用户态程序通过sbrk系统调用来在堆上分配内存,而sbrk则会通过kalloc函数来申请内存页面,之后将页面映射到页表当中。 当申请小的空间时,上述过程是没有问题的。但是如果当进程一次申请很大 ...
在包括XV6的绝大部分操作系统都是多个任务交错执行的。交错的一个原因是多核硬件:多核计算机的多个CPU核心独立执行计算,如XV6的RISC-V处理器。多个CPU核心共享物理内存,XV6利用这种共享来维护所有核心都会读写的数据结构。而这种共享会导致一个CPU在读取某数据结构时,可能有另一个CPU正在 ...
Xv6代码阅读报告-Topic3 @肖剑楠 20111013223 Xv6代码阅读报告-Topic3 1. 序 2. 上下文切换 ...
1.进程 1.1 进程的概念 1) 狭义定义:进程是正在运行的程序的实例。 2) 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 1.2 进程的组成 1.3 ...
正在学习MIT的6.S081,把做的实验写一写吧。 实验的代码放在了Github上。 第一个实验是Lab util,算是一个热身的实验,没有涉及到系统的底层,就是使用系统调用来完成几个用户模式的小程序。 Boot xv6 (easy) 启动XV6,按照文档执行就ok了。 在XV6中 ...
这一个实验主要是对RISC-V的汇编、栈帧结构以及陷阱进行简单的了解,难度并不大。 代码放在github上。 RISC-V assembly (easy) Q1: Which registers ...