CSE3221.3E Operating
System Fundamentals
Fall Term 2011-12
Section
|
3221E
|
Lectures
|
MW17:30-19:00, @CB115
|
Instructor
|
Hui Jiang
|
E-mail
|
hj AT cse DOT yorku DOT ca
|
Office Hours
|
W 14:00-15:00
(or by appointment)
|
Office
|
CSB 3014
|
Announcements: (refresh your page)
á
Dec 8:
Your unofficial grades (subject to
DepartmentŐs approval) have been posted and you can check it from ePost. Have a great time during the holiday break!!
- Dec 5:
Your marks of A2, Q4, Q5 have been posted and you can check them from ePost. The
final exam will stress the 2nd half of the course. Reading list
for the final:
- Process
Synchronization: 6.1—6.6;
- Memory
management: 8.1, 8.3—8.8;
- Virtual
memory: 9.1-9.3, 9.6,9.9;
You also need to review some
back concepts in the 1st half such as process, threads, interrupt,
OS kernel and so on.
- Nov
30: The memory design problem that
was discussed in class. A reference solution is posted here.
- Nov
28: Lecture notes for Week 11 have been posted below.
- Nov
25: Mouhammad Ali wrote two Unix scripts to run and test the A2 code. He
wants me to share these scripts (run.sh, test_all.sh) with the class. Please feel free to use
them with your own A2 code. For any questions regarding these two scripts,
email him cse81052@cse.yorku.ca.
- Nov
20: Your project marks and TAŐs marking comments are posted. You can check
from ePost.
- Nov
16: Lecture notes for Week 10 has been posted below. The due date of A2
is extended to Nov 27 (midnight).
- Nov
14: Lecture notes for Week 9 has been posted below. Some hints are posted for A2.
- Nov
12: For you to debug the 2nd part of project, you can download
binary codes of RR and FBQ, which run
from your PRISM account.
- Nov 9:
The reference solution to the midterm is posted here.
- Nov 7:
Midterm marks have been posted in ePost. The second due date for the
project (part II) has been extended to Nov 13 (midnight). The course evaluation for this
class has been scheduled at 6:30pm on Wednesday
November 16.
- Nov 7:
Lecture notes for week 7 posted below. The second assignment (A2) is also
posted below.
- Oct
31: The first part of the project is closed. I am posting a
sample code for you to debug your own code so that you will be able to
work on the two remaining schedulers based on your own code. Please note
that you should NOT use my code as a template for the rest of the project.
Otherwise, your codes may not pass plagiarism tests.
- Oct
30: Your marks of A1 and quizzes are posted in ePost. You can check it
from ePost
at https://www.cse.yorku.ca/~roumani/ePost/server/ep.cgi.
- Oct
27: Reading list for the midterm:
- Chapter
1: all sections
- Chapter
2: 2.1—2.6, 2.11, 2.12
- Chapter
3: 3.1— 3.4, 3.6.3,
3.7
- Chapter
4: 4.1– 4.4, 4.6
- Chapter
5: 5.1—5.5, 5.8
- Chapter
6: 6.1, 6.2, 6.3
A sample of previous
midterm exam is posted here for your
practice.
- Oct
26: For you to debug your code in the project, a much smaller test file is
posted here. The correct results for this small
test fine should be like this. You can create
many small test files like this to debug various aspects of your code. You
can download a binary code of my FCFS scheduler and run
it in your PRISM account to generate correct results to compare them with
your output.
- Oct
25: The first deadline of the project is extended to Oct 30 (11:59pm).
- Oct
24: Lecture notes for week 6 posted below.
- Oct
20: For your information: the final exam has been tentatively scheduled at
9:00AM to 12:00PM on December 8th (Thursday).
- Oct
19: Some hints for you to finish the
project and it also includes reference results for you to debug your code.
- Oct
17: Lecture notes for week 5 posted below.
- Oct
12: Because of our current lecture progress, the midterm exam has been
re-scheduled to Nov. 2 (in-class). Meanwhile, the
project is posted below. The first part of the
project is due before the midterm on Oct 26th and the second
half of the project is due after the midterm on Nov 10th.
- Oct
11: The due date for A1 is further extended to Oct 16 (midnight). I canŐt make my regular office hours (Wed
2-3pm) for the reading week. But I will be in my office Thursday afternoon
(Oct 13) between 1-3pm. If you have any questions, you can drop by. If my
office hours do not work for you, you can email me your questions and I
will try my best to reply them promptly.
- Oct 6:
Click here to download some examples used
in class.
- Oct 3:
Lecture notes for week 4 posted below.
The due date for A1 is
extended to Oct 12. Some C
examples to be used in class: thread.c, alarm.c, alarm_fork.c,
alarm_thread.c.
- Sep
20: Lecture notes for week 3 posted below. A1 is also posted below and you
should start to work on its preparation part right away.
- Sep 7:
Lecture notes for weeks 1&2 are posted below.
- Sep 6:
First class on Sep 7.
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
- Chen,
Xiwen
(xiwenc AT cse DOT yorku DOT ca)
Evaluation
|
Percent
|
Set by
|
Due date
|
Returned by
|
|
Assignment
A1
|
5%
|
Sep 20
|
Oct 5Oct 16
|
Oct 30
|
|
Assignment A2
|
5%
|
Nov. 7
|
Nov 2127
|
Dec 5
|
|
Project
|
10%
|
Oct 12
|
Oct 3026 and
Nov. 1013
|
Nov 24
|
|
Quizzes (4-5)
|
10%
|
|
|
|
Each quiz 5-10 min;
Random in class
|
Midterm
|
30%
|
|
Nov 2nd
(in-class)
|
|
|
Final
|
40%
|
-
|
|
|
|
The drop date is Friday, Nov 11, 2011.
Numerical scores (out of 100) are used to calculate grades. Marks can be viewed
via ePost.
Course Schedule and
Lecture Notes:
- Week 1 & 2 (3-slide/page,
6-slide/page)
– Introduction: multiprogramming, multitasking, interrupt-driven,
kernel, system calls, etc.
(chapters 1,2)
- Week 3 (3-slide/page,
6-slide/page)
– Process: concept, PCB, context switch, Inter-Process Communication
(IPC), Unix programming (signals, pipes, message queues). (chapter 3)
- Week 4 (3-slide/page,
6-slide/page)
– Thread: concept (vs process), thread models, multithreaded
programming (Pthreads). (Chapter 4)
- Week 5 (3-side/page,
6-slide/page)
– CPU scheduling: criteria, algorithm, implementation. (chapter 5)
- Week 6 (3-side/page,
6-slide/page)
– Process Synchronization (I): critical-section problem &
example, bakery algorithm, PetersonŐs solution. (chapter 6.1-6.3)
- Week 7 (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 8 (3-side/page,
6-slide/page) – deadlock. (chapter 7)
- Week 9 (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 10 (3-side/page,
6-slide/page)
- Memory Management (II): paging, segmentation, examples. (chapter 8.4
-8.8)
- Week 11 (3-side/page,
6-slide/page)
– Virtual Memory: demand paging, replacement, thrashing. (chapter 9)
- Week 12 (3-side/page,
6-slide/page) – File-system implementation. (chapter 11)
- Week 12 (3-side/page,
6-slide/page) – Mass-storage structure. (chapter 12)