CSC 246 Concepts and Facilities of Operating Systems

The history and evolution of operating systems, concepts of process management, memory addressing and allocation, files and protection, deadlocks and distributed systems. 3 credit hours


• Prerequisite

CSC 230 C and Software Tools. Corequisite: CSC 236 Computer Organization and Assembly Language.

• 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.

• 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 9th Edition, John Wiley & Sons, Inc., ISBN 978-1118063330

• Software Requirements

Access to a Unix/Linux platform (NCSU provides remote access ) or use the NCSU Virtual Computing Lab:

• Computer and Internet Requirements

NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here.

• Instructor
  Alan Watkins, Lecturer
Engineering Online
CSC 246 Lecturer
NCSU Campus
Raleigh, NC 27695