🥢如果对您有帮助,请给一个star,感激不尽🥢
- Lab1线程机制——lab1
- Lab2线程调度:
- 基于优先级的抢占式调度算法——lab2-priority
- 时间片轮转算法——lab2-RR
- 多级队列反馈调度算法——lab2-MLFQ
- Lab3同步机制——lab3
- Lab4虚拟内存——lab4
- Lab5文件系统——lab5
- Lab6系统调用——lab6
- Lab7通信死锁:
- 通信——lab7-communication
- 死锁——lab7-deadlock
网络上其它可供参考的实验报告:
- Lab1线程机制
- Lab2线程调度
- Lab3同步机制
- Lab4虚拟内存
- Lab5文件系统
- Lab6系统调用
- Lab7通信死锁
** 所有问题由陈向群老师提供
** 所有答案由北京大学软件与微电子学院2019-2020秋季学期《操作系统高级课程》全体同学贡献
** 在此仅做适当整理
- 新增源代码文件,如何修改makefile
- 线程管理对应的代码在哪里,Nachos的PCB中管理了哪些信息
- nachos线程有几个状态,如何转换?
- 线程fork的时候,指定了线程要执行的函数,线程在执行这些函数之前做了
- Thread::Fork 方法中 scheduler->ReadyToRun,前后两行代码有什么作用
- ThreadRoot()什么时候启动?
- Nachos中如何销毁线程
- 线程销毁的方式是否有问题
- 线程切换时机是什么?线程切换时都做了哪些工作
- thread.h中Thread类的stacktop和machinestate为什么位置不能换?
- system.cc中的TimerInterruptHandler函数作用,为什么调用YieldOnReturn()?
- machine目录下的timer类有什么作用
- oneTick函数的做了什么?何时调用?
- nachos的时钟什么时候会前进,如何前进
- 除了oneTick函数,还有哪个函数修改了stats的ticks?
- Nachos系统时如何维护线程时间片的?
- 说清时钟中断的步骤
- 信号量P操作中有一个while(value==0) 的判断,能否替换为 if(value==0),原因是?
- 会不会在Queue中Append多个相同线程
- Nachos如何保证同步操作的原子性,操作的优缺点。
- 对信号量p操作关中断后,中断何时会打开?
- 如何创建user address space?
- 如何运行user address space中的指令
- Machine::Run()直到用户线程结束后
- nachos中什么时候会发生exception?nachos中是如何接收到exception并处理的?
- 运行用户程序test/sort.c文件到在TLB中
- 不同的线程, 相同的VPN, 他们的物理页面相同吗?
- 用户程序不以exit和halt结束会如何
- 读懂openfile.cc中的ReadAt方法。
- 文件系统文件内容存放的sector的如何得到的
- nachos的目录是如何组织的
- 文件系统初始化的过程
- create文件的过程
- remove一个文件的过程
- nachos系统同步磁盘是怎样实现的?为什么要有这样的同步磁盘机制?如
- machine类中如何处理syscall
- 如何获得传递给系统调用的参数?系统调用的返回值是如何传递给调用者
- 完成系统调用之后如何修改PC值
友情链接:朋友的Nachos4.1学习笔记