操作系统
Linux永远滴神!
小菜鸡
展开
-
Nachos Lab4 文件系统
Lab4 文件系统todo:makedep【实习建议】数据结构的修改和维护文件管理的升级基于对原有Nachos数据结构的修改。增加文件的描述信息需对文件头结构进行简单修改。多级目录中可创建目录也可创建文件,应根据实际的文件类型初始化文件头信息。实现多级目录应当注意目录文件的含义。每个目录对应一个文件,通过此文件可了解其子目录及父目录的信息。Nachos的目录文件大小是预先定义的,但实际上,目录文件的大小应根据内容确定,且能改变。实现多级目录后,添加、删除目录项要根据原创 2020-11-21 17:26:03 · 1308 阅读 · 0 评论 -
Nachos Lab3 同步机制
lab3 同步机制任务完成情况ExercisesY/NExercise1YExercise2YExercise3YExercise4Y*challenge1YExercise1 调研调研Linux中实现的同步机制。Locking in the Linux Kernel在include/linux路径下:互斥锁mutex.h其他锁spinlock.hrwlock.h…结论Linux在内核中实现了很多种类不同的原创 2020-11-20 01:07:00 · 434 阅读 · 0 评论 -
Nachos Lab2 虚拟内存
Lab3 虚拟内存任务完成情况ExerciseY/NExercise1YExercise2YExercise3YExercise4YExercise5YExercise6YExercise7Y*challengeYExercise 1 源代码阅读一些值得注意的细节如果要让Nachos运行用户程序,需要在MakeFile中添加-DUSER_PROGRAM。之后,一切的#ifdef USER_PROGRAM范围内的内容都原创 2020-11-15 23:36:41 · 1994 阅读 · 1 评论 -
XV6 swtch.S详解
XV6 swtch.S详解swtch函数的执行过程:void swtch(struct context **old, struct context *new);当任意进程调用swtch函数时,会将它的两个参数压栈,并且将swtch的下一条指令的地址压栈(即EIP),ESP寄存器保存栈顶地址,函数调用时,context *new 和context *old都作为已知参数传入。此时它的栈空间是这样的:movl 4(%esp), %eaxmovl 8(%esp), %edx执行了这两条语句之后,它原创 2020-10-31 09:06:46 · 729 阅读 · 0 评论 -
Nachos LAB1 线程机制和线程调度实现
Author:LiTangStudent ID:*************E-mail:litang@stu.pku.edu.cnLAB1 线程机制和线程调度实现调研Linux的进程控制块五个互斥状态状态描述TASK_RUNNING表示进程正在执行,或者已经准备就绪,等待处理机调度TASK_INTERRUPTIBLE表示进程因等待某种资源而被挂起(阻塞态),一旦资源就绪,进程就会转化为TASK_RUNNING态TASK_UNINTERRUPTIBLE与TAS原创 2020-10-26 23:32:21 · 1821 阅读 · 2 评论