CSC 246 Concepts and Facilities of Operating Systems
3 Credit Hours
The history and evolution of operating systems, concepts of process management, memory addressing and allocation, files and protection, deadlocks and distributed systems.
Prerequisite
C and Software Tools (NC State CSC 230)
Course Objectives
Upon successful completion of this course, a student will be able to:
- Processes and Threads. describe states and transitions of processes/threads; explain non-local transfers of control; determine context switching details.
- Synchronization. list different synchronization models; explain the operational characteristics of these models; use these facilities in concurrent programming models; contrast these models; utilize synchronization for contemporary architectures; select a suitable synchronization paradigm for a given problem.
- Virtual Memory. reiterate the principles of hardware and software support for virtual memory; express operational properties of address translation; perform the calculations of address translation; predict the impact on TLB misses; judge the merits and shortcomings of virtual memory usage.
- Scheduling. recite different scheduling paradigms; paraphrase qualitative and quantitative properties of these paradigms; derive a schedule for given parameters; model quantitative properties of scheduling paradigms; exploit existing scheduling models support by systems; contrast different scheduling approaches.
- I/O and File Management. reiterate the principles of file systems in terms of data structures; understand access control; interface with directory services on the system API level; judge the merits and shortcomings of contemporary file systems.
- Protection and Security. list different protection mechanisms; explain security measures in operating systems such as access control.
- Communication and Networking. reiterate basic communication paradigms and networking protocols in terms of their functionality; explain differences and functionalities of communication modes and layers; design and implement communicating client-server applications.
- Computer organization. Enumerate and explain the operation of the functional components of a computer, including CPU (cores, registers & ALU), cache, buses, memory, devices and interrupt processing. Describe and compare non-traditional models of parallel computation, including GPU, TPU, FPGA and ASIC.
Course Topics
- History and Vocabulary of Operating Systems
- Overview of Computer Architecture and Operating System Architecture
- Processes and Process Management
- The Unix Process Model
- Threads
- POSIX Thread (pthreads) and Java Thread Creation
- Process/Thread Scheduling
- Real-time Scheduling
- Process/Thread Synchronization and Communication
- POSIX Threads (pthreads) and Java Thread Synchronization
- Deadlocks
- Memory Management
- Virtual Memory
- A Survey of Virtualization and its Uses/Benefits in Today’s Market
Course Requirements
Homework: | 50% | |
Tests: | Test 1 | 15% |
Test 2 | 15% | |
Final Exam | 20% |
Textbook
Silberschatz, Galvin, and Gagne Operating System Concepts 10th Edition, © 2018 ISBN: 978-1-119-32091-3
Errata for version 10 of the textbook: https://codex.cs.yale.edu/avi/os-book/OS10/errata-dir/index.html
OR
Silberschatz, Galvin, and Gagne, Operating System Concepts 9th Edition, John Wiley & Sons, Inc., ISBN 978-1118063330
Computer and Software Requirements
Access to a Unix/Linux platform (NCSU provides remote access http://www.eos.ncsu.edu/remoteaccess/ ) or use the NCSU Virtual Computing Lab: https://vcl.ncsu.edu/
Updated 10/27/2022