Operating Systems (CS4124.01)

Meltem Ballan

This course provides insight into the underlying relationship between the software and hardware. Core topics include processes, threads, resources, scheduling, concurrency, memory management, file systems, I/O, security, and distributed systems.

The operating system provides an established, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for sharing resources (e.g., disks, networks, and processors), providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from interfering with one another. The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), and file systems; and on operating system support for distributed systems.

The Friday classes are the hands-on lab work and students are required to complete the work either with a group or alone. The tutors will lead the class and will address all your questions. If for some reason you need extra time and support please email me.


Learning Outcomes:
You will have an opportunity to learn a lot of practical information about:
- how programming languages, operating systems, and architectures interact and
- how to use each effectively
-how concurrency and distributed systems communicate and work correctly.
This knowledge will help you to more effectively use and manipulate computers and computer programs.

Delivery Method: Hybrid
Prerequisites: Students must have successfully completed Elements of Computer Science and Data Structure Classes. Contact the faculty (meltemballan@bennington.edu) for additional information.
Course Level: 4000-level
Credits: 4
T/F 2:10PM - 4:00PM (Full-term)
Maximum Enrollment: 10
Course Frequency: Every 2-3 years

Categories: 4000 , All courses , Computer Science , Four Credit , Hybrid