A comprehensive study of the system calls of operating systems such as UNIX and of the system programming using them. Students will learn the concepts of processes, file abstraction, socket communication, and programming techniques based on them.
The goal of this course is to design and implement system programs using the concepts of UNIX system calls, processes and communication between them, file abstraction, and socket communication.
System call, Process, Socket communication, Signals, Programming Tools, C
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | ✔ Practical and/or problem-solving skills |
Classroom learning is followed by exercises.
Course schedule | Required learning | |
---|---|---|
Class 1 | Introduction | Introduction |
Class 2 | Exercise: UNIX environments | Exercise: UNIX environments |
Class 3 | Input/output and file abstraction | Input/output and file abstraction |
Class 4 | Exercise: Input/output and file abstraction | Exercise: Input/output and file abstraction |
Class 5 | Process and fork | Process and fork |
Class 6 | Pipes | Pipes |
Class 7 | Exercise: Process fundamental | Exercise: Process fundamental |
Class 8 | Exercise: Process advanced | Exercise: Process advanced |
Class 9 | Signals and socket communication | Signals and socket communication |
Class 10 | Exercise: Signals and socket communication | Exercise: Signals and socket communication |
Class 11 | Memory management | Memory management |
Class 12 | Exercise: Memory management | Exercise: Memory management |
Class 13 | System programming tools | System programming tools |
Class 14 | Exercise: System programming tools | Exercise: System programming tools |
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
None required.
W.R. Stevens, S.A. Rago: Advanced Programming in the UNIX Environment, 3rd Edition, Addison-Wesley, 2013.
Course materials will be provided via a website.
Programming Exercises: 50%
Exam or reports: 50%
Students must understand basic concepts of programming using C language and have familiarity with basic Unix terminal commands.
Students are desired to have successfully completed Procedural Programming Fundamentals (CSC.T243) and Advanced Procedural Programming (CSC.T253) or have equivalent knowledge.