1/278
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Central Processing Unit (CPU)
Often referred to as the brain of the computer, is a crucial component responsible for executing instructions from computer programs.
Arithmetic Logic Unit (ALU)
Function: Performs arithmetic and logical operations (addition, subtraction, multiplication, division, AND, OR, NOT, etc.).
Importance: Essential for executing mathematical calculations and decision-making processes.
Control Unit (CU)
Function: Directs the operation of the processor. It tells the computer's memory, ALU, and I/O devices how to respond to the instructions that have been sent to the processor.
Importance: Coordinates how data moves around the CPU and controls the flow of data between the CPU and other components of the computer.
Registers
Function: Small, fast storage locations within the CPU that hold data and instructions temporarily.
Importance: Provide quick access to frequently used data and instructions, enhancing processing speed.
Accumulator (ACC)
Stores the results of arithmetic and logical operations performed by the CPU's Arithmetic Logic Unit (ALU). It holds the intermediate results of calculations during program execution.
Program Counter (PC)
A special register that holds the memory address of the next instruction to be fetched and executed by the CPU.
Memory Address Register (MAR)
A register that holds the memory address of the data or instruction being accessed or manipulated in the computer's memory.
Memory Data Register (MDR)
A register that temporarily holds the data fetched from or to be written to the computer's memory.
Cache Memory
Function: Provides high-speed data access to the CPU, reducing the time needed to fetch data from the main memory (RAM).
Importance: Larger and faster caches can significantly improve CPU
L1 Cache
Proximity to CPU: Closest to the CPU cores.
Speed: Fastest among all cache levels due to its proximity and high-speed SRAM technology.
Size: Smallest in size, typically ranging from 16KB to 128KB per core.
Purpose: Primarily stores frequently accessed data and instructions to reduce latency and improve the CPU's processing speed.
Structure: Often split into two separate caches: one for instructions (L1i) and one for data (L1d).
L2 Cache
Proximity to CPU: Sits between the L1 cache and the main memory (RAM).
Speed: Slower than L1 but faster than L3 cache and main memory.
Size: Larger than L1, typically ranging from 256KB to several megabytes per core.
Purpose: Acts as an intermediary store between L1 and L3, holding data and instructions that are less frequently accessed than those in L1 but more frequently than those in RAM.
Structure: Can be either unified (storing both data and instructions) or split, similar to L1.
L3 Cache
Proximity to CPU: Shared among multiple CPU cores within the same processor.
Speed: Slower than L2 but faster than main memory.
Size: Larger than L2, typically ranging from a few megabytes to tens of megabytes, depending on the CPU architecture.
Purpose: Provides a larger, shared cache that can store data and instructions accessible by all cores, reducing the need to fetch from slower main memory.
Structure: Typically unified, storing both data and instructions.
Pipelining
A CPU function that Is a hardware technique to increase the instruction throughput of a CPU by overlapping instruction execution stages.
Stages of Pipelining
Fetch: Retrieving the instruction from memory.
Decode: Interpreting the instruction and preparing the necessary control signals.
Execute: Performing the operation specified by the instruction (e.g., arithmetic or logic operations).
Memory Access: Reading from or writing to memory, if required by the instruction.
Write Back: Writing the result back to the register file.
Multithreading
An application function that involves executing multiple threads within a single process concurrently, improving CPU utilization and performance for multithreaded applications.
Thread
The smallest unit of execution within a process. A process can contain multiple, each running independently but sharing the same resources, such as memory and file handles.
Resource Sharing
Threads within the same process share resources like memory and data, which can lead to more efficient use of resources.
Parallelism
Executing multiple threads simultaneously, which can be particularly beneficial in computationally intensive tasks.
Multitasking
An OS-level feature that allows multiple processes to run concurrently, providing the ability to run multiple applications simultaneously.
Preemptive Multitasking
The OS determines when a process should pause to allow another process to execute. It allocates time slices to each process.
Cooperative Multitasking
Each process voluntarily yields control to allow other processes to run. Processes must be designed to provide time to the OS.
RAM (Random Access Memory)
Stores data and instructions that the CPU needs quickly.
Asynchronous RAM (ARAM)
A type of RAM where memory operations are not synchronized to a clock signal.
Each operation (read or write) is initiated independently and can occur at any time without needing to wait for a clock edge.
DRAM (Dynamic Random Access Memory)
Must be refreshed periodically to preserve the stored data
Use: General purpose memory for computers and other devices
Pins: Varies, early types package with 16 of 18 pins
SRAM (Static Random Access Memory)
The data is not stored as charge on a capacitor, but in a pair of cross-coupled inverters, so does not need to be refreshed.
Use: Cache memory in CPUs, small amounts of fast memory
Pins: Varies
SDRAM (Synchronous DRAM)
A type of computer memory that is synchronized with the system bus, allowing for faster data transfer rates compared to earlier types of random-access memory (RAM)
Use: Main memory in older computers and graphics cards
SDR (Single Data Rate)
Pins: 168
Data Rate: One per clock cycle
Usage: Older desktop and laptop computers
DDR (Double Data Rate)
Pins: 184
Data Rate: Twice per clock cycle
Usage: Early 2000s desktop and laptop computers
DDR2
Pins: 240
Data Rate: Twice per clock cycle, but with improved speed and efficiency over DDR
Latency: Lower latency compared to DDR
Usage: Mid-2000's desktop and laptop computers
DDR3
Pins: 240
Data Rate: Twice per clock cycle with further improvements over DDR2
Latency: Improved latency and power efficiency compared to DDR2
Usage: Late 2000's to mid-2010's desktop, laptop computers, and servers
DDR4
Pins: 288
Data Rate: Twice per clock cycle with further enhancements
Latency: Improved latency and power efficiency compared to DDR3
Usage: Mid-2010's to present day desktop, laptop computers, and servers
DDR5
Pins: 288
Data Rate: Twice per clock cycle with significant improvements
Latency: Further improvements in latency, power efficiency, and increased density compared to DDR4
Usage: High-performance computing, modern desktop, laptop computers, and servers
Virtual RAM
A memory management technique used by operating systems to extend the apparent amount of RAM available to applications. This is done by using a portion of a computer's storage (such as an SSD or HDD) to simulate additional RAM.
Paging
The operating system divides physical memory and virtual memory into small fixed-sized blocks called pages. When the system runs out of physical RAM, it can swap inactive pages to the storage device, freeing up RAM for active processes.
Pagefile/Swap Space
On Windows systems, this is often referred to as a pagefile, while on Unix-like systems, it is called swap space. This file or partition on the storage device is used to store pages that are moved out of physical RAM.
Address Translation
The CPU uses a memory management unit (MMU) to translate virtual addresses (used by programs) into physical addresses (used by the hardware). This allows applications to use more memory than is physically available.
Motherboard
Also known as a mainboard, is a crucial component in any computer system. It serves as the central hub that connects various hardware components and allows them to communicate with each other.
Chipset
A set of integrated circuits that manage data flow between the CPU, memory, storage devices, and peripherals. It includes the Northbridge and Southbridge (or similar components in modern architectures).
Northbridge
Responsible for high-speed peripherals
CPU Socket
This is where the Central Processing Unit (CPU) is installed. The socket type (e.g., LGA1200, AM4) determines which CPUs are compatible with the motherboard.
RAM Slots
These slots hold the Random Access Memory (RAM) modules, providing temporary storage for data that the CPU needs to access quickly. The number and type of RAM slots vary by motherboard.
Expansion Slots
These slots allow you to install expansion cards such as graphics cards (PCIe), sound cards, network cards, and storage controllers. Common slot types include PCIe x16, PCIe x1, and legacy slots like PCI.
Integrated Graphics
Graphics processing unit integrated into the motherboard.
Southbridge
Responsible for the slower peripherals
Storage Interfaces
Motherboards come with various storage interfaces for connecting hard drives (HDDs), solid-state drives (SSDs), and optical drives. SATA (Serial ATA) and M.2 are common interfaces for modern storage devices.
BIOS/UEFI Chip
This chip contains the Basic Input/Output System (BIOS) or Unified Extensible Firmware Interface (UEFI), which provides the firmware interface for initializing hardware during the boot process and configuring system settings.
I/O Ports
These ports are located on the rear I/O panel of the motherboard and include USB ports, audio jacks, Ethernet ports, video outputs (if the motherboard has integrated graphics), and other connectors for peripherals.
Fan Headers
Motherboards have headers for connecting CPU fans, case fans, and other cooling devices to regulate system temperature.
CMOS Battery
This small battery powers the CMOS (Complementary Metal-Oxide-Semiconductor) memory, which stores BIOS/UEFI settings and system configuration even when the computer is powered off.
Power Connectors
Supplies power to the motherboard from the power supply unit (PSU). They include the main 24-pin ATX power connector, 8-pin EPS connector for CPU power, and additional connectors for peripherals.
Connectors and Headers
Various connectors and headers on the motherboard include front panel connectors (for power button, reset button, LEDs), USB headers, audio headers, and headers for additional features like RGB lighting.
Network Interface Controller (NIC)
Many motherboards have these integrated for Ethernet connectivity, while some high-end boards may include Wi-Fi and Bluetooth controllers.
ATX (Advanced Technology eXtended)
Size: Measure around 12 x 9.6 inches (305 x 244 mm).
Features: Offer plenty of space for components and expansion slots, including multiple PCIe slots, RAM slots, SATA ports, and other connectors. They are commonly used in full-sized desktop PCs and gaming rigs where expandability and performance are priorities.
MicroATX (mATX)
Size: Are smaller than ATX, typically around 9.6 x 9.6 inches (244 x 244 mm).
Features: Despite their smaller size, they still offer decent expandability with fewer PCIe slots and RAM slots compared to ATX. They are suitable for compact desktops or budget-friendly builds that don't require extensive expansion options.
Mini-ITX
Size: The smallest standard form factor, measuring about 6.7 x 6.7 inches (170 x 170 mm).
Features: Have limited space for components but can still accommodate a single PCIe slot, one or two RAM slots, and a few SATA ports. They are popular for compact and portable builds such as small form factor (SFF) PCs, HTPCs (Home Theater PCs), and gaming consoles.
Extended ATX (E-ATX)
Size: Larger than standard ATX, often around 12 x 13 inches (305 x 330 mm) or larger.
Features: Offer more room for additional components and features, including extra PCIe slots, RAM slots, and connectivity options. They are commonly used in high-end desktops, workstations, and gaming setups that require maximum performance and expandability.
Hard Disk Drive (HDD)
Uses spinning magnetic disks (platters) to store data. A read/write head moves over the surface of these platters to access or write data.
Advantages:
High storage capacity at a lower cost per gigabyte.
Suitable for storing large amounts of data that don't require high-speed access.
Disadvantages:
Slower read/write speeds compared to SSDs.
More susceptible to physical shock and damage.
Generates more heat and noise due to moving parts.
Solid-State Drive (SSD)
Uses NAND flash memory to store data, providing faster data access and retrieval than HDDs.
Advantages:
Faster read/write speeds.
More durable as there are no moving parts.
Lower power consumption and heat generation.
Disadvantages:
Higher cost per gigabyte compared to HDDs.
Limited write cycles, though modern SSDs have improved significantly in this aspect.
Network Attached Storage (NAS)
A storage device connected to a network, allowing multiple users and devices to access and share data.
Advantages:
Centralized storage for easy file sharing and collaboration.
Can be configured with RAID for data redundancy and protection.
Useful for backups and media streaming.
Disadvantages:
Network dependency, so performance can be affected by network speed and reliability.
Initial setup and configuration can be complex for non-technical users.
Cloud Storage
Data is stored on remote servers accessed via the internet, managed by cloud service providers.
Advantages:
Accessible from anywhere with an internet connection.
Scalable, with options to increase storage capacity as needed.
Reduces the need for physical storage hardware.
Disadvantages:
Ongoing subscription costs.
Dependent on internet access and speed.
Potential security and privacy concerns.
Hybrid Drive (SSHD)
Combines an HDD with a small amount of SSD storage to improve performance.
Advantages:
Faster than traditional HDDs due to the SSD cache.
More affordable than full SSDs while offering larger storage capacity.
Disadvantages:
Performance improvement is limited compared to a full SSD.
More complex technology could lead to higher failure rates.
External Hard Drive
Portable HDD or SSD connected to a computer via USB, Thunderbolt, or other interfaces.
Advantages:
Easy to use and transport.
Provides additional storage without opening up the computer case.
Disadvantages:
Can be lost or damaged more easily due to portability.
Typically slower than internal drives, especially for HDDs.
Storage Area Network (SAN)
A high-speed network that provides block-level storage to multiple servers.
Advantages:
High performance and scalability.
Centralized storage management and data protection features.
Disadvantages:
Expensive and complex to set up and maintain.
Requires specialized knowledge and equipment.
RAID 0
Striping
Minimum Disks: 2
Explanation: Requires a min of two disks because it stripes data across multiple disks without any redundancy. This configuration is used primarily for performance enhancement, as data is split and written simultaneously across multiple disks, improving read/write speeds.
RAID 1
Mirroring
Minimum Disks: 2
Explanation: Requires a minimum of two disks. Data is mirrored across two or more disks, providing redundancy. If one disk fails, the data can still be accessed from the mirrored disk(s). Sacrifices storage capacity for data protection.
RAID 5
Striping with Parity
Minimum Disks: 3
Explanation: Requires a min of three disks. It uses striping for performance and distributes parity across all disks in the array for redundancy. If one disk fails, the parity information allows for data reconstruction. Offers a balance between performance, storage efficiency, and fault tolerance.
RAID 6
Striping with Double Parity
Minimum Disks: 4
Explanation: Needs a min of four disks. It is similar to RAID 5 but provides an additional level of fault tolerance by using dual parity. This means it can withstand the simultaneous failure of up to two disks without data loss. Is suitable for applications that require high fault tolerance.
RAID 10
Mirroring + Striping
Minimum Disks: 4
Explanation: Combines mirroring (RAID 1) and striping (RAID 0). It requires a min of four disks arranged in pairs, where each pair is mirrored, and data is striped across these mirrored pairs. Provides both redundancy (through mirroring) and performance benefits (through striping).
IaaS (Infrastructure as a Service)
Provides virtualized computing resources over the internet.
Software Examples: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), IBM Cloud.
System Examples: Virtual machines (VMs), storage services, networking resources, and other infrastructure components provided by IaaS providers.
PaaS (Platform as a Service)
Offers platforms and tools for application development and deployment.
Software Examples: Heroku, Google App Engine, Microsoft Azure App Service, AWS Elastic Beanstalk.
System Examples: Development frameworks, database management systems, application hosting environments, and other tools and services for developers to build, deploy, and manage applications without managing the underlying infrastructure.
SaaS (Software as a Service)
Delivers software applications over the internet on a subscription basis.
Software Examples: Salesforce, Google Workspace (formerly G Suite), Microsoft Office 365, Dropbox.
System Examples: Fully functional software applications delivered over the internet on a subscription basis, allowing users to access and use the software without needing to install or manage it locally.
DaaS (Desktop as a Service)
Virtual desktop infrastructure provided over the internet.
Software Examples: Citrix Virtual Apps and Desktops, VMware Horizon Cloud, Microsoft Windows Virtual Desktop.
System Examples: Virtual desktop infrastructure (VDI) solutions that provide users with virtual desktop environments hosted and managed in the cloud, allowing access to desktops and applications from any device with an internet connection.
LAMP Stack
Linux: Operating system
Apache: Web server
MySQL: Database management system
PHP: Server-side scripting language
Common Use: Traditional web development stack, popular for PHP-based applications.
WAMP Stack
Windows: Operating system
Apache: Web server
MySQL: Database management system
PHP: Server-side scripting language
Common Use: Similar to LAMP but used in Windows environments.
MEAN Stack
MongoDB: NoSQL database
Express.js: Web application framework for Node.js
AngularJS or Angular: Frontend JavaScript framework
Node.js: JavaScript runtime environment
Common Use: Modern web development stack using JavaScript across the entire application.
MEVN Stack
MongoDB: NoSQL database
Express.js: Web application framework for Node.js
Vue.js: Frontend JavaScript framework
Node.js: JavaScript runtime environment
Common Use: Similar to MEAN but uses Vue.js for the frontend instead of Angular. More similar to MEAN than MERN.
MERN Stack
MongoDB: NoSQL database
Express.js: Web application framework for Node.js
React: Frontend JavaScript library
Node.js: JavaScript runtime environment
Common Use: Similar to MEAN but uses React for the frontend instead of Angular.
HTML (Hypertext Markup Language)
Used for creating the structure of web pages.
CSS (Cascading Style Sheets)
Used for styling the appearance of web pages.
JavaScript
A scripting language used for adding interactivity and dynamic content to web pages.
TypeScript
A superset of JavaScript that adds static typing and other features.
React
A JavaScript library for building user interfaces.
Angular
A TypeScript-based framework for building web applications.
Vue.js
A progressive JavaScript framework for building user interfaces.
Bootstrap
A front-end framework for designing responsive and mobile-first websites.
Sass (Syntactically Awesome Style Sheets)
A CSS preprocessor that adds features like variables, mixings, and nesting.
PHP
A server-side scripting language commonly used for web development.
Python
A versatile language used for web development, data science, automation, and more.
Django
A high-level Python web framework that encourages rapid development and clean, pragmatic design.
Ruby
A dynamic, object-oriented language often used with the Ruby on Rails framework for web development.
Java
A widely-used language for building enterprise-level applications, including web applications.
Spring
A powerful Java application framework for building enterprise-level applications.
C#
A language developed by Microsoft, commonly used for building Windows applications and web services.
Node.js
While JavaScript is primarily a frontend language, this allows it to be used for server-side development.
Go (Golang)
A language developed by Google known for its simplicity, concurrency support, and performance.
Scala
A language that combines object-oriented and functional programming paradigms, often used in big data processing with frameworks like Apache Spark.
Swift
Developed by Apple, used for iOS, macOS, watchOS, and tvOS app development.
Kotlin
A modern language used for Android app development, also interoperable with Java.
IntelliJ IDEA
Code Used: Java
Features: Most User Friendly
Visual Studio
Code Used: Anything from HTML to C++
Features: Used to develop websites, web apps and mobile apps