Skip to content

ayegnb/operating-systems

Repository files navigation

CSCI332 Operating Systems

Course Description

The course introduces students to Operating Systems, their concepts and building blocks. The students will learn to understand, apply, and extend these concepts through a focus on systems programming in the UNIX environment. They will be introduced to the main components of modern computer operating systems: resource allocation, process scheduling, memory management, file systems, management of input and output devices, multi-processor systems and synchronization.

Course Outcomes

After taking and successfully passing this course, the students will be able to

  1. Use a UNIX operating system as a user and as a developer
  2. Use one of the common shells (e.g. bash, csh) on the command line and in simple scripts
  3. Read, understand and explain complex C code
  4. Understand and use UNIX systems calls, in particular those for file I/O, process and thread management, inter-process communications
  5. Design and develop systems-level C programs of some significant complexity, for example: a. Servers which can handle multiple simultaneous clients b. Programs which are composed of multiple cooperating processes
  6. Understand and use process and thread synchronization techniques
  7. Understand some basic operating systems concepts such as synchronization, process scheduling and memory management

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published