Virtual memory

Virtual memory

Virtual memory is a memory management technique that provides an abstraction of available storage resources, creating the illusion of a larger main memory. It uses address translation hardware to map virtual addresses to physical addresses and can extend capabilities by utilizing disk storage to provide a virtual address space that exceeds the capacity of real memory. Benefits include freeing applications from managing shared memory, increased security, and being able to use more memory than physically present.

11 courses cover this concept

CS 110: Principles of Computer Systems

Stanford University

Winter 2022

CS 110 delves into advanced computer systems and program construction, focusing on designing large systems, software that spans multiple machines, and parallel computing. This course builds upon CS107 and requires good knowledge of C, C++, Unix, GDB, Valgrind, and Make. It covers Linux filesystems, multiprocessing, threading, networking, and more.

No concepts data

+ 28 more concepts

CSE 351 The HW/SW Interface

University of Washington

Autumn 2022

This course develops students' understanding of software functioning at different levels of abstraction. Focus areas include C, assembly, and low-level data representation. It also introduces concepts of operating systems and differences between Java and C. It serves as a starting point for those interested in hardware or high-level abstractions.

No concepts data

+ 26 more concepts

CS 140: Operating Systems

Stanford University

Spring 2020

This course provides an in-depth understanding of the basic facilities provided by modern operating systems. It's structured into three major sections: concurrency, memory management, and file systems, followed by some smaller topics like virtual machines. The class includes one problem set and four programming projects based on the Pintos kernel, requiring a significant commitment of time.

No concepts data

+ 21 more concepts

CS 111 Operating Systems Principles

Stanford University

Autumn 2022

An introductory course to operating systems, CS 111 builds upon programming experience to explore how operating systems function. The course provides an understanding of OS design challenges, such as filesystems, system calls, concurrency, virtual memory, demand paging, and others. Knowledge in C/C++ and Unix/Linux environment is prerequisite.

No concepts data

+ 20 more concepts

CS 131: Fundamentals of Computer Systems

Brown University

Spring 2020

This course delves deep into the foundational principles behind computer systems, ranging from hardware intricacies to the vast global internet. Students gain insights into systems programming, the architecture of computer systems, concurrency, and the dynamics of distributed systems. Notably, the curriculum includes projects that offer hands-on experience, like building library functions, creating a toy OS, and designing a scalable key-value storage service. It's a stepping stone to advanced courses like Distributed Systems, Databases, and Computer Systems Security.

No concepts data

+ 35 more concepts

CSCI 0300: Fundamentals of Computer Systems

Brown University

Spring 2023

Introductory course covering computer system fundamentals including machine organization, systems programming in C/C++, operating systems concepts, isolation, security, virtualization, concurrency, and distributed systems. Projects involve implementing core OS functionality.

No concepts data

+ 32 more concepts

CS 162: Operating Systems and Systems Programming

UC Berkeley

Fall 2022

This course introduces operating systems design and related concepts. It covers topics like memory allocation, file systems, basic networking, transactions, and security. The course requires foundational knowledge in data structures, assembly language, C programming, and debugging. It aims to improve students' skills in debugging large programs and computational problem solving.

No concepts data

+ 49 more concepts

15-213/18-213/14-513/15-513/18-613 Introduction to Computer Systems

Carnegie Mellon University

Fall 2019

This course provides a deep dive into the inner workings of computer systems, enhancing students' effectiveness as programmers. Topics span machine-level code, performance evaluation, computer arithmetic, memory management, and networking protocols. It serves as a foundation for advanced courses like compilers and operating systems.

No concepts data

+ 22 more concepts

CS 61C Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley

Fall 2022

This course deepens students' understanding of computer architecture and the translation of high-level programs into machine language. Emphasis is on C and assembly language programming, computer organization, parallelism, CPU design, and warehouse-scale computing. Prerequisites include CS61A and CS61B or equivalent C-based programming experience.

No concepts data

+ 51 more concepts

CS167 Operating Systems

Brown University

Spring 2023

CS167 offers comprehensive insights into the principles and intricacies of operating systems. Topics range from multithreaded programming to file system designs. Students will not only grasp theoretical knowledge but also get hands-on experience, particularly through the optional lab CS169, where they can develop an operating system called Weenix.

No concepts data

+ 17 more concepts

CS 240 Foundations of Computer Systems

Wellesley College

Spring 2023

This course explores the inner workings of computers, focusing on how they execute programs. Students gain an in-depth understanding of software and hardware abstractions, ranging from programming languages to transistors. Key areas covered include computational building blocks, hardware-software interfaces, data representation, and practical system abstractions. The course also emphasizes structured reasoning about program execution and promotes skills for independent learning, critical thinking, and problem-solving in computer science.

No concepts data

+ 25 more concepts