CPS 445: Systems Programming II Lecture notes


  1. Fundamentals ([USP] Preface, Ch1-7):
    1. introduction, course outline, programs, processes, and threads ([USP] Preface, Ch1-2)
    2. processes in UNIX (fork, wait, and exec; [USP] Ch3)
    3. UNIX I/O (read, write, poll, and select; [USP] Ch4)
    4. files and directories (inodes; hard and symbolic links; [USP] Ch5)
    5. UNIX special files (pipes & FIFOs; [USP] §§6.1-6.5)
    6. terminals ([USP] §6.5) and terminal control ([USP] §6.6)
    7. the token ring [Robbins & Robbins' Process Ring Simulator User's Guide] ([USP] Ch7)

  2. Asynchronous events ([USP] Ch8-9,11):
    1. signals ([USP] Ch8)
    2. command shells ([USP] Ch11)
    3. times ([USP] §§9.1-9.2)
    4. timers ([USP] §§9.3-9.7)

  3. Concurrency ([USP] Ch12-14)
    1. POSIX threads ([USP] Ch12)
    2. thread synchronization ([USP] Ch13)
    3. critical sections and semaphores ([USP] Ch14)


References

    [CPL] B.W. Kernighan and D.M. Ritchie. The C Programming Language. Prentice Hall, Second edition, 1988.
    [UPE] B.W. Kernighan and R. Pike. The UNIX Programming Environment. Prentice Hall, Second edition, 1984.
    [USP] K.A. Robbins and S. Robbins. UNIX Systems Programming: Concurrency, Communication, and Threads. Prentice Hall, Second edition, 2003.

© S. 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.

Return Home