Skip to content

slustig210/377-F22

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMPSCI 377 Operating Systems

In this course we examine the important problems in operating system design and implementation. The operating system provides a well-known, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for allowing resources (e.g., disks, networks, and processors) to be shared, 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 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), file systems, and operating system support for distributed systems.

FALL 2022

Usage

Make sure you have git installed on your local machine before proceeding.

You can easily access all the course material from this GitHub repository. We recommend that you clone this repository to your local computer and do frequent pulls to get the latest changes. You can do this in several ways. We recommend the gh command line tool as it easy to use and provides useful GitHub related tasks. If you choose to use gh, you can clone this repository by running the following command:

gh repo clone umass-cs-377/377-F22

Otherwise, you can use https:

git clone https://github.com/umass-cs-377/377-F22.git

Lastly, you can use ssh:

git clone git@github.com:umass-cs-377/377-F22.git

VSCode and Markdown

If you clone this repository to your local computer, you may prefer to preview the markdown files, rather than read them directly. Use the command palette in VScode and select Markdown: Open Preview to the Side. If you want to get fancy, I recommend the Markdown Preview Enhanced VSCode extension.

VSCode Extensions

We will be using C/C++ in this course as part of the programming assignments. You will be completing projects in the Edlab environment. We recommend you install the following VSCode extensions to enhance your coding experience. You can follow the links below or simply search for them in the VSCode extension manager.

There are two categories of extensions. The local extensions refer to extensions you will want to install in VSCode on your local computer. The remote extensions are those that you want to install after you have connected to the Edlab.

Do not worry, we will provide instructions on how to do this.

Local Extensions

Name: Remote - SSH

First, you need to install the following extension which will allow you to open folders in the Edlab environment using VSCode on your local machine:

Remote Extensions

You will want to install the extensions below when you use VSCode connected to the remote Edlab environment.

Name: Better C++ Syntax

Name: C/C++ Extension Pack

Name: Makefile Tools

Name: Prettier - Code formatter

Copyright

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Releases

No releases published

Packages

 
 
 

Languages

  • C 94.6%
  • Makefile 5.4%