introduction to cvs and nachos
play

Introduction to CVS and NACHOS CSE 120 UCSD 17 January 2007 CSE - PowerPoint PPT Presentation

Introduction to CVS and NACHOS CSE 120 UCSD 17 January 2007 CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 1 / 10 CVS Basics CVS = Concurrent Versions System Designed to: Keep a history of changes made to your


  1. Introduction to CVS and NACHOS CSE 120 UCSD 17 January 2007 CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 1 / 10

  2. CVS Basics CVS = “Concurrent Versions System” Designed to: ◮ Keep a history of changes made to your source code ◮ make it easy to go back if you break something ◮ Allow multiple people to collaboratively work on the same code ◮ each person gets a private copy ◮ automates merging changes made by other people, so changes are not lost CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 2 / 10

  3. CVS Organization Repository Working Directory Working Directory Repository: Stores entire history of all files, in compressed form (one per project) Working Directory: Where you make develop and make changes (one per person) CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 3 / 10

  4. CVS Commands export CVSROOT=/path/to/repository Repository CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 4 / 10

  5. CVS Commands export CVSROOT=/path/to/repository ◮ cvs checkout nachos Repository Working Directory CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 4 / 10

  6. CVS Commands export CVSROOT=/path/to/repository ◮ cvs checkout nachos ◮ cvs checkout nachos Repository Working Directory Working Directory CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 4 / 10

  7. CVS Commands export CVSROOT=/path/to/repository ◮ cvs checkout nachos ◮ cvs checkout nachos ◮ edit files ◮ cvs add , cvs remove Repository Working Directory Working Directory CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 4 / 10

  8. CVS Commands export CVSROOT=/path/to/repository ◮ cvs checkout nachos ◮ cvs checkout nachos ◮ edit files ◮ cvs add , cvs remove ◮ cvs commit Repository Working Directory Working Directory CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 4 / 10

  9. CVS Commands export CVSROOT=/path/to/repository ◮ cvs checkout nachos ◮ cvs checkout nachos ◮ edit files ◮ cvs update ◮ cvs add , cvs remove ◮ cvs commit Repository Working Directory Working Directory CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 4 / 10

  10. Conflicts in CVS Two people edit the same file. . . $ cvs update RCS file: /home/linux/ieng6/cs120w/cs120w1/cvstest/nachos/ code/threads/synch.h,vretrieving revision 1.1.1.1 retrieving revision 1.2 Merging differences between 1.1.1.1 and 1.2 into synch.h rcsmerge: warning: conflicts during merge cvs update: conflicts found in code/threads/synch.h C code/threads/synch.h CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 5 / 10

  11. Conflicts in CVS CVS tells you what changes were made, but up to you to sort it out: synch.h ... <<<<<<< synch.h // Your code ======= // Their code >>>>>>> 1.2 ... Fix the changes (and remove conflict markers!), then commit. CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 6 / 10

  12. Final Words on CVS Other useful commands: ◮ cvs import ◮ cvs diff ◮ cvs log ◮ cvs tag Lots of documentation available We’ll send out a few more details on using CVS for the projects. CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 7 / 10

  13. A Brief Tour of NACHOS For project 1, you’ll be asked to implement and work with thread synchronization ◮ No userspace yet, only kernel threads ◮ Everything runs in same address space CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 8 / 10

  14. A Brief Tour of NACHOS Modules in code/threads : list : linked list data structure with support for priorities main : NACHOS “boot” code and command-line processing scheduler : maintains queue of threads in “ready” state switch : context-switch code, if you’re curious synch : implements semaphores for synchronization synchlist : synchronized version of list system : sets up interrupts, timer, etc. thread : defines NACHOS kernel threads threadtest : code for testing your threading code utility : random assortment (such as ASSERT ) CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 9 / 10

  15. A Brief Tour of NACHOS Modules in code/threads : list : linked list data structure with support for priorities main : NACHOS “boot” code and command-line processing scheduler : maintains queue of threads in “ready” state switch : context-switch code, if you’re curious synch : implements semaphores for synchronization synchlist : synchronized version of list system : sets up interrupts, timer, etc. thread : defines NACHOS kernel threads threadtest : code for testing your threading code utility : random assortment (such as ASSERT ) CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 9 / 10

  16. A Brief Tour of NACHOS Modules in code/threads : list : linked list data structure with support for priorities main : NACHOS “boot” code and command-line processing scheduler : maintains queue of threads in “ready” state switch : context-switch code, if you’re curious synch : implements semaphores for synchronization synchlist : synchronized version of list system : sets up interrupts, timer, etc. thread : defines NACHOS kernel threads threadtest : code for testing your threading code utility : random assortment (such as ASSERT ) Also see: code/machine/interrupt , for how interrupts are enabled/disabled CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 9 / 10

  17. A Brief Tour of NACHOS Hints for reading the code: ◮ Read through the .h files to see what the interfaces are ◮ Look at the .cc files if you want to see the implementation ◮ The code is well-commented, not too large, so don’t be intimidated ◮ Don’t need to read through everything CSE 120 (UCSD) Introduction to CVS and NACHOS 17 January 2007 10 / 10

Recommend


More recommend