Computer Science 3220 / Electrical and Computer Engineering 3220 - Section 1
Introduction to Operating Systems
This file can be found in http://www.cs.clemson.edu/~mark/3220.html
Detailed study of management techniques for the control of computer
hardware resources. Topics include interrupt systems, primitive level
characteristics of hardware and the management of memory, processor,
devices, and data.
- hardware support of operating systems
- synchronization of concurrent threads
- scheduling of threads
- allocation of physical and virtual memory
- storage of data in files
Students who successfully complete this course should be able to:
- Explain the objectives and functions of a modern operating system.
- Contrast kernel and user mode in an operating system.
- Explain the actions of hardware in response to an interrupt.
- Describe the difference between processes and threads.
- Demonstrate the potential run-time problems arising from the
concurrent operation of many separate threads.
- Use a synchronization technique to control concurrency among
- List the four necessary conditions for deadlock to occur.
- Compare and contrast the common algorithms used for both preemptive
and non-preemptive scheduling of threads.
- Describe the data structures needed to support thread management
and thread scheduling.
- Explain the need for dynamic priority adjustments in thread scheduling
(e.g., priority aging and priority inheritance).
- Implement a policy for variable-length memory allocation.
- Describe how a virtual memory address is mapped into a physical memory
address in a computer system with paged virtual memory.
- Describe how files are stored in secondary storage.
- Explain how an access control list protects files.
Prerequisites: CPSC 2120 and CPSC 2310 with a C or better;
or ECE 2230 and ECE 2720 with a C or better.
Meetings: 11:30-1:00 M-F in Edwards Hall 304.
Mark Smotherman, 108 McAdams Hall, email@example.com, 656-5878
Office Hours: 2:30-3:30 MTWR; also email
since I'm usually available at other times
Thomas Anderson and Michael Dahlin, Operating Systems: Principles & Practice,
2nd edition, Recursive Books, 2014.
companion web site
- 14% - preparation for and participation in class/group discussions
- 20% - best 20 of 21 quizzes @ 1%
- 16% - 4 papers/programs @ 4%
- 37.5% - 3 in-class exams @ 12.5%
- 12.5% - final exam
- The course will be structured with daily work, projects, and exams.
For class days other than those with in-class exams, the daily work will
require you to:
- Complete readings and prepare written answers for the pre-class
questions. In various ways you will called upon in class to
demonstrate the thoroughness and accuracy of your preparation,
and your level of preparation will become part of your
- Examine, refine, and possibly correct these answers during in-class
and/or group discussions, as well as answer additional questions.
Your participation in the discussions and your ability to help
others discover and refine answers will become part of your
preparation/participation score. Note that an unexcused absence will
count off 2/3rds of a point in your semester average.
- Complete an in-class or after-class written or electronic quiz based
on your pre-class preparation and the in-class discussion. These
quizzes will typically be closed-book/closed-note, but in some cases
they may be given as open-book/open-note.
- Please wait up to 15 minutes if I am late to class.
- The in-class exams and the final exam are closed-book and closed-note.
No calculators or other electronic devices are allowed. If you wish to
be excused to the restroom during an exam, you must leave your cell phone
in the exam room.
- Any exam that was scheduled at the time of a class cancellation due to
inclement weather will be given at the next class meeting unless contacted
by the instructor. Any assignments due at the time of a class cancellation
due to inclement weather will be due at the next class meeting unless
contacted by the instructor. Any extension or postponement of assignments
or exams must be granted by the instructor via email or Canvas within
24 hours of the weather-related cancellation.
- Programs must run on School of Computing servers. (Your laptop
may have applications and/or libraries not available on the servers;
thus, if your program makes use of these, your program cannot be run
and graded on the servers.)
- Programs are due just before midnight on the due date.
- It is your responsibility to submit the correct file(s) in the correct
format(s). You should check each submitted file for correctness and to
ensure that it is uncorrupted. Files will be graded as-is, and
resubmission may not be allowed.
- Programs that work correctly for a few test cases but not for all
reasonable inputs will not be given full points. It is your
responsibility to code correctly for reasonable inputs.
- Late programs will be accepted but 10 points will be deducted for
each day late, up to five days. Thus a program that is 4 days
late will have a maximum possible point total of 60.
- Unless otherwise noted, programming is to be individual work.
Do not discuss the solution to an assignment with anyone else
(either a class member or someone else). If you have questions,
ask me in person or by email.
Drops Days: Drop w/o record by May 21;
drop w/o grade by June 7.
Clemson Statement of Academic Integrity:
"As members of the Clemson University community, we have inherited
Thomas Green Clemson's vision of this institution as a 'high seminary
of learning.' Fundamental to this vision is a mutual commitment to
truthfulness, honor, and responsibility, without which we cannot earn
the trust and respect of others. Furthermore, we recognize that academic
dishonesty detracts from the value of a Clemson degree. Therefore, we
shall not tolerate lying, cheating, or stealing in any form."
Work turned in for credit in a previous class:
When appropriate and when fully documented, you may reuse your own work
from a previous class. For example, if you are reusing parts of a program
written for a previous course, add a notice to your program header comments
about the scope of the reuse and the course in which the work was previously
Clemson University values the diversity of our student body as a strength
and a critical component of our dynamic community. Students with disabilities
or temporary injuries/conditions may require accommodations due to barriers
in the structure of facilities, course design, technology used for curricular
purposes, or other campus resources. Students who experience a barrier to full
access to this class should let the professor know, and make an appointment to
meet with a staff member in Student Accessibility Services as soon as possible.
You can make an appointment by calling 864-656-6848, by emailing
firstname.lastname@example.org, or by visiting Suite 239 in the Academic
Success Center building. Appointments are strongly encouraged - drop-ins will
be seen if at all possible, but there could be a significant wait due to
scheduled appointments. Students who receive Academic Access Letters are
strongly encouraged to request, obtain and present these to their professors
as early in the semester as possible so that accommodations can be made in a
timely manner. It is the student's responsibility to follow this process each
semester. You can access further information here:
Title IX (Sexual Harassment) Statement:
Clemson University is committed to a policy of equal opportunity for all
persons and does not discriminate on the basis of race, color, religion,
sex, sexual orientation, gender, pregnancy, national origin, age, disability,
veteran<92>s status, genetic information or protected activity in employment,
educational programs and activities, admissions and financial aid. This
includes a prohibition against sexual harassment and sexual violence as
mandated by Title IX of the Education Amendments of 1972. This policy is
located at http://www.clemson.edu/campus-life/campus-services/access/title-ix/.
Ms. Alesia Smith is the Clemson University Title IX Coordinator, and the
Executive Director of Equity Compliance. Her office is located at 110
Holtzendorff Hall, 864.656.3181 (voice) or 864.656.0899 (TDD).
The course syllabus is a general plan for the course. I reserve the right
to make changes to the syllabus, including project due dates and in-class
exam dates), when unforeseen circumstances occur. I will announce any
changes as early as possible so that you can adjust your schedule.
- OS definition, evaluation, and history (Chapter 1,
- Kernels, interrupts, and processes (Chapter 2,
part a slides,
part b slides)
- Programming interface (Chapter 3,
- Threads and concurrency (Chapter 4,
- Exam 1
- Synchronized access to shared objects (Chapter 5,
part a slides,
part b slides)
- Multiprocessor locking (Chapter 6a,
part a slides)
- Deadlock (Chapter 6b,
part b slides)
- Scheduling (Chapter 7,
part a slides,
part b slides)
- Exam 2
- Dynamic memory allocation (
- Address translation (Chapter 8,
- Virtual memory and replacement policies (Chapter 9,
- Advanced memory management (Chapter 10,
- Exam 3
- File systems (Chapter 11,
11 and 12 slides)
- Storage devices (Chapter 12, see above)
- Files and directories (Chapter 13,
- Reliable storage (Chapter 14,
- Final Exam, Thursday, June 21, 11:30 a.m. - 2:00 p.m.
Study Guides and Example Exams:
Exam 1 Study Guide (Chapters 1-4)
Exam 2 Study Guide (Chapters 5-7)
Exam 3 Study Guide (Chapters 8-10)
Final Exam Study Guide (comprehensive plus Chapters 11-14)
- The exams linked below illustrate the types of questions you should
expect. Note that the material that will be covered on the
Summer 2018 exams will be partitioned in a different manner than
was done for the previous exams, so be sure to prepare based
on the study guides rather than relying only on these old exams.
Online Resources for Similar Courses:
CS 140: Operating Systems, John Ousterhout, Stanford
CS 162: Operating Systems and Systems Programming,
Ion Stoica, UC Berkeley
CSE 451: Operating Systems, John Zahorjan, UW
CMPT 300 videos, Introduction to Operating Systems,
Arvindh Shriraman, Simon Fraser University
- Allen Downey,
The Little Book of Semaphores, 2nd ed., version 2.2.1, 2016
- pthread library links
[Clemson Univ. homepage]