Operating System CPU Scheduling and Memory Management
CPU Scheduling Fundamentals
Preemptive vs. Non-Preemptive Scheduling
Explain the difference between preemptive and non-preemptive scheduling. Connect the four process state transitions with these two scheduling schemes:
- Non-Preemptive: A process runs until it voluntarily gives up the CPU or terminates. This includes transitions like Run → Wait and Run → Terminate.
- Preemptive: A process can be interrupted and moved to the ready state by the operating system. This includes transitions like Run →
CPU Micro-operations & Digital System Data Flow
Register Transfer Language (RTL) Fundamentals
Register Transfer Language (RTL) is a symbolic notation used to describe the micro-operations in digital systems, specifically those involving registers and data movement. It provides a way to express the transfer of data between registers, along with the control conditions that trigger those transfers.
RTL uses arrow notation to represent data transfers. For example, the statement R1 ← R2 indicates that the contents of register R2 are transferred
Enterprise Architecture, OLAP vs OLTP, Data Warehouse, and Servers
Understanding Enterprise Architecture
Enterprise architecture is divided into different layers:
- Strategy Layer: Defines what the enterprise needs to do to reach its goals.
- Process Layer: Provides an operative vision.
- Service Layer: Provides control over services.
- Applications Layer: Provides the required software.
- Data Layer: Handles data management.
OLAP vs. OLTP: Key Differences
Online Analytical Processing (OLAP): A system used to analyze data from multiple sources.
Online Transactional Processing (OLTP)
Read MoreUnderstanding Operating System Deadlocks
Deadlocks in Operating Systems
When a process requests resources that are unavailable, it enters a waiting state. A deadlock occurs when a waiting process can never change its state because the resources it needs are held by other waiting processes.
Methods for Handling Deadlocks
- Implement a protocol to prevent or avoid deadlocks, ensuring the system never enters a deadlocked state.
- Allow the system to enter a deadlocked state, then detect it, and recover.
- Ignore the problem altogether, pretending that
The Evolution of Computing: Milestones and Modern Concepts
Early Computing Milestones
Pioneering Mechanical Calculators
- 1642: Pascal’s First Mechanical Calculator – Blaise Pascal invents an early mechanical calculator.
- 1801: Jacquard Loom – Joseph Marie Jacquard develops the first computing device with storable, programmable instructions, using punch cards.
- 1823: Babbage’s Difference Engine – Charles Babbage extends Pascal’s ideas, creating the largest and most sophisticated mechanical calculator of its time.
- 1830s: Babbage’s Analytical Engine – A visionary
Operating System Memory Management Techniques Explained
Memory Management Strategies
- Partitioning: Divide memory into fixed or variable-size partitions.
- Paging: Divide memory into fixed-size blocks (pages).
- Segmentation: Divide programs into logical segments (code, data, stack).
- Swapping: Temporarily move processes from main memory to secondary storage.
- Contiguous Memory Allocation: Allocate contiguous blocks of memory to processes.
Goals of Memory Management
- Efficient memory use
- Prevent memory fragmentation
- Improve system performance
Types of Memory Allocation
- Static
