CPS 445: Systems Programming II/Winter 2007

CPS 445 (3 sem hrs)

Syllabus

Pre-requisites: CPS 444 (Systems Programming I)

Meeting times: M W 5:55pm-7:10pm, MH 203

Instructor: Dr. S. Perugini, AN 145, 229-4079, perugisa at udayton dot edu, OHs: M W 3:30pm-4:30pm and by appointment.

Required textbook:
    [USP] UNIX Systems Programming: Concurrency, Communication, and Threads by K.A. Robbins and S. Robbins. Prentice Hall, 2003. ISBN: 0-13-042411-0.
Recommended textbooks:
    [CPL] The C Programming Language by B.W. Kernighan and D.M. Ritchie. Prentice Hall, Second edition, 1988. ISBN: 0-13-110362-8.
    [UPE] The UNIX Programming Environment by B.W. Kernighan and R. Pike. Prentice Hall, Second edition, 1984. ISBN: 0-13-937681-X.

Course outline, lecture notes, and reading assignments (to be completed prior to class):
  1. Fundamentals ([USP] Preface, Ch1-7):
    1. introduction, course outline, programs, processes, and threads (Preface, Ch1, 2): Jan 3
    2. processes in UNIX (fork, wait, and exec; Ch3): Jan 8 10
    3. UNIX I/O (read, write, select, and poll; Ch4): Jan 17 22
    4. files and directories (inodes; hard and symbolic links; Ch5): Jan 24
    5. Exam 1: Jan 29 (closed book, closed notes)
    6. UNIX special files (pipes & FIFOs; §§6.1-6.3): Feb 5
    7. pipes and the client-server model (§6.4): Feb 7
    8. terminals (§6.5) and terminal control (§6.6): Feb 12
    9. the token ring [Robbins & Robbins' Process Ring Simulator User's Guide] (Ch7): Feb 14 19 26 28
    10. Exam 2: Feb 21 (closed book, closed notes)
  2. Asynchronous events ([USP] Ch8-9, 11):
    1. signals (Ch8): Mar 5 7 19
    2. command shells (Ch11): Mar 21 28 Apr 2 4
    3. Exam 3: Mar 26 (closed book, closed notes)
    4. times (§§9.1-9.2): Apr 11
    5. timers (§§9.3-9.7): Apr 16 23
  3. Concurrency ([USP] Ch12-14)
    1. POSIX threads (Ch12): Apr 23
    2. thread synchronization (Ch13): Apr 25
    3. critical sections and semaphores (Ch14): Apr 25

  4. Final Exam: W May 2, 5:55pm-7:45pm, MH 203 (comprehensive, closed book, closed notes)
Homeworks (50 pts each; from [USP]):
  1. (coverage: Ch3; assigned: 1/8; due: 1/17): Process Chains (§3.8: pp. 87-88) or Process Fans (§3.9: pp. 88-89)
  2. (coverage: Ch4; assigned: 1/17; due: 1/24): A cat Utility (§4.10: pp. 141-142)
  3. (coverage: Ch5; assigned: 1/31; due: 2/7): The which command (§5.5: pp. 173-174), Biffing (§5.6: pp. 174-177), News biff (§5.7: pp. 177-178), or Traversing Directories (§5.8: pp. 179-181)
  4. (coverage: Ch6; assigned: 2/7; due: 2/14): Audio (§6.7: pp. 219-221), Barriers (§6.8: pp. 221-222), The stty Command (§6.9: p. 223), or Client-Server Revisited (§6.10: p. 223)
  5. coverage: Ch1-7; assigned: 2/21; due: 2/28): Pipelined Preprocessor (§7.9: pp. 243-245)
  6. coverage: Ch1-7; assigned: 2/21; due: 3/7): Parallel Ring Algorithms: Matrix multiplication (§7.10: pp. 246, 249-250)
  7. (coverage: Ch8; assigned: 3/7; due: 3/21): Dumping Statistics (§8.9: p. 299) or Spooling a Slow Device (§8.10: pp. 299-300)
  8. (coverage: §§11.5-11.7: pp. 386-401; assigned: 3/28; due: 4/4): Exercise 11.25 (p. 391) and Exercise 11.35 (p. 401)
  9. (coverage: Ch1-8, 11; assigned: 4/4; due: 4/16): A job list object (§11.8.1: pp. 402-403), The job list in ush (§11.8.2: pp. 403-404), and Job control in ush (§11.8.3: p. 404)
  10. (coverage: §9.1: pp. 302-313 and §9.3: pp. 315-320; assigned: 4/16; due: 4/25): Exercise 9.13 (p. 319, with `How can you' removed from the question) or modify timechild.c (p. 313) as described in class
Grades: WebCT

Accounts: CPS account access @ home | UNIX account access | CPS labs hours | Keeping your password safe | A beginner's guide to effective e-mail
If you are unable to log into your CPS (Windows or UNIX) account or if you forget your CPS (Windows or UNIX) account password, contact the CPS systems administrator, Mr. Tramontana, at tramonjr at notes dot udayton dot edu or 229-3835, and be as specific as possible. Mr. Tramontana's office is located in the back of AN 131 and his office hours are M T W Th F 8:30am-4:30pm.

Readings and resources: [USP] webpage (contains links to all programs in the text) | the D programming language

Helpful links: UD academic calendar | UD student handbook | UDit policies 

Feedback: Dr. Perugini welcomes any feedback you may have on the style of the lectures, the concepts presented in class, the course webpage, homeworks, deadlines, course and grading policies, or your general experience in the course.
© S. Perugini, Winter 2007, University of Dayton. Permission to use ideas about the organization of topics and any notes or material is granted, provided suitable acknowledgments and citations are made.