1/51
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
sqrt() function
A function from the math library used to calculate the square root.
Program translation process
The stages through which a program goes before it is executed including preprocessing, compiling, assembling, and linking.
Header files
Files that typically contain type declarations and function declarations but should not contain function definitions or variable definitions.
Build process
Stages and tools involved in converting source code into executable programs, including preprocessing, compiling, assembling, and linking.
Return address
An address in memory where a function should return after execution.
Bit manipulation
Operations that are performed directly on the bits of data, which are commonly used in low-level programming.
Big endian
A type of byte order in which the most significant byte is stored at the smallest memory address.
Little endian
A type of byte order in which the least significant byte is stored at the smallest memory address.
Function definitions
Implementations of functions that include the code that gets executed when the function is called.
Compulsory misses
Cache misses that occur when data is accessed for the first time.
Conflict misses
Cache misses that occur when multiple data items are mapped to the same cache line.
Cache line
The smallest unit of data that can be transferred to and from cache.
Stack frame
A section of memory that contains all the information needed for a single invocation of a function.
Dynamically allocated memory
Memory that is allocated at runtime using functions like malloc or calloc.
Inline assembly
Assembly language instructions that are embedded within a high-level language such as C.
Data locality
The principle that programs often access a relatively small part of the memory, making it advantageous to keep that data stored close to the processor.
Segmented memory model
A memory management scheme that divides memory into different segments based on function or usage.
Temporary vs spatial locality
Temporal locality refers to using the same data or resources within a short time span, while spatial locality refers to accessing data locations that are close in memory.
Kernel mode
A privileged mode of operation for the CPU that allows it to execute any instruction and access any memory.
Context switch
The procedure of storing the state of a process so that it can be resumed later, enabling multitasking.
Interrupt handling
The procedure for managing interrupts by saving the context, processing the interrupt, and restoring the context.
Variable Declarations
Statements that define a variable's name and type, allowing the variable to be used within a program.
Assembly language
A low-level programming language that is closely related to machine code and varies only slightly from it.
Linked list
A linear collection of data elements where each element points to the next, allowing for dynamic memory management.
Volatile variables
Variables that can be changed unexpectedly, often used in multithreaded environments or in hardware interaction.
Memory hierarchy
A structure that uses various levels of memory types (caches, main memory, disk storage) to optimize performance based on speed and size.
Branch instruction
An instruction that alters the control flow of a program based on certain conditions.
High latency
A delay in communication or processing that can occur in various levels of memory and cache.
Variable scoping
The visibility and lifetime of a variable within different parts of a program.
Logical operator
An operator used to perform logical operations, such as AND, OR, and NOT in programming.
Make utility
A tool that automatically builds executable programs and libraries from source code by reading files called Makefiles.
Preprocessing
The first stage in the program translation process that handles macros and includes files.
Compiling
The stage in the program translation process that translates source code into assembly language.
Assembling
The conversion process where assembly code is turned into machine code.
Linking
The final stage of program translation that combines the code with necessary libraries and resolves references.
Type Declarations
Information in header files that defines data types, like structs and typedefs.
Function Declarations
Prototypes that indicate a function's name, return type, and parameters in header files.
Global Variables
Variables that should not be defined in header files due to potential conflicts and linkage issues.
Pointers
Variables in C that store memory addresses of other variables, allowing direct memory manipulation.
Bit Shifting
Operations that move bits left or right within a binary number, effectively multiplying or dividing it.
Condition Flags
Flags set by operations such as comparison in assembly language which affect subsequent jump instructions.
Cache Memory Hierarchy
A system of cache levels, where L1 is the fastest and smallest, and L2 or L3 can be larger and slower.
Direct Mapped Cache
A caching method where each memory block maps to a single cache line, potentially causing conflict misses.
Fully Associative Cache
A caching method where any block can go into any line, reducing an occurrence of misses but increasing latencies.
Set Associative Cache
A compromise between direct-mapped and fully associative caches, allowing multiple lines for each block.
Stack Frame
A memory structure created for each function call, containing local variables, return address, and base pointer.
Heap Memory
A region of memory used for dynamic memory allocation, often managed via functions like malloc.
Cache Miss
An event where the required data is not found in the cache, leading to slower data retrieval.
Debugging
The process of identifying and removing errors or bugs in software, utilizing tools like Valgrind and debuggers.
Endianness Testing
The method of determining how byte order is represented in memory, relevant for data processing.
Binary to Hexadecimal Conversion
The process of converting binary numbers into hexadecimal by grouping digits in sets of four.
Toggle Bit Function
A routine that shifts