- Operating Systems Basics
- Operating System (OS) Home
- Operating System Basics
- What is an Operating System
- History of Operating System
- Mainframe Operating System
- Server Operating System
- Multiprocessor Operating System
- Personal Computer OS
- Real-Time Operating System
- Embedded Operating System
- Smart Card Operating System
- OS Processors
- OS Memory
- OS System Calls
- Operating System Structure
- OS Processes and Threads
- OS Processes
- OS Process Model
- OS Process Creation
- OS Process Termination
- OS Process Hierarchies
- OS Process States
- OS Process Implementation
- OS Threads
- OS Thread Model
- OS Thread Implementation
- OS Pop-up Threads
- OS Interprocess Communication
- OS Scheduling
- OS Thread Scheduling
- OS Deadlocks
- OS Deadlocks
- OS Deadlock Resources
- OS Deadlock Conditions
- OS Deadlock Modelling
- OS Deadlock Detection
- OS Deadlock Recovery
- OS Deadlock Avoidance
- OS Deadlock Prevention
- OS Two-Phase Locking
- OS Memory Management
- OS Memory Management
- OS Monoprogramming
- OS Multiprogramming
- OS Relocation and Protection
- Memory Management with Bitmap
- Memory Management with Linked List
- OS Virtual Memory
- OS Page Replacement Algorithms
- OS Local vs Global Allocation Policie
- OS Load Control
- OS Page Size
- OS Separate Instruction & Data Space
- OS Shared Pages
- OS Cleaning Policies
- OS Virtual Memory Interface
- OS Implementation Issues
- OS Involvement with Paging
- OS Page Fault Handling
- OS Instruction Backup
- OS Locking Pages in Memory
- OS Backing Store
- OS Separation of Policy & Mechanism
- OS Segmentation
- Operating System Input/Output
- Operating System Input/Output
- OS Input/Output Devices
- OS Device Controllers
- OS Memory-Mapped Input/Output
- OS Direct Memory Access DMA
- OS Input/Output Software Goals
- OS Programmed Input/Output
- OS Interrupt-Driven Input/Output
- OS Input/Output using DMA
- OS Input/Output Software Layers
- OS Disks
- OS Disk Hardware
- OS Disk Formatting
- OS Stable Storage
- OS Clocks
- OS Character-Oriented Terminals
- OS RS-232 Terminal Hardware
- OS Graphical User Interfaces
- OS Network Terminals
- OS Power Management
- OS File Systems
- OS Files
- OS File Naming
- OS File Structure
- OS File Types
- OS File Access
- OS File Attributes
- OS File Operations
- OS Memory-Mapped Files
- OS Directories
- OS Single-Level Directory System
- OS Two-Level Directory System
- OS Hierarchical Directory System
- OS Path Names
- OS Directory Operations
- OS File System Implementation
- OS File System Layout
- OS Disk Space Management
- Multimedia Operating System
- Multimedia Operating System
- OS Multimedia Files
- OS Audio Encoding
- OS Video Encoding
- OS Video Compression
- OS Multimedia Process Scheduling
- OS Multimedia File System Paradigm
- OS File Placement
- OS Caching
- OS Disk Scheduling
- OS Multiple Processor System
- OS Multiprocessors
- OS Multiprocessor Hardware
- OS Multiprocessor Synchronization
- OS Multiprocessor Scheduling
- OS Multicomputers
- OS Multicomputer Hardware
- Low-Level Communication Software
- User-Level Communication Software
- OS Remote Procedure Call
- OS Distributed Shared Memory
- OS Multicomputer Scheduling
- OS Load Balancing
- OS Distributed System
- OS Network Hardware
- OS Network Services and Protocols
- OS Document-Based Middleware
- OS File System-Based Middleware
- OS Shared Object-Based Middleware
- Operating System Security
- Operating System Security
- OS Threats
- OS Intruders
- OS Accidental Data Loss
- Basics of Cryptography
- Secret-Key Cryptography
- Public-Key Cryptography
- OS Digital Signatures
- OS User Authentication
- OS Trojan Horses
- OS Login Spoofing
- OS Logic Bombs
- OS Trap Doors
- OS Viruses
- OS AntiViruses
- OS Internet Worms
- Give Online Test
- All Test List
- Operating System Test
OS Programmed Input/Output
Fundamentally input/output can be performed in one of the following three ways:
- Programmed input/output
- Interrupt-driven input/output
- Input/Output using Direct Memory Access
In this tutorial, we will learn about the first way to perform the input/output, that is, programmed input/output.
Programmed input/output is the simplest way of input/output.
Simplest way of input/output is to have the central processing unit (CPU) do all the work, that is, programmed input/output, in short.
The figure given below shows the steps to print a story of 6 characters in programmed input/output.

The action followed by the OS is programmed input/output is described/summarised in the code given below:
copy_from_user(buffer, p, count); for(i=0; i<count; i++)// loop on every character { while(*printer_status_reg != READY);// loop until ready *printer_data_register = p[i];// output one character } return_to_user();
Here, p is the kernel buffer
Note - No doubt, that the programmed input/output is simple but it has a big disadvantage of tying up the CPU full time until all the input/output is done.
« Previous Tutorial Next Tutorial »