Difference between revisions of "CS 3210"
(Added credit count) |
m (Zxcv moved page CS 3210 - Design-Operating Systems to CS 3210 over a redirect without leaving a redirect) |
Revision as of 22:16, 8 June 2021
Overview
CS 3210 is a 3 credit hour class taken by Systems and Architecture threads (CS/CompE). It has no lab or recitation period.
This class is heavily project-based.
Topics List
This class teaches some Operating Systems (OS) concepts such as:
- Bootloading (how the processor wakes up and loads the OS kernel)
- Memory Paging
- Process Scheduling
- File systems
- Networking Concepts
How it Fits into the Curriculum
CS 3210 is a required class for Systems and Architecture Threads (both CS and CompE), and is generally taken in your third or fourth year. The class is only a prerequisite for Advanced Operating Systems (CS 4210/CS 6210) but is a gateway course to more advanced graduate level OS courses.
Current Registration Info
CS 3210 is a regular class. This means there is no recitation or lab to register for. Just register for a lecture section.
Prerequisites
At least one of the following:
- C or higher in CS 2200
- C or higher in ECE 3057 (replaced with ECE 3058 in Fall 2021)
- C or higher in ECE 3058
Majors that Require this Class
- Computer Science (Systems and Architecture Threads)
- Computer Engineering (Systems and Architecture Threads)
Past Semesters
Fall 2020
4 projects, 1 midterm, 1 final
Projects were on Xv6, a simple Unix-like teaching operating system, with much of the class material from the associated open-source textbook.
Xv6 is a simple teaching operating system with many features missing. In the class projects, you implement some of those missing features using the C programming language.
"Overall, the projects were time-consuming but fair. The material is really interesting, and detailed project instructions along with a concise textbook and helpful lectures/office hours made those projects doable." - Alexp
Spring 2020 "Rust-mester"
Apparently, the project was very difficult. It involved writing an OS kernel from scratch using the Rust programming languages and testing it on a Raspberry Pi.