General Information
My Information
Name: | Jonathan Misurda |
Office: | 6203 Sennott Square |
Phone: | (412) 624-8408 |
Email: | jmisurda@cs.pitt.edu |
Office Hours: | Wed: 3-5 Tue, Thur: 2-4 |
Syllabus
Morning (11am) section | Afternoon (4pm) section |
Announcements
Subscribe to feed(12/05/12) — There is a bug in the lab that running on
unixs.cis.pitt.edu
exposed. Please use thismemset
instead:memset(&addr.sin_zero, 0, sizeof(addr.sin_zero));
Also, please note the
gcc
options below are for unixs only. The thot switches were covered in lecture. On unixs, use-lpthread -lsocket
. On thot, use-pthread
(12/01/12) —
unixs.cis.pitt.edu
can be used for project 5 while the CSSD conversion is going on. To compile a threaded, socket program named server.c, use the commandline:gcc -o server server.c -lpthread -lsocket
(11/28/12) — Office hours are cancelled today, Wednesday, November 28, 2012 due to illness.
(11/27/12) — Project 5 is assigned, due Monday, December 10, 2012 by midnight. The assignment sheet and port assignments can be found below.
(11/08/12) — Project 4 is assigned, due Monday, November 26, 2012, by midnight. The assignment sheet and associated files can be found below.
(10/30/12) — thot is back up.
thot is down until tomorrow morning. I will post an update when things change.
(10/30/12) — 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.
(10/29/12) — All of the slides are up for the second midterm. A few sample problems for the second midterm exam can be found here. After you try it, you can find the answers here.
(10/18/12) — Project 3 is assigned, due Sunday, November 4, 2012, by midnight. The assignment sheet can be found below.
(10/16/12) — The 11am's TA (John Wenskovitch) is out of town. The lab is placed online here for you to do on your own time as practice for the next project. You do not need to turn it in.
(10/11/12) — 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/02/12) — Project 2 is assigned, due Monday, October 15, 2012, by midnight. The assignment sheet can be found below and the executables are now in your directories.
(09/25/12) — 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/17/12) — 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/06/12) — Project 1 is assigned, due Sunday, September 23, 2012, by midnight. The assignment sheet can be found below.
(09/04/12) — Office hours are now posted. Check the updated syllabus linked above for the relevant section.
(08/28/12) — Welcome to CS 449 Fall Term (2131)
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: Multithreaded Web Server
-
Project 4:
/dev/e
- 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: RPS & 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