- Credits: 3.0
- Class hours: Tuesday & Thursday, 4:00 - 5:15pm, FH 231 (Frandsen Humanities)
- Call numbers:
- CS 446: #28039 (max. enrollment 25)
- CS 646: #29605 (max. enrollment 10)
- Instructor: Dr. René Doursat
-
- Phone: (775) 327-2246 / (775) 784-6974
- Web page: http://www.cse.unr.edu/~doursat
- Office: SEM 230 (Scrugham Engineering-Mines)
- Office hours (tentative):
- Monday, 4 - 5:30pm
- Tuesday, 5:30 - 7pm
- Wednesday, 4 - 5:30pm
- or by appointment
- Teaching Assistant: Xavier Palathingal
- E-mail: xavier@cse.unr.edu
- Office: SEM 255A (Scrugham Engineering-Mines)
- Office hours:
- Tuesday, 2 - 4pm
- Thursday, 2 - 4pm
The principles, components, and design of modern operating systems,
focusing on the UNIX platform. Topics include: concurrent processes,
inter-process communication, processor management, virtual and real
memory management, deadlock, file systems, disk management, performance
issues, case studies, etc.
Data Structures (CS 302), Microprocessor System Design (CPE 301).
This is a tentative list of topics, subject to modification
and reorganization.
- Introduction to Operating Systems
- Role of an O/S
- O/S History and Features
- Types of O/S
- Major O/S Components
- System Calls
- O/S Software Architecture
- Examples of O/S
- Processes
- Process Description & Control
- Threads
- Concurrency
- Deadlocks & Starvation
- Memory Management
- Partitioning
- Paging
- Segmentation
- Virtual Memory
- Page Replacement
- CPU Scheduling
- Scheduling Algorithms
- Performance Evaluation
- Multiprocessor Scheduling
- Thread Scheduling
- Real-Time Scheduling
- Examples of CPU Scheduling
- Input/Output
- I/O Devices
- I/O Software
- Disk Scheduling
- Disk Caching
- Examples of I/O
- File System
- File Description
- File Directories
- File Storage Implementation
- Examples of File Systems
- Case Studies
- Assignments
Programming assignments and/or written assignments will be handed
out approximately every other week and due generally one or two
weeks later (exact deadline specified in each assignment).
Programming assignments can be considered "mini-projects"
with the same topic for everyone. They will require turning
in code that compiles and runs properly and a report
documenting this program (specifications, implementation, user
manual, etc.). Written assignments are exercises consisting
of practice questions intended to test and affirm your knowledge
of the course content.
- Late policy
Late assignments will be penalized according to the
sliding scale below.
- Exams and quizzes
There will be two exams (see Schedule
for tentative dates) and one comprehensive final. Additionally,
short quizzes might pop up (announced or unannounced) at the
beginning of some meetings.
- Academic integrity
There will be no team projects or reports in this class, therefore
all assignments, quizzes and exams must be prepared strictly
individually. Any form of cheating such as plagiarism or
ghostwriting will incur a severe penalty, usually failure in the
course. Please refer to the UNR policy on Academic Standards.
- Disability statement
If you have a disability for which you will need to request
accommodations, please contact the instructor or someone at the
Disability Resource Center (Thompson Student Services - 107)
as soon as possible.
Both grading policy and scale are subject to change.
Failure in either the assignments or the
tests (quizzes + all exams) will result in failure in the course.
• Grading Policy
Assignments | 40% |
Quizzes | 10% |
Exams | 15% + 15% |
Final | 20% |
|
• Late Assignment Policy
less than 1 day late | 10% deducted |
between 1 and 2 days late | 25% deducted |
between 2 and 3 days late | 40% deducted |
between 3 and 4 days late | 60% deducted |
between 4 and 5 days late | 80% deducted |
over 5 days late | 100% deducted |
|
• Grading Scale
90% - 100% | A-, A |
80% - 89% | B-, B, B+ |
65% - 79% | C-, C, C+ |
55% - 64% | D |
0% - 54% | F |
|
Note: Saturdays and Sundays do not count toward missed days.
For example, there is 1 "day" between Friday, 2pm and Monday, 2pm.
Similarly, there is 1 day between Monday, 2pm and Tuesday, 2pm.
This is a tentative schedule including the two exam dates.
It is subject to readjustment depending on the time we actually spend
in class covering the topics. Slides presented in class and assignments
will be posted here. Please check again frequently.
Permanent reading assignment: it is
assumed that you are familiar with the contents of the slides
of all past meetings.
Date |
Lectures & Notes |
Assignments |
Tue, Jan 24 |
1. Introduction (1) - Role of an O/S
|
• Read Stallings, Ch. 1 |
Thu, Jan 26 |
1. Introduction (2) - O/S History & Features
|
• Read Stallings, Sect. 2.1 - 2.4 |
Tue, Jan 31 |
1. Introduction (3) - O/S Types & Components
|
|
Thu, Feb 2 |
1. Introduction (4) - System Calls & O/S Architecture
|
• Read Molay, Ch. 1 |
Tue, Feb 7 |
2. Processes (1-3) - Processes & Threads
|
• Quiz 1
• Read Stallings, Sect. 3.1 - 3.4
|
Thu, Feb 9 |
• Read Molay, Ch. 8
• Read Stallings, Sect. 4.1
• Read Molay, Sect. 14.1 - 14.2
|
Tue, Feb 14 |
• Assignment 1
• Read Molay, Ch. 9
• Practice sheet: fork & exec
|
Thu, Feb 16 |
2. Processes (4) - Concurrency
|
• Read Stallings, Sect. 5.1 - 5.2
|
Tue, Feb 21 |
2. Processes (5) - Concurrency
|
• Quiz 2
• Read Stallings, Sect. A.1
• Read Molay, Sect. 14.3 - 14.4
|
Thu, Feb 23 |
2. Processes (6) - Concurrency
|
• Read Stallings, Sect. 5.3
• Read Stallings, Sect. A.2
• Read Molay, Sect. 14.5
|
Tue, Feb 28 |
2. Processes (7) - Concurrency
|
• Read Stallings, Sect. 6.1 - 6.2
|
Thu, Mar 2 |
Exam 1, covering 1. and 2.
|
• Exam 1 practice sheet
|
Tue, Mar 7 |
3. Memory Management (1)
|
• Read Stallings, Sect. 7.1 - 7.2
• Read Stallings, App. 7A
|
Thu, Mar 9 |
3. Memory Management (2)
|
• Read Stallings, rest of Ch. 7
• Read Stallings, Sect. 8.1
|
Tue, Mar 14 |
3. Memory Management (3-4)
• Memory Management, by SILBERSCHATZ et al.
• Virtual Memory, by SILBERSCHATZ et al.
• O/S Memory Policies, by STALLINGS
|
• Quiz 3
• Assignment 2
• Read Stallings, rest of Ch. 8
|
Thu, Mar 16 |
Tue, Mar 21 |
Spring Break - no class |
Thu, Mar 23 |
Spring Break - no class |
Tue, Mar 28 |
4. CPU Scheduling (1)
|
• Quiz 4
• Assignment 3
• Assignment 3 Appendix
|
Thu, Mar 30 |
4. CPU Scheduling (2)
|
• Read Stallings, Ch. 9 |
Tue, Apr 4 |
Guest talk: Sebastian Smith,
Community Director, Reno Linux Users Group
7. Case Study (1) - Linux
|
|
Thu, Apr 6 |
Exam 2, covering 3. and 4.
|
• Exam 2 practice: memory
• Exam 2 practice: scheduling
|
Tue, Apr 11 |
5. Input/Output (1)
|
• Assignment 4
• Assignment 4 Appendix
|
Thu, Apr 13 |
5. Input/Output (2)
|
• Read Stallings, Sect. 11.1 - 11.4 |
Tue, Apr 18 |
5. Input/Output (3)
|
• Read Stallings, Ch. 1
• Read Tanenbaum, pp. 221-237
|
Thu, Apr 20 |
5. Input/Output (4)
|
• Quiz 5
• Read Stallings, Sect. 11.5
|
Tue, Apr 25 |
6. File System (1)
|
• Read Stallings, Sect. 12.1 - 12.4
• Read Molay, Ch. 2, 3, 4
• Assignment 5
• Assignment 5 Appendix
|
Thu, Apr 27 |
6. File System (2)
|
• Read Tanenbaum, pp. 379-399 |
Tue, May 2 |
Guest talk: Brandon Mitchell,
Network Consultant, Sierra Computers
7. Case Study (2) - BSD
|
|
Thu, May 4 |
Guest talk: Keith Rinaldo,
Network Security Analyst, UNR
7. Case Study (3) - System Admin
|
• Read Stallings, Sect. 12.6 - 12.7
• Read Tanenbaum, pp. 399-408
• Read Tanenbaum, pp. 732-747
|
Tue, May 9 |
Extra prep day - no class |
Thu, May 11 |
Comprehensive Final, 4:30pm - 6:30pm |
Course Outcomes:
- Students will demonstrate knowledge of operating system concepts.
- Strategies and actions used to produce the outcome:
- Study of the origins and challenges of automated system operation.
- Study of the strategies and components of modern operating systems.
- Study of resource management techniques for each subsystem in the OS.
- Study of the trade-off between different resource management techniques.
- ABET criteria covered:
- (a) An ability to apply knowledge of mathematics, science,
and engineering.
- (b) An ability to design and conduct experiments, as well
as to analyze and interpret data.
- (c) An ability to design a system, component, or process
to meet desired needs.
- (e) An ability to identify, formulate, and solve engineering
problems.
- (g) An ability to communicate effectively.
- (j) A knowledge of contemporary issues.
- Program objectives covered:
- (2) Our graduates will have achieved a solid understanding
of concepts fundamental to the discipline of computer science.
- (3) Our graduates will have achieved good analytic, design,
and implementation skills required to formulate and solve
computing problems.
- Assessment methods:
- Programming Assignments (code design and implementation)
- Written Assignments (theoretical concept definitions and
practical computational & numerical problems)
- Quizzes & Exams (theoretical concept definitions and
practical computational & numerical problems)
- Students will demonstrate knowledge of system programming
techniques as well as the ability to use related system calls.
- Strategies and actions used to produce the outcome:
- Study of design and implementation of operating systems.
- Study of system calls and system programming techniques.
- ABET criteria covered:
- (a) An ability to apply knowledge of mathematics, science,
and engineering.
- (b) An ability to design and conduct experiments, as well
as to analyze and interpret data.
- (c) An ability to design a system, component, or process
to meet desired needs.
- (k) An ability to use the techniques, skills, and modern
engineering tools necessary for engineering practice.
- Program objectives covered:
- (2) Our graduates will have achieved a solid understanding
of concepts fundamental to the discipline of computer science.
- (3) Our graduates will have achieved good analytic, design,
and implementation skills required to formulate and solve
computing problems.
- Assessment methods:
- Programming Assignments (focus on system programming)
- Students will demonstrate the ability to quantitatively
evaluate different software implementation techniques.
- Strategies and actions used to produce the outcome:
- Study of quantitative performance evaluation methods.
- Modeling and simulation of resource allocation algorithms.
- ABET criteria covered:
- (a) An ability to apply knowledge of mathematics, science,
and engineering.
- (b) An ability to design and conduct experiments, as well
as to analyze and interpret data.
- (c) An ability to design a system, component, or process
to meet desired needs.
- Program objectives covered:
- (2) Our graduates will have achieved a solid understanding
of concepts fundamental to the discipline of computer science.
- (3) Our graduates will have achieved good analytic, design,
and implementation skills required to formulate and solve
computing problems.
- Assessment methods:
- Programming Assignments (focus on modeling & simulation)
|