I/O | Tech Stack Flashcards
(18 cards)
Programmed I/O
Programmed I/O is a basic method of transferring data between the CPU and I/O devices (like keyboards, printers, or hard drives), where the CPU manages everything manually.
The CPU runs instructions to check if a device is ready.
It waits in a loop (called polling) until the device says: “I’m ready!”
Then it performs the data transfer.
🧍♂️ It’s like standing in line at the printer, constantly asking, “Are you ready now?”
Interrupt Initiated I/O
Interrupt-Initiated I/O is a smarter way for the CPU to handle input/output operations. Instead of constantly checking (polling) an I/O device to see if it’s ready (like in Programmed I/O), the device simply notifies the CPU when it’s ready by sending an interrupt signal.
This means the CPU can:
Work on other tasks,
And only stop to handle I/O when necessary.
💡 “Don’t call us — we’ll call you when we’re ready.”
Technology Stack
Set of technologies used to build an application. refers to the combination of software
products, programming languages, and tools used to develop and operate a software
application or service.
Front-end
The part of the program that interfaces with the user
Front End Languages
HTML, CSS, JavaScript, ReactJS, TypeScript, Elm, Swift
Frameworks
React, Angular, Vue.js, Ember.js, Backbone.js, jQuery, Bootstrap
Back-end
The part of the program that does the “behind-the-scenes” work. responsible for
managing the business logic of the application, handling data processing and storage, and
delivering information to the front-end for display to the user (server, application, and
database)
○ Languages: Python, Java, PHP, Ruby, C++/C/C#
○ Frameworks: Node.js, Ruby on Rails, Django, Spring
○ Databases: MySQL, MongoDB, CouchDB, Oracle
○ Databases, Programming languages, Frameworks, Web Servers
○ js=javascript and DB/SQL are databases
LAMP stack (Linux-OS, Apache-server, MySQL-database, and PHP-programming
language)
■ For hosting web pages on a Linux machine
■ Used to build websites and web applications
■ All 4 components are free and open-sourced
■ Backend stack
WAMP stack (Windows, Apache, MySQL, and PHP)
■ Only difference between LAMP is the operating systems (Linux vs. Windows)
■ Backend stack
MEAN stack (MongoDB, Express.js, AngularJS, and Node.js)
■ For building dynamic web apps
■ Open-source end-to-end JavaScript stack largely used for cloud-hosted
applications (very flexible and scalable)
■ Full stack
MEVN stack (MongoDB, Express.js, VueJS, Node.js)
■ Full stack
■ MEVN is more like MEAN than MERN
MERN stack (MongoDB, Express.js, React, and Node.js)
■ Enables the development of full-stack JavaScript applications.
■ Full stack
Web application framework
software framework designed to support the
development of web applications. Provide a standard way to build and deploy web applications. Aim to automate the overhead associated with common activities
performed in web development.
ASP.NET
open-source web framework, created by Microsoft, for building modern web
apps and services that run on macOS, Linux, Windows, and Docker.
Ruby on Rails
a full stack framework
Hadoop
Apache Hadoop is a Java-based, open-source framework that lets you store and process huge amounts of data using a cluster of computers — often called nodes.
It’s built to handle Big Data, meaning:
Massive volumes of data (terabytes or petabytes),
From many sources,
Needing fast and reliable processing.
🗂️ Think of Hadoop as a giant warehouse system that breaks up data, stores it across many machines, and processes it in parallel.
MongoDB
MongoDB is a popular NoSQL database that stores data in a document-oriented format instead of traditional rows and columns like in SQL databases.
It’s open source
It’s built for high performance, flexibility, and scalability
Data is stored as documents in a format called BSON (Binary JSON)
💡 Think of MongoDB as a giant digital filing cabinet full of smart folders (documents) instead of spreadsheets.
CouchDB
CouchDB is an open-source NoSQL database that stores data in JSON documents and is designed for:
Ease of use
Reliable replication
Offline-first and distributed environments
Its killer feature is built-in syncing and conflict resolution — perfect for mobile apps and systems where data is collected and updated on many devices.
💡 Think of CouchDB like a self-syncing notebook that can merge updates from many people — even when they’ve been working offline.