IC221: Systems Programming (SP14)
Home Policy Calendar Syllabus Resources Piazza
Course Syllabus
- Intro UNIX and the Operating Systems
- OS Services: Process Management, Memory Management, File System, Networking
- Unix Shell Interface and API: bash and System Calls
- C Programming Language and System Call API
- Inter-Process Communication
- OS I/O Interfaces and Networking
- Unix command line tools
- Navagitation: ls, cd, mv, pwd
- Man Pages: man
- Command Line I/O: echo, cat, pipes, redirects
- File Parsing/Processing: head, tail, cut, sort, uniq, sed, grep, find
- File Permissions: chmod, chown, chgrp
- bash scripting
- Local and Environment Variables: export, $PATH, $EDITOR, $MANPATH
- Command Substitution: $(command), `command`
- String and Arithmetic Comparators
- Conditionals: if, then, else, elif, fi
- Control Flow: for,while, do,done
- C Programming
- Why C? And C vs C++
- C Basic Types, Arrays, and Structs
- C Program Compilation: gcc, clang, make
- C Preprocessor and Compilation Units
- C Pointers: referencing, dereferencing, adressing
- C Strings and Command Line Args: char * , char[] , argv
- C Format Input and Output: printf(), scanf()
- Memory Management: malloc , calloc, free,
- Memory Leaks: valgrind
- Debugging C programs: gdb
- C Systems Programming
- The OS'es role
- Library Functions and System Call: unistd.h, stdio.h
- System Call I/O: read(), write()
- Error Checking System Calls: errno, perror()
- Process I/O: STDIN_FILENO, STDOUT_FILENO, stdin, stdout, fprintf()
6-week Mark
- Processes Creation and Management, and Communication
- Process Creation: fork(), exec(), wait()
- Process Management: getpid(), getppid()
- Signals: alarm(), signal(), killpid()
- Process State: running, waiting, blocked
- Monitoring Process: ps, top, /sys
- Pipelines: dup2
- Process Groups and Jobs: getpgid(), setpgid()
- Foreground and Background: fg, bg
- File System and Memory
- File System Design: FAT, inode
- File System I/O: fopen(), open()
- Linking: link(), symlink(), ln
- Memory Layout: stack, heap, and mmap()
12-week Mark
- Network I/O
- Network Basics: the protocol stack
- Client Server Model
- Network Addressing: hton, ntoh, inet_pton,
- Socket Programming: socket(), bind(), listen, accept, connect recvfrom(), sendto
- Concurrency:
- Threading with Pthreads
- Race conditions and Atomic Operations
- Semaphores and Deadlocks
Last modified: Sat Dec 21 15:47:57 EST 2013