CSC-4210 Operating Systems
||Congdon Hall 150
||MWF 7:50-9:00AM CSC-3360
||MW 12:05-1:45PM CSC-2310
||TTH 9:45-11:25AM CSC-4510
||Web site: linus.highpoint.edu/~rshore
An introduction to the various components of an operating system, including schedulers, memory management, interrupt handling, resource allocation, security and protection. Examples presented will be based on UNIX and other popular operating systems. Each student will participate in projects that involve kernel modifications, shell scripting, and simulations of components within the operating system.
Prerequisites: CSC-1720 or CSC-2710
- Silberschatz, Galvin, and Gagne, Operating System Concepts (978-1-118-06333-0), 9th Ed., John Wiley and Sons, Inc, 2013
- You will need to setup an AWS account, I'll provide instructions to get needed credits so there is no cost to you. Also, while it is not a requirement, it would be nice if you had a functioning laptop available during class. See the projects section below for reasons.
- Explain the functions and objectives of a modern operating system.
- Explain the concept of a logical layer and the benefits of building abstract layers in a hierarchical fashion.
- Define concurrency and problems arising from concurrent operation of separate tasks.
- Discuss the concepts of interrupt processing, dispatching, and context switching as it relates to concurrency in an operating system.
- Explain the conditions that lead to deadlock.
- Summarize the principles of virtual memory as applied to caching and paging.
- Defend the need to security and protection of resources within an operating system.
- Explain the inter-relationships between the operating system and the architecture of computer systems.
Class Preparation: It is assumed that you will read the assigned chapters. Although the material may be summarized, lectures will be used mainly to further demonstrate other approaches to problem solving and to answer specific questions.
Projects: There will be a variety of projects during the semester. Each project in the series will involve some aspect of an Operating System. For some of the projects, you will be altering a linux kernel (I do not have access to the Windows Kernel). If you are unaware, Linux kernels can be download and modified. These projects will involve altering the kernel then compiling, installing and hopefully booting the kernel to validate the edits made to the kernel. For this reason, you will need to setup a virtual box (or vmplayer) on your laptop and an AWS account to test your kernel. Potential project titles are:
- Shell Program
- System Calls
- Synchronization Mechanisms
- Process communication
- Device Drivers
- File Systems
- File I/O
- I/O redirection and pipes
Grading of projects will be based on the number of projects completed during the semester. So, use the following grading scheme for the overall project grade:
- 5 projects completed - grade C
- 8 projects completed - grade B
- 12 projects completed - grade A
- Attendance: Attendance will be taken daily at the beginning of class. You are expected to be present in every class meeting. If absent from class, you are responsible for all lectures, in-class exercises, assignments, and handouts. Caution: Being absent from class does not change the due date of assignments.
- Grades: Your final grade will be determined as follows:
|| 5-12 Programimg Projects
|| 2-3 Major Tests
|| Cumulative Final Exam
|| Total |
|| 100% |
You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a B- not a C+.
|| 0-60 |
|| F |
- Make-Up test will not be given. Unless prior arrangements have been made with excusable reasons, NO make-up test will be given. If you miss a test your final grade will be used in place of the missed grade. This means the percentage of the final exam will increase. If you miss the final exam, you will receive an F for the course.
- Assignments: Assignments, quizzes, and class work sheets will assist you in the understanding of the material presented during class. These will appear in almost every class meeting during the semester. Items completed during class cannot be made up therefore the lowest two grades will be dropped to allow for an occasional absence. Programming assignments will have gracious due dates. You must turn in the assignment by the due date for full credit.
- Classroom etiquette:
- Cell phone usage during class is prohibited. Turn off cell phones (or place on vibrate). Please do not interrupt any aspect of the class due to your cell phone. This includes text messaging, picture messaging, etc.
- Do not listen to your ipod, cd player, etc. during class (even if we are in the computer lab).
- Profanity will not be tolerated. This includes lewd remarks printed on your clothing.
- Hats are not to be worn during class.
- Laptops are allowed in the class and can only be used for class related stuff. Since I cannot see you screen, you will be called out if I suspect otherwise.
- Lab etiquette:
- The lab was created with student input. Please help respect and maintain the lab.
- Do not eat while sitting at a workstation. If you must eat while in the lab, sit a the larger table where no equipment may be damaged except your own. Clean up the area after you finish eating.
- Clean up your area before you leave the lab. Unless you are planning to return in a few minutes, please take all books, paper, etc with you.
- DO NOT lock your workstation when you leave!
- Students with Disabilities: Students who require classroom accommodations due to a diagnosed disability must submit the appropriate documentation to Disability Support in the Office of Academic Development, 4th Floor Smith Library. Student’s need for accommodations must be made at the beginning of a course. Accommodations are not retroactive.
- System Calls
- The shell
- Process Management
- Process Concept
- Process Scheduling
- Interprocess Communication
- Multithreading Models
- CPU Scheduling
- Basic Concepts
- Scheduling Algorithms
- Threading and Multiple-Processor Scheduling
- Process Synchronization
- The Critical-Section Problem
- Peterson's Solution
- Classical Problems
- System Model
- Deadlock characterization
- Memory Management
- Main Memory
- Memory allocation
- Paging and the Page Table
- Page replacement
- Virtual Memory
- Demand Paging
- Page Replacement
- Allocation of Frames
- Memory-Mapped Files
- Storage Management
- File-System Interface
- File Concept
- Directories and Disk Structure
- File sharing
- File-System Implementation
- File-System Structure and Implementation
- Directory Implementation
- Allocation Methods
- Free-Space Management
- Mass-Storage Structure
- Disk Structure/Attachment/Scheduling/Management
- RAID Structure
- Input/Output Systems
- Types of devices
- Application I/O Interface
- Kernel I/O Subsystem
- Transforming I/O Requests to Harware Operations
- Memory-mapped I/O
- Protection and Security
- The Linux System
- Windows 7