Code Monkey home page Code Monkey logo

pintos's Introduction

斯坦福大学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

pintos's People

Contributors

mthli avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.