Purdue University - Department of Computer Science - CS 252: Systems Programming

CS 252: Systems Programming

Prerequisite:

CS 25000 (Computer Architecture)

CS 25100 (Data Structures and Algorithms) (Corequisite)

 

Detailed Syllabus:

Program Generation, Representation, and Transformation

1. Introduction, review of addresses, pointers, memory layout, text, data, and bss segments, global and local variables

2. Compilers, linkers, loaders and binding times.

3. File types, object (.o), executable files (a.out), static libraries (.a) and shared libraries(.so)


Scripting

4. Shell and command-lines, local and environment variables, binding times, strings and escapes, path and program selection

5. Shell scripts, conditional (if and case) and iterative (while and for) statements, string evaluation

6. Unix tools: sed, echo, test, find, etc.

7. Additional shell commands such as trap and eval 8. Awk programming, scripts that use create programs



UNIX Systems Programming and File Systems

9. Unix File Systems, hierarchical directory structure, files, inodes

10. Hard and symbolic links, file names, file access and access lists, permissions

11. Unix System calls. Open, close, read, write, pipe, dup, dup2, etc.

12. Process creation and execution using fork and exec

13. File descriptors, inheritance, and relation to processes



Threads and Synchronization

14. Preemptive scheduling, context switch

15. Thread creation, synchronization, and scheduling

16. Critical Sections

17. Mutex Locks, semaphores or condition variables

18. Deadlock and deadlock prevention


Networking Programming

19. Socket Basics, IP Addresses and Port numbers

20. Clients and Servers, Basic socket programming

21. Concurrent Servers


Programming and Project Tools

22. Unix make, uses in compiling and testing, other uses

23. Version control systems

24. Using a symbolic debugger

Last Updated: Apr 25, 2017 4:43 PM

Department of Computer Science, 305 N. University Street, West Lafayette, IN 47907

Phone:(765) 494-6010 • Fax: (765) 494-0739

Copyright © 2016 Purdue University | An equal access/equal opportunity university | Copyright Complaints

Trouble with this page? Disability-related accessibility issue? Please contact the College of Science.