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

introduction to cvs and nachos
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 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

slide-3
SLIDE 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

slide-4
SLIDE 4

CVS Commands

export CVSROOT=/path/to/repository Repository

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

slide-5
SLIDE 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

slide-6
SLIDE 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

slide-7
SLIDE 7

CVS Commands

export CVSROOT=/path/to/repository

◮ cvs checkout nachos ◮ edit files ◮ cvs add, cvs remove ◮ cvs checkout nachos

Repository Working Directory Working Directory

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

slide-8
SLIDE 8

CVS Commands

export CVSROOT=/path/to/repository

◮ cvs checkout nachos ◮ edit files ◮ cvs add, cvs remove ◮ cvs commit ◮ cvs checkout nachos

Repository Working Directory Working Directory

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

slide-9
SLIDE 9

CVS Commands

export CVSROOT=/path/to/repository

◮ cvs checkout nachos ◮ edit files ◮ cvs add, cvs remove ◮ cvs commit ◮ cvs checkout nachos ◮ cvs update

Repository Working Directory Working Directory

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

slide-10
SLIDE 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

slide-11
SLIDE 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

slide-12
SLIDE 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

slide-13
SLIDE 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

slide-14
SLIDE 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

slide-15
SLIDE 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

slide-16
SLIDE 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

slide-17
SLIDE 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