19 August, 2011
In this lecture, we will first go through some basic concepts in an OS, including process, address space, file, and shell. We will then revisit how a system call is implemented in more detail. In the second half of the lecture, we will briefly introduce C programming, with an emphasis on pointers.
Download Slides: PDF
Having a hardcopy of slides during lecture would be helpful. Be prepare to take notes during lecture.
Reading:
- Section 1.5: Concepts in OS.
- Section 1.6: System calls (1.6.1 onwards are FYI at the moment — will visit them in details later in the semester).
- Section 1.8: The world according to C.
- Section 10.1, 10.2: Basic background on Linux (FYI)
Useful Materials on C for Java Programmers (from other universities)
- Learning C from Java, by Steven Simpson, Lancaster University
- Java and C Comparison Chart, by James Ezick et. al, Cornell University
- C for Java Programmers, Slides by Niranjan Nagarajan, Cornell University
- Essential C, by Nick Parlante, Stanford University
Related Wikipedia entries are listed below. These are for students who are keen to go beyond what is covered in CS2106. Read the articles with a critical mind since Wikipedia is editable by anyone.
C cheat sheets:
http://math.brown.edu/~jhs/ReferenceCards/CRefCard.v2.2.pdf
http://itp.nyu.edu/compform/c_cheat_sheet.pdf
http://research.cs.queensu.ca/~cisc124/2004f/C_Cheat.pdf
http://171.64.64.250/class/cs107/handouts/05CCheatSheet.pdf
the first and the last one are good…the second one is kinda brief, the third one’s broken…=(
thanks anyway!
The 3rd one is OK for me.
@Ghasem, thanks for sharing!