1 / 25

Switching to Blackboard

Switching to Blackboard. All assignments will be submitted through blackboard To access, you need to do the following: Get your UNET id and set a password. Contact UNET helpdesk or the IT helpdesk if necessary. Can also call 800 number on blackboard homepage. http://www.courses.maine.edu/

gailmoon
Download Presentation

Switching to Blackboard

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Switching to Blackboard • All assignments will be submitted through blackboard • To access, you need to do the following: • Get your UNET id and set a password. Contact UNET helpdesk or the IT helpdesk if necessary. • Can also call 800 number on blackboard homepage. • http://www.courses.maine.edu/ • All future homework/projects must be submitted via the digital dropbox on blackboard.

  2. Proposed Schedule Modification • Reschedule preliminary 1 to Monday, October 4th. • Reschedule due date for project part 1 to Wednesday October 6th.

  3. Midterm • READING: • You are responsible for all of the material covered in the book • up to (but not including) Section 2.3.7 except for the following sections: • Chapter 1: 1.2.1, 1.2.2, 1.2.4, 1.2.5, 1.3, 1.5.8, 1.7 to the end of the chapter. • Chapter 2: 2.2.6, 2.3.7 to the end of the chapter. • Also responsible for all class slides!! • Please make sure you review the material carefully because large pieces of it is not covered in the book.

  4. Dining Philosophers (1) • Philosophers eat/think • Eating needs 2 forks • Pick one fork at a time • How to prevent deadlock

  5. Dining Philosophers A nonsolution to the dining philosophers problem

  6. Dining Philosophers Solution to dining philosophers problem (part 1)

  7. Dining Philosophers Solution to dining philosophers problem (part 2)

  8. 0 0 0 0 0 State Array S Array T T T T T Mutex = 1 NULL Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ;

  9. 1 0 0 0 0 State Array S Array E T T T T Mutex = 0 NULL 2 1 1 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ;

  10. State Array S Array E T T T T Mutex = 0 NULL 1 0 0 0 0 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; up(mutex) ; down(S[0]) ;

  11. 0 0 0 0 0 State Array S Array E T T T T Mutex = 1 NULL Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; up(mutex) ; down(S[0]) ; // falls through to //critical section Preempted

  12. 0 0 0 0 0 State Array S Array E T T T T Mutex = 1 NULL 1 1 1 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ;

  13. 0 0 0 0 0 State Array S Array E T T T T Mutex = 0 NULL 1 1 1 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ;

  14. 0 0 0 0 0 State Array S Array E T T T T Mutex = 0 NULL 1 1 1 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ;

  15. 0 0 1 0 0 State Array S Array E T E T T Mutex = 0 NULL 1 1 2 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ;

  16. 0 0 1 0 0 State Array S Array E T E T T Mutex = 0 NULL 1 1 2 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ;

  17. 0 0 0 0 0 State Array S Array E T E T T Mutex = 1 NULL 1 1 1 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ; //falls through semaphore //and enters critical section.

  18. 0 0 0 0 0 State Array S Array E T E T T Mutex = 1 NULL 1 1 1 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ; eat() !!! P3: take_forks(3) ; down(mutex) ; test(3) ; up(mutex) ; down(S[3]) ;

  19. 0 0 0 -1 0 State Array S Array E T E H T Mutex = 1 NULL 1 1 1 0 1 Mutex.queue S[3].queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ; eat() !!! P3: take_forks(3) ; down(mutex) ; test(3) ; up(mutex) ; down(S[3]) ; P3

  20. 0 0 0 -1 0 State Array S Array E T E H T Mutex = 1 NULL 1 1 1 0 1 Mutex.queue S[3].queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ; eat() !!! P3: take_forks(3) ; down(mutex) ; test(3) ; up(mutex) ; down(S[3]) ; P2: put_forks(2) ; down(mutex) ; set state[2] = Thinking. test(1) ; P3

  21. 0 0 0 -1 0 State Array S Array E T T H T Mutex = 0 NULL 1 1 1 0 1 Mutex.queue S[3].queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ; eat() !!! P3: take_forks(3) ; down(mutex) ; test(3) ; up(mutex) ; down(S[3]) ; P2: put_forks(2) ; down(mutex) ; set state[2] = Thinking. test(1) ; //left neighbor not //hungry. P3

  22. 0 0 0 -1 0 State Array S Array E T T H T Mutex = 0 NULL 1 1 1 0 1 Mutex.queue S[3].queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ; eat() !!! P3: take_forks(3) ; down(mutex) ; test(3) ; up(mutex) ; down(S[3]) ; P2: put_forks(2) ; down(mutex) ; set state[2] = Thinking. test(1) ; test(3) ; P3

  23. 0 0 0 0 0 Ready Queue P3 State Array S Array E T T T T Mutex = 0 NULL 1 1 1 1 1 Mutex.queue P0: take_forks(0) down(mutex) ; test(0) ; down(S[0]) ; Preempted P2: take_forks(2) ; down(mutex) ; test(2) ; up(mutex) ; down(S[2]) ; eat() !!! P3: take_forks(3) ; down(mutex) ; test(3) ; up(mutex) ; down(S[3]) ; P2: put_forks(2) ; down(mutex) ; set state[2] = Thinking. test(1) ; test(3) ;

  24. Dining Philosophers Solution to dining philosophers problem (part 2)

  25. Create Deadlock down(S[x]) ; up (mutex) ;

More Related