Skip to content

NJU ICS PA - 已完成2019秋季x86架构的所有必做和部分选做coding

Notifications You must be signed in to change notification settings

LittleSec/ics-pa

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICS2019 Programming Assignment

This project is the programming assignment of the class ICS(Introduction to Computer System) in Department of Computer Science and Technology, Nanjing University.

For the guide of this programming assignment, refer to http://nju-ics.gitbooks.io/ics2019-programming-assignment/content/

To initialize, run

bash init.sh

The following subprojects/components are included. Some of them are not fully implemented.

memo(一周目)

  1. ISA=x86
  2. pa3 和 pa4 的选做题都没有做, pa5 没做.
  3. pa4 中最难的选做题: 支持开机菜单程序的运行 解题思路应该是的 sys_execve(), 需要创建合适的pcb和上下文并进行调度和终止.
  4. 部分回答题依然思考不出答案
  5. pa4 分支的管理有问题, 当时创建并切换后又切回到 master 分支, 所以 pa4 的实际提交都是从 master 分支合并过去的.
  6. 总用时约三周, 15天左右, 平均一天6小时, 基本和讲义所写的平均时间一致(但讲义所写的平均时间是算上 homework 的, 所以应该比平均时间要长).
    • 难度其实是逐步叠加, 但不意味着新增代码量也越来越多, pa2 的代码量最多, pa3 和 pa4 重在理解, 理解了剩下的 coding 工作相对简单.
    • 一方面是的对代码框架的理解, 一方面是的对讲义的理解
  7. 几个难理解的点:
    • DiffTest 中和 qemu 的通信和同步问题, 这也是 pa3 和 pa4 选做题的难度之一, pa3 后几乎没用过DiffTest调试了
    • AM 层的理解, 这个属于框架的问题, 即几个项目之间的关系, 不理解的话 pa4 的部分选做题几乎做不了
    • irq 的处理过程还需要多加思考, 只理解了基本的
    • 进程调度中的上下文切换, 这其实和 irq 的处理有关的

About

NJU ICS PA - 已完成2019秋季x86架构的所有必做和部分选做coding

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.0%
  • Raku 2.9%
  • C++ 1.5%
  • Perl 0.4%
  • Makefile 0.1%
  • Assembly 0.1%