Course Objectives
This course introduces Operating Systems with a focus on system level programming. The students will learn programming techniques that utilize operating system routines (i.e., system calls) as well as the features for process creation, communication and synchronization. Algorithms and data structures used by operating systems for memory and process management will be examined. Students will get hands-on programming exposure to xV6 teaching operating system and its kernel internals in the accompanying recitations. By the end of this course students should be able to perform systems programming and understand the impact of the operating system (e.g., performance constraints) on other applications.
Upon completion of the course, students should be able to:
Upon completion of the course, students should be able to:
- Describe the structure of a modern operating system
- Program effectively using system calls
- Develop multiple process and multiple threaded applications
- Use various system calls to access operating system capabilities
- Perform inter-process communication using pipes, shared memory etc..
- Control concurrency and mutual exclusion using semaphores
- Describe and implement various CPU scheduling algorithms
- Describe the OS interrupt mechanism
- Perform direct device IO access both synchronously and asynchronously
Pre-requisites
CSCI 2327: Digital Logic and Computer Architecture
Programming experience in C/C++/Java, Data Structures and Algorithms (Desirable)
Programming experience in C/C++/Java, Data Structures and Algorithms (Desirable)
Course Adminstrivia
Lectures: Mondays and Wednesdays 10:00 am - 11:15 pm
Location: McNally Main 223 (MM223)
Instructor: Dr. Jiju Poovvancheri
Office: Room MN120, Mathematics & Computing Science
Office Hours: MW 11:30 pm - 12:30 pm, MW 1:30 pm - 2:30 pm, or by appointment
E-mail: [email protected], [email protected]
E-mail Policy: Make sure to include “CSCI 3431 -" in the subject line
Recitations: Wednesdays , 11:30 am-12:45 pm at SB 155
Recitation Instructor: Mr. Nikita Neveditsin
Moodle: web page ( Please check the moodle page on a regular basis)
Location: McNally Main 223 (MM223)
Instructor: Dr. Jiju Poovvancheri
Office: Room MN120, Mathematics & Computing Science
Office Hours: MW 11:30 pm - 12:30 pm, MW 1:30 pm - 2:30 pm, or by appointment
E-mail: [email protected], [email protected]
E-mail Policy: Make sure to include “CSCI 3431 -" in the subject line
Recitations: Wednesdays , 11:30 am-12:45 pm at SB 155
Recitation Instructor: Mr. Nikita Neveditsin
Moodle: web page ( Please check the moodle page on a regular basis)
Tentative Schedule
Date Topics Projects
September 5 Introduction to OS
Sept. 10 OS structure Project 1 out (processes, IPC)
Sept.12 Processes
Sept. 17 Threads
Sept. 19 Process Synchronization
Sept. 24 Process Synchronization contd...
Sept. 26 CPU Scheduling Project 1 due (Sept. 30)
October 1 CPU Scheduling contd... Project 2 out (Synchronization/Deadlocks)
Oct. 3 Deadlocks
Oct. 10 Deadlocks contd...
Oct. 15 Main memory
Oct.17 Mid-term Project 2 due (October 21)
Oct. 22 main memory contd... Project 3 out (Virtual memory, paging)
Oct . 24 Virtual memory
Oct. 29 Virtual memory contd...
Oct. 31 Storage systems
November 5 Storage systems contd...
Nov. 7 File systems Project 3 due
Nov. 19 File systems contd... Project 4 out on Nov. 12 (File systems)
Nov. 21 I/O systems
Nov. 26 I/O systems
Nov. 28 Pending topics
December 3 Review for exam Project 4 due (Dec. 2)
September 5 Introduction to OS
Sept. 10 OS structure Project 1 out (processes, IPC)
Sept.12 Processes
Sept. 17 Threads
Sept. 19 Process Synchronization
Sept. 24 Process Synchronization contd...
Sept. 26 CPU Scheduling Project 1 due (Sept. 30)
October 1 CPU Scheduling contd... Project 2 out (Synchronization/Deadlocks)
Oct. 3 Deadlocks
Oct. 10 Deadlocks contd...
Oct. 15 Main memory
Oct.17 Mid-term Project 2 due (October 21)
Oct. 22 main memory contd... Project 3 out (Virtual memory, paging)
Oct . 24 Virtual memory
Oct. 29 Virtual memory contd...
Oct. 31 Storage systems
November 5 Storage systems contd...
Nov. 7 File systems Project 3 due
Nov. 19 File systems contd... Project 4 out on Nov. 12 (File systems)
Nov. 21 I/O systems
Nov. 26 I/O systems
Nov. 28 Pending topics
December 3 Review for exam Project 4 due (Dec. 2)
Grading
Projects (40%)
Mid-term (20%) Final term (30%) Participation (10%) |
There will be four programming projects. The programming problems will involve kernel-level programming in the xv6 or Linux kernel. Each project carries 10% weight-age. The language of implementation is your choice (e.g., C/C++/Java). Every project should be accompanied with a brief report on the problem description, the approach, outcomes and the reasons for failures, if any. Each project will have a duration of three weeks. Late submissions will not be allowed.
Used to evaluate your knowledge of course content. To be held during class. No electronics allowed. If you miss the midterm exam for any reason: (1) You must contact your instructor within 48 hours, and (2) You will be required to fill out and submit a Declaration of Extenuating Circumstances form. Form and guidelines available at the link below and through the course website. Saint Mary's University ID is required during the examination. The final is open book with no electronics allowed. Scheduled by the Registrar during the formal exam period. The final is cumulative and will cover all material discussed in the course. You must pass the final exam in order to pass the course. There will be 12 programming/problem exercises. We'll take 10 best grades out of 12. Programs will be done on xV6 or Linux kernel. The exercises are meant to be completed in the recitations, but this is optional. The programming outputs will be submitted via moodle latest by Sundays of the following weeks. Notes: The final mark will be a letter grade based on the scale described in Section 5 of the Academic Regulations in the University Calendar. There is no curving of grades, or grading based on rank (e.g., a certain number of “A” grades, etc.). Final grades are truncated to 1 decimal place and then rounded (.5 to .9 are rounded up, .0 to .4 are rounded down) to the nearest whole number. There will be no supplementary examinations. For programming exercises, a program that meets all requirements is considered as "satisfactory" and will be assigned 'C' grades. To obtain good (i.e., B grades) or excellent (i.e., A grades) grades, your code must be of good quality with right choice of algorithms and data structures and well documented (comments as well as the reports), among other things. |
Books
Required: Operating System Concepts, 9th/10th edition(e-book of 10th edition is acceptable)
Abraham Silbershatz, Peter B Galvin, and Greg Gagne
Wiley, ISBN: 978-1-119-32091-3
Abraham Silbershatz, Peter B Galvin, and Greg Gagne
Wiley, ISBN: 978-1-119-32091-3
xv6: a simple, Unix-like teaching operating system, Revision 8,
Russ Cox, Frans Kaashoek, Robert Morris
Russ Cox, Frans Kaashoek, Robert Morris
Additional Resources
C Programming books and links:
QEMU: Linux materials: Git:
- The C Programming Language by Brian Kerninghan and Dennis Ritchie
- Advanced Programming in the UNIX Environment by Richard Stevens and Stephen A. Rago
- C Programming guide
- Programming in C: Unix System Calls and Subroutines in C
QEMU: Linux materials: Git:
Missed Final Exams
If you miss the final exam, you must contact the Dean of Science within 48 hours to schedule a new time, as explained in Academic Regulation #10 “Special Examinations". The Dean decides whether or not your excuse is acceptable.
Technology in the Classroom/Lab
Please ensure that your cell phones are set to silent mode during classes.
- You may NOT use your phone to take pictures or record audio at any time during the lecture.
- You may NOT use your electronics to communicate with other students.
- In case of urgent call, you may quietly leave the room to place/take a call.
Academic Integrity
You are required to demonstrate academic integrity in all of the work that you do. The University provides policies and procedures that every member of the university community is required to follow to ensure academic integrity. Unless stated otherwise, it is expected that all the work you submit for this course, is your OWN work.
Lack of knowledge of the academic integrity policy is not a reasonable explanation for a violation. You are encouraged to consult the Academic Integrity and Student Code of Conduct sections of the Academic Regulations in the Academic Calendar, in order to be well informed on the consequences of dishonest behavior. Please visit the links below for more information.
Links:
http://www.smu.ca/academics/academic-calendar.html
http://www.smu.ca/academics/calendar/academic-integrity.html
Lack of knowledge of the academic integrity policy is not a reasonable explanation for a violation. You are encouraged to consult the Academic Integrity and Student Code of Conduct sections of the Academic Regulations in the Academic Calendar, in order to be well informed on the consequences of dishonest behavior. Please visit the links below for more information.
Links:
http://www.smu.ca/academics/academic-calendar.html
http://www.smu.ca/academics/calendar/academic-integrity.html
Privacy Information
Assignments with appropriate feedback are handled electronically (via moodle). Exams may be viewed by appointment after grades are submitted. Please see the SMU privacy policies.
Accessibility
As part of Saint Mary's University Core Values statement, the University is committed to accessibility, diversity and the provision of a positive and supportive learning environment through the effective integration of teaching and research. The Fred Smithers Centre of Support for Students with Disabilities establishes individualized support service programs to facilitate the participation of students with physical, medical, and learning disabilities, and to provide students with disability accommodation services and supports. Students are encouraged to seek more information by visiting the Centre, or the link.
In case of emergency
It is important to be familiar with SMU Security Procedures, so you are prepared in the case of an emergency situation/need for evacuation. Please check the link for more information.
Image courtesy: technologydatagroup.com