Skip to content
/ Pintos Public
forked from ITSophia/Pintos

斯坦福大学CS140 Pintos操作系统课程学习手册。

License

Notifications You must be signed in to change notification settings

zhtrb/Pintos

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

斯坦福大学CS140 Pintos操作系统课程官方网址:
http://www.stanford.edu/class/cs140/projects/pintos/pintos.html

详细文档可参阅我的个人博客:
http://mthli.github.io/tags/#Pintos

文件说明:
    1. Doc -- 用于存放一些Pintos相关的参考资料
    2. Release -- 存放了各个Project的完成部分,源码部分包含详细的注释
    3. Test -- 当前正在进行相关代码实现的文件夹
    4. Trash -- 回收站
    5. README -- README文件

进度:
    下列目录树可能没有包含全部修改的文件,参考的时候请注意。
    不过我还是会尽量完善这颗目录树的。

    Project 1 -- Threads (已完成,2014年08月03日)
      |
      | -- Alarm Clock(已完成,2014年05月31日)
      |      |
      |      | -- 修改pintos/src/devices/timer.h文件:
      |      |    增加ticks_cmp()函数声明
      |      |
      |      | -- 修改pintos/src/threads/thread.h文件:
      |      |    修改thread结构体
      |      |
      |      | -- 修改pintos/src/devices/timer.c文件:
      |           修改timer_sleep()函数,
      |           修改timer_interrupt()函数,
      |           增加ticks_cmp()函数的实现
      |
      |
      | -- Priority Scheduling(已完成,2014年06月21日)
      |      |
      |      | -- 修改pintos/src/threads/synch.h文件:
      |      |    增加cmp_sem_priority()函数声明
      |      |
      |      | -- 修改pintos/src/threads/synch.c文件:
      |      |    修改sema_down()函数,
      |      |    修改sema_up()函数,
      |      |    修改lock_acquire()函数,
      |      |    修改lock_try_acquire()函数,
      |      |    修改lock_release()函数,
      |      |    修改cond_wait()函数,
      |      |    修改cond_signal()函数,
      |      |    增加cmp_sem_priority()函数的实现
      |      |
      |      | -- 修改pintos/src/threads/thread.h文件:
      |      |    修改thread结构体定义,
      |      |    增加refresh_priority()函数声明,
      |      |    增加donate_priority()函数声明,
      |      |    增加remove_with_lock()函数声明,
      |      |    增加cmp_priority()函数声明,
      |      |    增加test_yield()函数声明
      |      |
      |      | -- 修改pintos/src/threads/thread.c文件:
      |           修改thread_create()函数,
      |           修改thread_unblock()函数,
      |           修改thread_yield()函数,
      |           修改thread_set_priority()函数,
      |           修改thread_get_priority()函数,
      |           修改init_thread()函数,
      |           增加refresh_priority()函数的实现,
      |           增加donate_priority()函数的实现,
      |           增加remove_with_lock()函数的实现,
      |           增加cmp_priority()函数的实现,
      |           增加test_yield()函数的实现
      |
      | -- Advanced Scheduler(已完成,2014年08月03日)
             |
             | -- 使用了Alarm Clock中全部修改的文件,
             |    使用了Priority Scheduling中全部修改的文件
             |
             | -- 在pintos/src/devices/timer.c文件中:
             |    修改timer_interrupt()函数
             |
             | -- 在pintos/src/threads/synch.c文件中:
             |    修改sema_down()函数,
             |    修改sema_up()函数,
             |    修改lock_acquire()函数,
             |    修改lock_try_acquire()函数,
             |    修改lock_release()函数
             |
             | -- 在pintos/src/threads/thread.h文件中:
             |    修改thread结构体
             |    增加calculate_load_avg()函数声明,
             |    增加calculate_recent_cpu()函数声明,
             |    增加calculate_mlfqs_priority()函数声明,
             |    增加recent_cpu_increment()函数声明,
             |    增加update_recent_cpu_and_load_avg()函数声明,
             |    增加int_to_fp()函数声明,
             |    增加fp_to_int_round_zero()函数声明,
             |    增加fp_to_int_round_nearest()函数声明,
             |    增加fp_add()函数声明,
             |    增加fp_sub()函数声明,
             |    增加fp_add_int()函数声明,
             |    增加fp_sub_int()函数声明,
             |    增加fp_mul()函数声明,
             |    增加fp_div()函数声明,
             |    增加fp_mul_int()函数声明,
             |    增加fp_div_int()函数声明
             |
             | -- 在pintos/src/thread/thread.h文件中:
                  增加calculate_load_avg()函数的实现,
                  增加calculate_recent_cpu()函数的实现,
                  增加calculate_mlfqs_priority()函数的实现,
                  增加recent_cpu_increment()函数的实现,
                  增加update_recent_cpu_and_load_avg()函数的实现,
                  增加int_to_fp()函数的实现,
                  增加fp_to_int_round_zero()函数的实现,
                  增加fp_to_int_round_nearest()函数的实现,
                  增加fp_add()函数的实现,
                  增加fp_sub()函数的实现,
                  增加fp_add_int()函数的实现,
                  增加fp_sub_int()函数的实现,
                  增加fp_mul()函数的实现,
                  增加fp_div()函数的实现,
                  增加fp_mul_int()函数的实现,
                  增加fp_div_int()函数的实现

    Project 2 -- User Programs
      |
      | -- Process Termination Messages(实现中...)

参考:
    1. https://github.com/rtwilson/Pintos-Project-1
    2. https://github.com/codyjack/OS-pintos

协议:
http://www.stanford.edu/class/cs140/projects/pintos/pintos_14.html#SEC172

About

斯坦福大学CS140 Pintos操作系统课程学习手册。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 76.9%
  • Perl 17.6%
  • Assembly 2.9%
  • C++ 2.4%
  • Other 0.2%