CPS 445: Systems Programming II/Winter 2006

Operating system structures, system calls and libraries, interprocess communication, pipes, signals, times and timers, and threads. Concepts presented in UNIX and C. CPS 445 is a programming-intensive course and will serve as a gateway to studies in networking and system administration.

syllabus (pdf)

Pre-requisite: CPS 444: Systems Programming I

Meeting times: M W 5:55-7:10p, MH 205

Instructor: Dr. Saverio Perugini, AN 145, 229-4079, saverio at udayton dot edu, OHs: M W 7:10-8:10p 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.

Lecture summaries and reading assignments:
(click on a date to view lecture summary for that class)
  1. Introduction and processes ([USP] Ch1-3): Jan 9 11 18 23
  2. UNIX I/O, (special) files, and directories ([USP] Ch4-6): Jan 25 Feb 1 6 8 13 15 20
  3. The Token Ring ([USP] Ch7): Feb 22 Mar 1 6 8
  4. Signals ([USP] Ch8): Mar 20 22 27 29
  5. Command Shells ([USP] Ch11): Apr 10 12
  6. Times and Timers ([USP] Ch9): Apr 19 24 26

  7. Exam 1 (Jan 30, closed book, closed notes)
    Exam 2 (Feb 27, closed book, closed notes)
    Exam 3 (Apr 3, closed book, closed notes)
    Final Exam (5:55-7:45p, May 3, MH 205; comprehensive, closed book, closed notes)
(how to submit assignments)
(programming style guide)
Homeworks (50 pts each; from [USP]):
  1. (coverage: Ch2; assigned: 1/18; due: 1/25): An env utility (§2.12: pp. 54-55) or Message Logging (§2.13: pp. 55-56)
  2. (coverage: Ch3; assigned: 2/1; due: 2/8): Process Chains (§3.8: pp. 87-88) or Process Fans (§3.9: pp. 88-89)
  3. (coverage: Ch4-5; assigned: 2/8; due: 2/15): Atomic Logging (§4.9: pp. 135-141), 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/15; due: 2/22): 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: Ch8; assigned: 3/29; due: 4/10): Dumping Statistics (§8.9: p. 299) or Spooling a Slow Device (§8.10: pp. 299-300)
  6. (coverage: §§11.5-11.7: pp. 386-401; assigned: 4/10; due: 4/12): Exercise 11.25 (p. 391) and Exercise 11.35 (p. 401)
  7. (coverage: §9.1: pp. 302-313 and §9.3: pp. 315-320; assigned: 4/24; due: 4/26): Exercise 9.13 (p. 319, with `How can you' removed from the question) or modify timechild.c (p. 313) as described in class
Projects (100 pts each; from [USP]):
  1. (coverage: Ch1-7;
      (Robbins and Robbins' Process Ring Simulator User's Guide)
    1. assigned: 3/1; due: 3/8; 50 pts): Pipelined Preprocessor (§7.9: pp. 243-245)
    2. assigned: 3/8; due: 3/22; 50 pts): Parallel Ring Algorithms: Matrix multiplication (§7.10: pp. 246, 249-250)
  2. (§11.8) Job Control for ush (coverage: Ch1-8, 11;
    1. assigned: 4/12; due: 4/19; 50 pts): A job list object (§11.8.1, pp. 402-403)
    2. assigned: 4/12; due: 4/26; 50 pts): The job list in ush (§11.8.2: pp. 403-404) and Job control in ush (§11.8.3: p. 404)
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 forgot your CPS (Windows or UNIX) account password, contact the CPS systems administrator, Mr. Halter, at dean dot halter at notes dot udayton dot edu or 229-3835, and be as specific as possible. Mr. Halter's office is located in the back of AN 131 and his office hours are M-F 8:00-5:00p.

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

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, projects, deadlines, course and grading policies, or your general experience in the course.
© Saverio Perugini, Winter 2006, 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.