操作系统
荒野之萍
个人主页: https://icoty.github.io
Github: https://github.com/icoty
展开
-
Nachos-Lab1-完善线程机制
文章目录Nachos是什么目录结构环境源码获取内容一:总体概述内容二:任务完成情况任务完成列表(Y/N)具体Exercise的完成情况Exercise1 调研Exercise2 源代码阅读Exercise3 扩展线程的数据结构Exercise4 增加全局线程管理机制内容三:遇到的困难以及解决方法困难1困难2内容四:收获及感想内容五:对课程的意见和建议内容六:参考文献Nachos是什么Nach...原创 2019-05-14 20:13:18 · 1389 阅读 · 0 评论 -
Nachos-Lab2-线程调度模块实现
文章目录源码获取内容一:总体概述内容二:任务完成情况任务完成列表(Y/N)具体Exercise的完成情况Exercise1 调研Exercise2 源代码阅读Exercise3 **线程调度算法扩展**Challenge **线程调度算法扩展**(至少实现一种算法)内容三:遇到的困难以及解决方法困难1内容四:收获及感想内容五:对课程的意见和建议内容六:参考文献源码获取https://gith...原创 2019-05-14 20:23:09 · 1066 阅读 · 0 评论 -
XV6源代码阅读-进程线程
文章目录Exercise1 源代码阅读Exercise2 带着问题阅读参考文献Exercise1 源代码阅读基本头文件:types.h param.h memlayout.h defs.h x86.h asm.h mmu.h elf.htypes.h:仅仅是定义uint, ushort, uchar pde_t别名;typedef unsigned int uint;type...原创 2019-06-09 16:39:11 · 3416 阅读 · 0 评论 -
XV6源代码阅读-中断与系统调用
文章目录Exercise1 源代码阅读Exercise2 带着问题阅读参考文献Exercise1 源代码阅读启动部分: bootasm.S bootmain.c 和xv6初始化模块:main.cbootasm.S 由16位和32位汇编混合编写成的XV6引导加载器。bootasm.S内的汇编代码会调用bootmain.c中的void bootmain(void);main.c主函数内部初...原创 2019-06-09 16:43:07 · 1406 阅读 · 0 评论 -
XV6源代码阅读-虚拟内存管理
Exercise1 源代码阅读内存管理部分: kalloc.c vm.c 以及相关其他文件代码kalloc.c:char * kalloc(void)负责在需要的时候为用户空间、内核栈、页表页以及缓冲区分配物理内存,将物理地址转为虚拟地址返回,物理页大小为4k。void kfree(char * v)接收一个虚拟地址,找对对应的物理地址进行释放。xv6使用空闲内存的前部分作为指针域来指向...原创 2019-06-09 16:47:53 · 2593 阅读 · 0 评论 -
XV6源代码阅读-同步机制
Exercise1 源代码阅读锁部分:spinlock.h/spinlock.c以及相关其他文件代码// Mutual exclusion lock.struct spinlock { uint locked; // 0未被占用, 1已被占用 // For debugging: char *name; // Name of lock. struct cpu...原创 2019-06-09 16:50:02 · 1524 阅读 · 0 评论 -
XV6源代码阅读-文件系统
Exercise1 源代码阅读文件系统部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec.cbuf.h:对xv6中磁盘块数据结构进行定义,块大小为512字节。// xv6中磁盘块数据结构,块大小512字节struct buf { int flags; // DIRTY, V...原创 2019-06-09 16:52:02 · 1426 阅读 · 0 评论