CSE3221.3Z Operating
System Fundamentals
Winter Term 2010-11
Section
|
3221Z
|
Time, Location
|
TR14:30-16:00, CLH 110
|
Instructor
|
Hui Jiang
|
E-mail
|
hj@cse.yorku.ca
|
Office Hours
|
R 16:00-17:00
(or by appointment)
|
Office
|
CSB 3014
|
Announcements: (refresh your browser)
- Apr 9:
Your final marks and unofficial grades are
posted on ePost. You can check from (https://www.cse.yorku.ca/~roumani/ePost/server/ep.cgi).
- Apr 4:
Your A2 marks and TA comments are posted on ePost. You can check from (https://www.cse.yorku.ca/~roumani/ePost/server/ep.cgi).
- Apr 1:
The final covers all in this course, primarily based on the lecture notes,
slides + black board, text. The reviewing list includes:
v Introduction:
lecture notes/slides only;
v Process:
3.1– 3.4;
v Thread:
4.1—4.4;
v CPU
Scheduling: 5.1—5.5;
v Process
Synchronization: 6.1—6.6;
v Memory
management: 8.1—8.8;
v Virtual
memory: 9.1-9.6, 9.9.
But the final will stress the last three
chapters in bold.
- Mar
29: Lecture notes for week ten are posted below.
- Mar 24:
The due date for A2 is extended to March 28th (23:59). In A2, you are required to use lseek() to get
file offset, lseek() should work with open(), read(), write(), close().
Note that lseek() does NOT work with any other f*() functions, such as
fopen(), fgets(), fgetc(), etc.
- Mar
17: Lecture notes for week nine are posted below.
- Mar
15: Lecture notes for week eight are posted below. Your project marks and
comments are posted on ePost and you can check from (https://www.cse.yorku.ca/~roumani/ePost/server/ep.cgi). As part of marking, your codes are evaluated
with a new CPU load file and the expected
results are here.
- Mar 8:
Assignment 2 is posted below. The due date for A2 is March 25th
(23:59). The class evaluation has been scheduled at 2:30pm on March 22nd.
- Mar 3:
Lecture notes for week six are posted below.
- Mar 1:
Your midterm marks are posted on ePost at (https://www.cse.yorku.ca/~roumani/ePost/server/ep.cgi).
The due date for project is further
extended to Mar 7th (23:59).
- Feb
18: For your self-study purpose, I have posted sample codes for A1: process.c
and thread.c.
If you still have any questions regarding A1, please study these two
programming for algorithm implementation as well as programming style.
- Feb
17: Lecture notes for week five are posted below. Your A1 marks are
posted on ePost at (https://www.cse.yorku.ca/~roumani/ePost/server/ep.cgi). The due date for project is extended
to Mar 4th (23:59).
- Feb
10: Some programming hints and reference results to the given CPU workload
file in the project is posted here
for your reference.
- Feb
10: Midterm is to be held in next Tuesday (Feb 15). The midterm covers the
following sections:
v Class
lecture notes (slide handouts
& blackboard)
v Text
Book
¤
Chapter 1:
all sections
¤
Chapter 2:
2.1—2.6, 2.11, 2.12
¤
Chapter 3:
3.1— 3.4, 3.5.1, 3.6.3, 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
For your reviewing, a sample of previous
midterm is posted here for
your reference. Please note the materials related to Question 6 will NOT be
covered in this yearŐs midterm.
- Feb 6:
For A1, you can run a simple Unix script to verify if your code generates
correct results. For example, the following command show the top 10 most
frequent words in file "dataset1.txt":
>
cat dataset1.txt | tr -s ' ' '\n' | sort | uniq -c | sort -k1 -n -r | head -n
10
- Feb 3:
Lecture notes for week four are posted below. Project is posted here and it is
due on Feb 28.
- Feb 1:
some C examples used in class, thread.c, alarm.c, alarm_fork.c
and alarm_thread.c.
- Jan
27: Lecture notes for week three are posted below. The
due date of Assignment one is extended to 23:59 on Feb 7.
- Jan
18: Assignment one
is posted below. It is due by 23:59 on Jan 31.
- Jan
17: Lecture notes for week two are posted below.
- Jan 5:
In-class midterm is tentatively set on Feb 15 (Tuesday)
Feb
17 (Thursday).
- Jan 4:
Lectures notes for week one are posted below.
- Jan 3:
First class on Jan 4th.
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
- Cannons,
Kevin (kcannons AT cse DOT yorku DOT ca): responsible for A1 and midterm.
- Chen,
Xiwen (xiwenc AT cse DOT yorku DOT ca): responsible for project, A2, midterm and final.
Evaluation
|
Percent of final
grade
|
Set by
|
Due date
|
Returned by
|
TA office hours
|
Assignment
A1
|
5%
|
Jan 17
|
Jan 31Feb 7
|
Feb 15
|
TBA
|
Assignment
A2
|
5%
|
Mar 8
|
Mar 28
|
|
TBA
|
Project
|
10%
|
Feb 3
|
Feb 28Mar 7
|
Mar 15
|
TBA
|
Midterm
|
35%
|
|
Feb 17Feb 15
|
|
N/A
|
Final
|
45%
|
-
|
|
|
N/A
|
The drop date is Friday, Mar. 4, 2011.
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)