Memory allocation

Memory management

Memory management is a process of allocating and deallocating memory resources to programs in order to optimize computer performance. It involves methods such as virtual memory, paging and swapping to increase the effectiveness of memory usage. Memory management is handled by either the operating system or the application level depending on the system.

5 courses cover this concept

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 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 112, CS212: Operating Systems

Stanford University

Winter 2023

This course introduces students to operating system concepts, with a primary focus on Unix, and covers key systems concepts in general. It prepares students to deal with larger software systems with programming assignments that are bigger than in many other courses. Topics covered include threads & processes, concurrency & synchronization, scheduling, virtual memory, I/O, disks, file systems, protection & security, and virtual machines.

No concepts data

+ 16 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