IC221: Systems Programming (SP16)


Home Policy Calendar Resources

Course Calendar

Week Date Class Topic Readings/Notes Assignment/Solutions
1 T 1/12 Lecture 1 UNIX 1
Intro to Unix and Linux
APUE: 1.2 (pg. 1-2), APUE: 1.11 (pg. 21)
Origins and History of Unix
HW 1
W 01/13 Lecture 2 UNIX 2
Unix File System and Command Line Tools
APUE: 1.3, 1.4
cp(1), mv(1), rm(1), rmdir(1), mkdir(1), touch(1), which(1),ls(1)
F 01/15 Lab 1 UNIX 3
File Permissions/Ownership and Unix Familiarization and Command Line Tools

who(1), groups(1), passwd(5), chmod(1), chown(1), chgrp(1)
cat(1), less(1), more(1), head(1), tail(1), sed(1), grep(1), cut(1), sort(1), uniq(1), wc(1)
2 M 01/18 no class MLK Day
W 01/20 Lecture 3 UNIX 4
Unix Design Philosophy and Standard Streams
HW 2
F 01/22 Lab 2 Bash Script Lab

APUE: 1.5, 2.1, 2.3
Advanced Bash Scripting Guide
bash(1)
3 M 01/25 Lecture 4 C Programming 1
Format Input/Output and Basic Types
printf(3), scanf(3) HW 3
W 01/27 Lecture 5 C Programming 2
Structures, Pointers, and Arrays
F 01/29 Lab 3 C prog Lab 1

APUE: 7.4
4 M 02/01 Lecture 6 C Programming 3
Strings and String Library
string(3), strlen(3), strcmp(3) HW 4
W 02/03 Lecture 7 C Programming 4
Command Line Arguments and Double Arrays
atoi(3), sscanf(3)
F 02/05 Lab 4 C prog Lab 2

5 M 02/08 Lecture 8 C Programming 5
Program Memory Layout and Dynamic Memory
APUE: 7.6, 7.8
malloc(3), free(3)
HW 5
W 02/10 Lecture 9 C Programming 6
Dynamic Array Allocation and Data Representation
callco(3)
F 02/12 Lab 5 Memory Leaks and Memory Allocation Lab (simplefs)

6 M 02/15 no class Washington Birthday
W 02/17 Lecture 10 C Programming 7
File Streams
6-Week Practicum Released
APUE: 1.11 (pg 21-23)
fopen(3), fclose(3), fread(3), fwrite(3)
HW 6
F 02/19 6-Week Exam

7 M 02/22 Lecture 11 Operating System 1
User-Space, Kernel-Space and System Call API
APUE: 3.1-2.9 (pg. 61-72)
intro(2), syscalls(2)
HW 7
W 02/24 Lecture 12 Operating System 2
File and Device I/O via System Calls
open(2), close(2), read(2), write(2)
F 02/26 Lab 6 Makefiles, myls, mycp, mytouch lab

stat(1), stat(2)
8 M 02/29 Lecture 13 Processes 1
Process Creation and Management
fork(2), exec(3), wait(2) HW 8
W 03/02 Lecture 14 Processes 2
fork/exec/wait
getpid(2)
F 03/04 Lab 7 minishell lab

9 M 03/07 Lecture 15 Processes 3
Process State and OS Scheduling
nice(2) HW 9
W 03/09 Lecture 16 Processes 4
Terminal Device and Job Control
fg,bg,Ctrl-C,Ctrl-Z,jobs
F 03/11 Lab 8 myps/mypstree

SPRING BREAK

10 M 03/21 Lecture 17 Processes 5
Process Groups and Terminal Signaling
setpgrp(2),setpgid(2),getpgrp(2),getpgid(2) HW 10
W 03/23 Lecture 18 Processes 6
Pipes, Pipelines and File Duplication
pipe(2), dup2(2)
F 03/25 Lab 9 pipeline shell

11 M 03/28 Lecture 19 Processes 7
Signals and Signal Handling
signal(2) HW 11
W 03/30 Lecture 20 Processes 8
Alarms, sigaction() and re-entrant system calls
alarm(3),sigaction()
F 04/01 Lab 10 Signal Handling/fg-shell

tcsetpgrp(2)
12 M 04/04 Lecture 21 File Systems 1
File System, Kernel Data Structures and Open Files
HW 12
W 04/06 Lecture 22 File Systems 2
File Links: Hard and Symbolic
12-Week Practicum Released
ln,link(2),unlink(2)
F 04/08 12-Week Exam

13 M 04/11 Lecture 23 OS Security 1
Setting User/Group Permissions
setuid(2),getuid(2),seteuid(2),geteuid(2) HW 13
W 04/13 Lecture 24 OS Security 2
Path, Injection, and Overflow Attacks
system(3)
F 04/15 Lab 11 Security Lab

14 M 04/18 Lecture 25 Networking 1
Network Fundamentals/Client Server Model
/etc/services, netcat, netstat HW 14
W 04/20 Lecture 26 Networking 2
Socket Addressing and Client Sockets
socket(2),inet_ntoa(3),inet_aton(3),getaddrinfo(3),htons(3),ntohs(3),connect(2),
F 04/22 Lab 12 Socket Client Lab

15 M 04/25 Lecture 27 Networking 3
Server Sockets
bind(2), listen(2), accept(2), select(2) HW 15
W 04/27 Lecture 28 Threading 1
Posix Threads
pthread_create(3), pthread_join(3)
F 04/29 Lab 13 (SOFS) Threading Socket Server Lab

16 M 05/02 Lecture 29 Threading 2
Locking, Deadlock and Concurrency
Final Practicum Released
pthread_mutex_init(3), pthread_mutex_destroy(3), pthread_mutex_lock(3), pthread_mutex_unlock(3)
T 05/03 -- Final Practicum due
-- --

17 M 5/9 -- Final Exam at 755, Location MI110


Last modified: Tue Apr 19 08:49:46 2016