CSE3221.3Z Operating
System Fundamentals
Winter Term 2009-10
Section
|
3221Z
|
Time, Location
|
TR14:30-16:00, TEL 1005
|
Instructor
|
Hui Jiang
|
E-mail
|
hj@cse.yorku.ca
|
Office Hours
|
Wed 3-4pm and
Thur 4-5pm
(or by appointment)
|
Office
|
CSB 3014
|
Announcements: (refresh your browser)
- Apr
14: Unofficial grades are available from ePost.
- Apr 6:
A2 marks and comments are available from ePost.
- Mar 23:
The marks and comments of Project are available from ePost. The reference
answers to the posted CPU load file are given as here,
on which your submitted project programs are marked. Lecture notes for
week ten posted below.
- Mar
20: the deadline of A2 is extended to Mar 24 (Wednesday).
- Mar
16: The class on Mar 18 (Thursday) is cancelled since the instructor is
going to a conference. The class evaluation for this course has been
scheduled on Mar 25 (Thursday).
- Mar
11: Lecture notes for week nine posted below.
- Mar 9:
Lecture notes for week eight posted below.
- Mar 2:
Lecture notes for week six posted below. A2 is also posted below.
- Feb
23: Due to the busy midterm season, the due date of Project has been
extended to Mar 7th (Sun) midnight.
- Feb
11: A sample of previous midterm (with reference solution) is posted here
for your reference. Reading list for midterm includes all lecture notes as
well as:
¤
Chapter 1: all sections;
¤
Chapter 2: 2.1—2.6, 2.11,2.12;
¤
Chapter 3: 3.1—3.4, 3.6.3.1, 3.7;
¤
Chapter 4: 4.1—4.4, 4.5.2, 4.6;
¤
Chapter 5: 5.1—5.5, 5.6.3, 5.7, 5.8;
¤
Chapter 6: 6.1—6.4;
- Feb 4:
The deadline for A1 has been extended to this Sunday (Feb 7th,
23:59). The lecture notes for week five are posted below.
- Feb 1:
Lecture notes for week four are posted below. Project write-up is also
posted below.
- Jan
28: Some C examples to be used in class: thread.c, alarm.c, alarm_fork.c,
alarm_thread.c.
- Jan
22: Lecture notes for week three are posted below. Some fork examples used
in class are here.
- Jan
14: Lecture notes for week two are posted below. Assignment one is
also posted below.
- Jan 7:
In-class midterm exam has been scheduled on Feb 25th
(Thursday).
- Jan 5:
Lecture notes for week one are posted below.
- Dec
26: First class on Jan 5th.
Course Summary:
This course is intended to teach students the fundamental
concepts that underlie operating systems, including multiprogramming, concurrent
processes, CPU scheduling, deadlocks, memory management, file systems,
protection and security. Many examples from real systems are given to
illustrate the application of particular concepts. At the end of this course, a
student will be able to understand the principles and techniques required for
understanding and designing operating systems.
The required textbook:
[1]
A. Silberschatz, P. Galvin, G. Gagne, Operating System Concepts, Wiley, 8th
edition.
Other
reference materials:
[1] Advanced Programming in the UNIX Environment, by W. Richard Stevens, Addison-Wesley Pub Co; ISBN:
0201563177; 1st edition. (June 1992).
[2] Programming with POSIX Threads, by David R. Butenhof, Addison-Wesley Pub Co; ISBN:
0201633922; 1st edition (May 1997).
Teaching Assistants
- Shtern, Mark: (mark AT
cse.yorku.ca)
Evaluation
(If you need access them from machines outside the
department, log in via 'telnet' and use 'lynx' (a text browser) or 'wget<URL>' to save the file to
your directory. For details on these commands please refer to the respective man-pages. Then retrieve
the file via ftp. Do not re-publish on the WWW! )
|
Percent of final
grade
|
Set by
|
Due date
|
Returned by
|
TA office hours
|
Assignment
A1
|
5%
|
Jan 16
|
Feb 7th (23:59)
|
Feb 18
|
TBA
|
Assignment
A2
|
5%
|
Mar 5
|
Mar 21
|
Mar 28
|
TBA
|
Project
|
10%
|
Feb 5
|
Mar 7th (23:59)
|
Mar 16
|
TBA
|
Midterm
|
30%
|
|
Feb 25
|
|
N/A
|
Final
|
50%
|
-
|
|
|
N/A
|
The drop date is Friday, Mar. 8, 2008.
Numerical scores (out of 100) are used to calculate grades. Marks can be viewed
via ePost.
Course Schedule and
Lecture Notes:
- Week 1 (3-slide/page,
6-slide/page)
– Introduction: multiprogramming, multitasking, interrupt-driven,
kernel, system calls, etc.
(chapters 1,2)
- Week 2 (3-slide/page,
6-slide/page)
– Process: concept, PCB, context switch, Inter-Process Communication
(IPC), Unix programming (signals, pipes, message queues). (chapter 3)
- Week 3 (3-slide/page,
6-slide/page)
– Thread: concept (vs process), thread models, multithreaded
programming (Pthreads). (Chapter 4)
- Week 4 (3-side/page,
6-slide/page)
– CPU scheduling: criteria, algorithm, implementation. (chapter 5)
- Week 5 (3-side/page,
6-slide/page)
– Process Synchronization (I): critical-section problem &
example, bakery algorithm, PetersonŐs solution. (chapter 6.1-6.3)
- Week 6 (3-side/page,
6-slide/page)
- Process Synchronization (II): hardware solution, semaphore, classic
problems (B-B, R-W,D-P); high-level
tools (monitor). (chapter 6.4-6.8)
- Week 7 (3-side/page,
6-slide/page) – deadlock. (chapter 7)
- Week 8 (3-side/page,
6-slide/page)
– Memory Management (I): logical vs. physical memory, address
binding, swapping; Contiguous memory allocation. (chapter 8.1-8.3)
- Week 9 (3-side/page,
6-slide/page)
- Memory Management (II): paging, segmentation, examples. (chapter 8.4
-8.8)
- Week 10 (3-side/page,
6-slide/page)
– Virtual Memory: demand paging, replacement, thrashing. (chapter 9)
- Week 11 (3-side/page,
6-slide/page) – File-system implementation. (chapter 11)
- Week 12 (3-side/page,
6-slide/page) – Mass-storage structure. (chapter 12)