General Information
My Information
Name: | Jonathan Misurda |
Office: | 6203 Sennott Square |
Phone: | (412) 624-8408 |
Email: | jmisurda@cs.pitt.edu |
Office Hours: | Mon, Wed: 2:00–3:00pm Tue, Thur: 3:00–5:00pm |
Syllabus
You can find a copy of the syllabus here.
Announcements
Subscribe to feed(12/08/11) — A few practice questions for the final.
(12/07/11) — Deep C Slides (unaltered).
(12/02/11) — For Project 5, insert the following code between
socket()
andbind()
to have the port unbound on program termination:int so_reuseaddr = 1;
setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &so_reuseaddr, sizeof(so_reuseaddr));where
sfd
is the file descriptor returned fromsocket()
.(11/28/11) — Project 5 is assigned, due Sunday, December 11, 2011 by midnight. The assignment sheet and port assignments can be found below.
(11/09/11) — Project 4 is assigned, due Tuesday, November 22, 2011 with a penalty-free extension until Sunday, November 27, 2011. The assignment sheet and necessary files can be found below.
(10/31/11) — The test driver for your project is up. You can copy it to your current directory by:
cp /u/SysLab/shared/mallocdrv.c .
Make sure to include the dot at the end.
All of the slides are up for the second midterm. Try your hand at a few practice questions. When you're done, take a look at the answer key and see how you did. If you have questions, ask me or the TAs.
Solutions to the second quiz are available here.
(10/19/11) — Project 3 is assigned, due Tuesday, November 8, 2011. The assignment sheet can be found below.
(10/17/11) — Here's a sample minimal write-up for project 2 if you're wondering how to do it. You don't have to follow this format exactly, it's just an example.
(10/07/11) — A reminder that there is no class or office hours on Monday. We will instead meet on Tuesday at the normal class time. Office hours will follow the Monday schedule as well.
(10/05/11) — Project 2 is assigned, due Tuesday, October 18, 2011. The assignment sheet can be found below.
(09/27/11) — A sample midterm exam can be found here. After you try it, you can find the answers here. This is from a slightly different course that I taught so some topics may have been emphasized differently.
(09/19/11) — I am providing two OGG files (a form of music file) called with.ogg (that has a tag) and none.ogg (that has no tag) to test your project on. You can copy them to your directory by:
cp ~jrmst106/public/cs449/*.ogg .
The dot at the end is critical, as it represents the current directory name. Note that the files have been shrunk to fit better in your AFS quota and likely won't play anymore. This won't affect your project.
(09/07/11) — Project 1 is assigned, due Sunday, September 25, 2011. The assignment sheet can be found below.
My office hours are posted above.
(08/29/11) — Welcome to CS 449 Fall Term (2121)
Text, Slides, and Extra Materials
Topic | Slides (PDF) | Links |
Binary Formats and Linking | Slides | 20 part blog entry on linking (PDF) |
x86 Assembly | Slides | AT&T Syntax |
Function Calls and Calling Convention | Slides 1 Slides 2 |
CS 447 Appendix A |
Processes and Memory Management | Slides | Linux Address Space Layout |
Conditional Compilation Makefiles and Multi-file Development |
Slides | Chapter 18 in the C Textbook Chapter 10 in the C Textbook |
Midterm 2
Topic | Slides (PDF) | Links |
System Calls & Signals | Slides (PDF) | Signals |
Device Drivers under Linux | Slides (PDF) | LLD Chapter 1 (PDF) LLD Chapter 2 (PDF) |
Threads | Slides (PDF) | |
pthreads | Slides (PDF) | More on pthreads ALP chapter on pthreads (PDF) |
Synchronization | Slides (PDF) | Handout (PDF) |
Networks and Berkeley Sockets | Slides (PDF) | Sockets |
Buffers, Errors and Robust Programming | Buffering Slides (PDF) Errors Slides (PDF) |
Ten Commandments for C Programmers |
Final Exam (review slides PDF)
Projects
-
Project 5: Multi-Threaded Web Server
- Port assignments
-
Project 4:
/dev/pi
- QEMU (For everyone, includes disk and Windows executable)
- For Mac users: Q.app. If that is down, try this mirror
- Project 3: A custom malloc()
- Project 2: What's the password?
- Project 1: The Game of Blackjack & ID3 Tag Editor
Links
Reference- C Language
- x86 Instruction Set
-
Download putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
-
Unix Command Reference (from CSSD): Here