Chapter 6
Operating System Foundations and Architecture
Bachelor of Business Administration
Computer Fundamental & Operating System
•
Under Graduate
Operating System Foundations and Architecture
Introduction
An operating system (OS) is the fundamental system software that manages a computer’s hardware resources and provides services to application programs and users. Business applications such as accounting systems, web browsers, enterprise resource planning platforms, and mobile payment applications do not normally control processors, memory chips, storage devices, or network interfaces directly. Instead, they request services from the operating system through defined interfaces.
The operating system therefore performs two related roles. First, it is a resource manager: it allocates and controls scarce resources such as processor time, main memory, files, and input/output devices. Second, it is an extended machine: it hides hardware complexity behind convenient abstractions such as processes, files, directories, windows, users, and network connections.
For business students and future managers, operating systems matter because they influence cost, security, reliability, user productivity, scalability, and the suitability of computing platforms for particular organizational tasks. A desktop operating system, a banking server, a smartphone, an industrial controller, and a cloud platform all use operating-system principles, but they optimize different objectives.
Learning Objectives
After studying this chapter, you should be able to:
Define an operating system and explain its purposes.
Describe major operating-system services, components, interfaces, and protection mechanisms.
Compare monolithic, layered, microkernel, modular, hybrid, and virtual-machine architectures.
Distinguish desktop, server, mobile, embedded, real-time, and distributed operating systems.
Evaluate operating-system choices in relation to organizational requirements.
Explain current issues involving virtualization, cloud computing, security, energy efficiency, and platform governance.
1. The Purpose of an Operating System
1.1 Resource management
A computer contains resources that may be requested simultaneously by many programs. The processor can execute only a limited number of instructions at a time; main memory has finite capacity; storage and network devices have limited throughput. The OS decides which process receives a resource, for how long, and under what conditions.
For example, when several employees use a shared server, the OS may:
allocate processor time to multiple processes;
assign memory regions while preventing one process from corrupting another;
organize files and enforce access permissions;
schedule disk and network input/output;
record resource usage for monitoring or billing.
Resource management requires policies as well as mechanisms. A mechanism is a capability, such as a timer interrupt or memory-protection unit. A policy is a decision about how that capability should be used, such as giving interactive users rapid response or prioritizing a critical transaction.
1.2 Abstraction and convenience
Hardware is difficult to use directly. Programs would be unnecessarily complex if every application had to understand the electrical behavior of each storage device or printer. The OS provides abstractions:
A process is a program in execution.
A file is a named collection of persistent data.
A directory organizes files hierarchically.
A socket represents an endpoint for network communication.
A virtual memory space gives a process an apparently large, private address space.
These abstractions improve portability. An application can request that data be written to a file without knowing whether the underlying device is a solid-state drive, magnetic disk, or network storage system.
1.3 Control and protection
The operating system controls transitions between ordinary applications and privileged hardware operations. Without such control, a defective or malicious application could overwrite another application’s memory, disable security controls, or access confidential data.
A typical system distinguishes at least two execution modes:
User mode, in which applications execute with restricted privileges.
Kernel mode, in which the operating system executes with authority to perform protected operations.
The separation is not a complete security solution, but it establishes a critical protection boundary. A program normally enters kernel services through a controlled system call, rather than changing hardware directly.
1.4 Evolution of operating systems
Early computers were operated manually, often by loading one job at a time. Batch systems later grouped jobs so that an operator could reduce setup time. Multiprogramming kept several jobs in memory and switched the processor when one job waited for input/output. Time-sharing systems extended this idea to interactive users.
Modern systems combine interactive computing, networking, graphical interfaces, virtualization, mobile connectivity, and cloud services. Although the user experience has changed substantially, core responsibilities—resource allocation, protection, persistence, and communication—remain central.
2. Operating-System Services and Interfaces
2.1 Major services
An operating system commonly provides the following services.
Program execution. The OS loads a program from storage, creates a process, assigns resources, and starts execution. It also handles normal termination and abnormal termination.
Process management. The OS creates, schedules, suspends, resumes, synchronizes, and terminates processes and threads. It must coordinate processes that share data or compete for resources.
Memory management. The OS tracks which memory locations are in use, allocates memory, reclaims it, and protects address spaces. Virtual-memory systems may move inactive pages between main memory and secondary storage.
Input/output management. Device drivers and I/O subsystems provide a standard way to operate keyboards, displays, disks, printers, sensors, and network interfaces. Buffering, caching, and spooling can improve performance and accommodate speed differences between devices.
File-system management. The OS creates, deletes, reads, writes, names, and protects files and directories. It also maintains metadata such as file size, ownership, timestamps, and access rights.
Communication. Processes may communicate on one computer through pipes, shared memory, or message passing. Across networks, applications may use sockets and protocol stacks.
Error detection and handling. The OS detects hardware faults, invalid memory references, failed devices, corrupted data, and illegal operations. It reports errors, retries operations where appropriate, and records events for diagnosis.
Protection and security. The system authenticates users, authorizes actions, isolates processes, encrypts or protects data where required, and audits significant events.
Accounting and monitoring. Servers and cloud platforms measure processor time, memory, storage, network traffic, and service availability. These measurements support capacity planning, cost allocation, and incident response.
2.2 Interfaces
An interface defines how one component interacts with another. Important operating-system interfaces include:
Command-line interface (CLI): Users type commands interpreted by a shell. CLIs are efficient for administration, automation, and repeatable procedures.
Graphical user interface (GUI): Users interact through windows, menus, icons, pointers, touch controls, and visual feedback. GUIs support discoverability and accessibility for many users.
Application programming interface (API): A programming interface defines functions, data structures, and conventions that applications use to request services.
System-call interface: This is the protected boundary through which a program requests kernel services such as creating a process, opening a file, or communicating through a network socket.
A library function may provide a convenient API while internally invoking one or more system calls. Thus, the API and system-call interface are related but not identical.
2.3 System calls and the protection boundary
A simplified file-reading sequence illustrates the boundary:
An application asks a library to open a file.
The library prepares arguments and invokes the operating system.
The processor changes from user mode to kernel mode through a controlled entry mechanism.
The kernel checks the request, permissions, file metadata, and device status.
The OS obtains data from a cache or device and returns a result.
Control returns to the application in user mode.
The exact names differ across operating systems, but the principle is general. System calls provide controlled access to privileged services and make hardware management consistent.
3. Core Operating-System Components
3.1 The kernel
The kernel is the privileged core of the operating system. It normally includes mechanisms for process management, memory management, interrupt handling, device interaction, protection, and communication. The kernel remains active while the system operates, although parts may be loaded dynamically.
An interrupt is a signal that causes the processor to suspend its current activity and execute an appropriate handler. Hardware interrupts can indicate completion of disk input or arrival of a network packet. Software-generated interrupts or exceptions can indicate a system call, illegal instruction, or memory fault. Interrupts enable the OS to respond to events without constantly polling every device.
3.2 Process and thread management
A process includes a program’s code, data, execution state, resources, and address space. A thread is an execution path within a process. Multiple threads may share the process’s memory while executing independently.
The scheduler selects an eligible thread or process to run. Scheduling policies may favor fairness, rapid interactive response, high throughput, or deadlines. Context switching enables sharing but consumes time because the system must save and restore execution state.
Processes that cooperate need synchronization. A race condition occurs when the result depends on the timing of concurrent operations. A critical section is a code region that accesses shared data and must be protected. Common synchronization tools include mutexes, semaphores, monitors, and message passing.
3.3 Memory management
The OS maintains a logical view of memory for each process. Address translation maps a process’s virtual addresses to physical memory. Protection bits can mark regions as readable, writable, or executable, reducing accidental and malicious interference.
Virtual memory allows a process to use an address space larger than available physical memory by keeping only actively used portions in main memory. If a needed page is absent, a page fault occurs and the OS retrieves it from secondary storage. Virtual memory improves isolation and flexibility, but excessive paging can severely reduce performance.
3.4 Storage and file systems
A file system maps logical names to storage blocks and maintains metadata. It must address naming, allocation, free-space tracking, reliability, and access control. Journaling file systems record intended metadata changes so that recovery after a crash is more reliable. Modern systems may also use copy-on-write techniques, snapshots, replication, or checksums.
File permissions commonly specify operations such as reading, writing, and executing. Enterprise systems may add role-based access control, auditing, encryption, and retention policies.
3.5 Device management and networking
A device driver translates general OS requests into device-specific commands. Drivers allow a common interface to support many types of hardware. The networking subsystem provides protocol implementations, addressing, routing functions, sockets, and security facilities.
Device independence is an important design goal, but it is never absolute. Specialized devices may require proprietary drivers, and performance characteristics differ across hardware. Poorly designed or vulnerable drivers can compromise the entire kernel because they often operate with high privilege.
3.6 Protection and security mechanisms
Protection determines how processes and users may access resources. Security additionally considers threats, identity, trust, and attack response. Important mechanisms include:
authentication, such as passwords, tokens, or biometrics;
authorization through permissions, roles, or policies;
process and memory isolation;
secure boot and trusted software loading;
encryption of data in storage and transit;
logging, auditing, patching, and intrusion detection.
Security is a system property, not merely a feature of the login screen. A secure design must consider the kernel, drivers, applications, users, supply chain, physical access, and administrative practices.
Layered view of an operating system architecture
Figure: Layered view of an operating system architecture
Figure: A conceptual layered view of applications, interfaces, kernel services, drivers, and hardware.
4. Operating-System Architecture
Architecture concerns how OS components are organized, isolated, and allowed to communicate. There is no universally best architecture; the appropriate design depends on performance, reliability, maintainability, hardware constraints, and security requirements.
4.1 Monolithic architecture
In a monolithic kernel, many operating-system services run in one privileged address space. Process management, memory management, file systems, networking, and drivers can communicate directly. This design can be efficient because it minimizes communication overhead.
Its principal weakness is limited fault isolation. A defect in a driver can crash the entire system. Large privileged code bases are also difficult to audit. Modern monolithic systems often address these concerns through modular loading, stronger development practices, and partial isolation rather than abandoning the basic model.
4.2 Layered architecture
A layered OS organizes functions into levels. A higher layer uses services of lower layers, while lower layers do not depend on higher-level details. Layering simplifies reasoning and testing, but strict boundaries may impose overhead or make some cross-layer optimizations difficult.
The layered diagram above is conceptual: real systems often contain exceptions, shared services, and dynamically loaded components.
4.3 Microkernel architecture
A microkernel keeps only essential mechanisms—such as low-level address-space management, scheduling, and interprocess communication—in privileged mode. File systems, drivers, and other services run as separate user-level servers.
The expected benefits are improved fault isolation, reduced trusted code, and easier replacement of services. The costs may include communication overhead, more complex coordination, and performance challenges. Careful engineering can reduce these costs, and microkernel ideas are particularly attractive in safety-critical, embedded, and security-sensitive systems.
4.4 Modular and hybrid architectures
A modular kernel has a core to which components, such as file systems or drivers, can be loaded when needed. Modules provide flexibility and may deliver performance close to that of a monolithic design, but a faulty privileged module can still damage the system.
A hybrid architecture combines ideas from monolithic and microkernel designs. It may retain many services in privileged mode for performance while using modular boundaries and selected message-based structures for organization. The labels are useful for comparison, but actual systems frequently contain mixed architectural techniques.
4.5 Virtual-machine architecture
A virtual-machine monitor, or hypervisor, presents virtual hardware environments to guest operating systems. Each guest can run as though it owns a computer, while the hypervisor controls the underlying physical processor, memory, storage, and network resources.
Virtualization supports server consolidation, testing, disaster recovery, workload isolation, and cloud computing. A Type 1 hypervisor runs directly on hardware; a Type 2 hypervisor runs above a host operating system. Virtual machines improve flexibility but introduce management complexity, resource overhead, and additional security boundaries.
Containers provide a different form of isolation. They share the host kernel while separating processes, filesystems, and resource controls. Containers are generally lighter than virtual machines, but they do not provide the same kernel-level separation because all containers depend on the host kernel.
5. Types of Operating Systems
Operating-system categories often overlap. A smartphone OS is mobile and usually interactive; a server OS may also support real-time components; an embedded device may use a real-time OS. Classification describes dominant design goals rather than mutually exclusive boxes.
Type
Primary emphasis
Typical examples of use
Important concerns
Desktop
Usability and interactive productivity
Office workstations, design PCs
GUI quality, compatibility, security
Server
Concurrent services and availability
Web, database, file, application servers
Scalability, reliability, administration
Mobile
Mobility, touch interaction, energy efficiency
Smartphones and tablets
Battery, sensors, permissions, app isolation
Embedded
Dedicated function and constrained resources
Vehicles, appliances, routers
Small footprint, dependability, updateability
Real-time
Predictable response within deadlines
Industrial control, avionics
Worst-case timing, priority, safety
Distributed
Coordinated operation across computers
Clusters, cloud platforms
Failure, latency, consistency, security
5.1 Desktop operating systems
Desktop systems support one person or a small number of local users performing interactive tasks. They emphasize responsive interfaces, broad hardware support, multimedia, accessibility, application compatibility, and convenient administration. They must still provide strong process isolation, automatic updates, backup support, and malware defenses.
A desktop OS commonly balances performance and responsiveness. A background update may be important, but it should not make a user’s word processor or customer-service application unresponsive.
5.2 Server operating systems
Server systems provide services to many clients, often continuously. Their priorities include throughput, concurrent connections, high availability, centralized administration, remote management, access control, monitoring, and recovery.
A server OS may run web servers, databases, directory services, file services, virtualization platforms, or enterprise applications. Server performance is not simply processor speed. It also depends on memory capacity, storage latency, network bandwidth, workload concurrency, software configuration, and failure-recovery design.
5.3 Mobile operating systems
Mobile operating systems are designed for battery-powered devices with touch interfaces, cameras, location sensors, wireless connectivity, and changing network conditions. They use power-management policies, application sandboxes, permission systems, secure application distribution, and lifecycle controls that may suspend background applications.
Mobile platforms create a governance challenge: the platform provider often controls application distribution, permissions, updates, and access to device capabilities. Organizations must evaluate privacy, data ownership, device-management policies, and compatibility with business systems.
5.4 Embedded operating systems
An embedded OS supports a dedicated product rather than a general-purpose computer. Examples include automotive controllers, medical instruments, network equipment, industrial machines, and smart appliances. Constraints may include limited memory, low power, specialized hardware, long product life, and difficult physical access for maintenance.
Embedded design emphasizes reliability and predictable behavior. A small system is not automatically a secure system: limited update mechanisms, outdated components, exposed network interfaces, and weak credentials can create substantial risk.
5.5 Real-time operating systems
A real-time operating system (RTOS) is designed to respond within specified timing constraints. The essential issue is predictability, not merely average speed.
A hard real-time requirement treats a missed deadline as unacceptable or potentially dangerous. A soft real-time requirement treats missed deadlines as undesirable but tolerable. Scheduling, interrupt handling, memory allocation, synchronization, and device drivers must be analyzed for worst-case behavior.
For a task with release time r and completion time c, its response time is:
R = c − r
Here, R is measured in units of time. A deadline requirement is satisfied when R is no greater than the permitted response interval. This simple relation is useful for explaining timing, but real schedulability analysis must also consider task periods, execution times, priorities, blocking, interrupts, and resource dependencies.
5.6 Distributed operating systems and distributed platforms
A distributed system coordinates multiple computers connected by a network. Some distributed operating systems aim to present a unified system image, while modern distributed platforms often expose separate services, nodes, and APIs.
Distributed systems must address challenges that do not occur in the same form on a single computer:
network delay and limited bandwidth;
partial failure, where one node fails while others continue;
lack of a perfectly shared clock;
replication and data consistency;
authentication across administrative domains;
workload placement and load balancing.
A distributed service may replicate data to improve availability, but replicas can temporarily disagree. Strong consistency may simplify application reasoning but increase latency or reduce availability during network problems. Weaker consistency may improve responsiveness but require applications to tolerate stale data. These are architectural trade-offs rather than purely technical defects.
6. Applied Case: Selecting an Operating Platform for a Retail Organization
Background
Consider an illustrative case involving Northstar Retail, a company with 60 stores, an online sales channel, warehouse scanners, employee smartphones, and a central inventory database.
Problem
The company wants to reduce downtime and improve security. Managers initially propose using one operating-system type for every device to simplify procurement. This proposal ignores the different workloads and risk profiles.
Analysis
The point-of-sale terminals require an interactive interface, peripheral support, rapid recovery, and strict user permissions. The inventory and transaction database requires a server platform optimized for concurrent access, backup, monitoring, and high availability. Warehouse scanners require a mobile or embedded platform with power management and wireless connectivity. Conveyor controllers require predictable timing and may require an RTOS. The online store requires scalable server infrastructure and may use virtual machines or containers.
Approach and solution
Northstar adopts a mixed architecture:
managed desktop or specialized point-of-sale systems for store terminals;
hardened server operating systems for databases and internal services;
mobile-device management for scanners and employee phones;
embedded or real-time systems for warehouse control equipment;
virtualized and containerized services for the online channel;
centralized identity, logging, patch management, backup, and incident response.
The company defines standard operating-system images, limits administrative privileges, tests updates before deployment, encrypts sensitive data, and separates payment systems from general office networks.
Outcome
The mixed approach requires more governance than a single-platform strategy, but it aligns each platform with its operating requirements. The company gains better reliability and security because decisions are based on workload, timing, data sensitivity, and supportability rather than superficial standardization.
Learning points
Operating-system selection is a business and risk decision, not merely a technical preference.
Different workloads justify different architectures and platform types.
Standard policies, identity management, monitoring, and patching can create consistency across heterogeneous systems.
Security depends on configuration and governance as well as the OS itself.
7. Contemporary Issues and Best Practices
Virtualization and cloud computing
Cloud providers use virtualization, containers, orchestration, and automated operating-system management to deliver computing resources as services. Organizations gain elasticity and rapid deployment, but responsibility is shared: the provider secures parts of the infrastructure, while the customer remains responsible for identities, configurations, data, and applications according to the service model.
Security and trust
Operating systems should be patched according to risk, but updates should also be tested because incompatibilities can disrupt operations. Secure boot, least privilege, multifactor authentication, application isolation, endpoint detection, encrypted backups, and tested recovery procedures are important controls.
Privacy and governance
OS telemetry can support diagnostics and security, but it may also reveal user behavior, location, device identifiers, or business activity. Organizations should establish lawful collection, purpose limitation, retention, access control, and transparent communication. Mobile permissions and software distribution policies require particular attention because platform providers may mediate access to personal and organizational data.
Sustainability and energy efficiency
Power management is important in mobile and embedded systems and increasingly relevant in data centers. CPU frequency scaling, workload consolidation, efficient storage, sleep states, and workload scheduling can reduce energy use. However, aggressive power saving may reduce performance or increase response times, so energy objectives must be evaluated alongside service requirements.
Best-practice checklist
Match the OS type and architecture to workload requirements.
Separate user applications from privileged services wherever practical.
Apply least privilege and strong identity controls.
Maintain supported versions, tested patches, and secure configurations.
Monitor performance, failures, capacity, and security events.
Use backups and regularly test restoration.
Document dependencies, ownership, and recovery responsibilities.
Evaluate vendor support, licensing, interoperability, and exit options.
Treat drivers, firmware, containers, and third-party packages as part of the security boundary.
Chapter Summary
An operating system manages hardware resources, provides abstractions for applications, enforces protection, and offers interfaces through which users and programs obtain services. Its major services include program execution, process and memory management, input/output, file management, communication, error handling, security, and accounting. The kernel supplies privileged mechanisms, while APIs, system calls, command shells, and graphical interfaces connect applications and users to those mechanisms.
Operating-system architecture affects performance, reliability, security, and maintainability. Monolithic, layered, microkernel, modular, hybrid, and virtual-machine approaches make different trade-offs between speed, isolation, flexibility, and complexity. Operating-system types are distinguished by dominant objectives: desktops emphasize usability, servers emphasize concurrent service delivery, mobile systems emphasize mobility and energy, embedded systems emphasize dedicated function, real-time systems emphasize predictable deadlines, and distributed systems coordinate multiple networked computers.
In practice, organizations usually operate heterogeneous platforms. Effective selection therefore requires analysis of workload, timing, availability, security, support, cost, energy, and governance. Virtualization and containers extend operating-system capabilities, while cloud computing makes resource management increasingly automated and distributed.
Key Terms
Operating system: System software that manages hardware and provides services to applications and users.
Kernel: Privileged core of an operating system.
Process: A program in execution together with its state and allocated resources.
Thread: An execution path within a process.
System call: A controlled request by an application for a kernel service.
API: A defined programming interface used by software components.
User mode: Restricted processor mode for ordinary applications.
Kernel mode: Privileged processor mode for operating-system code.
Interrupt: A signal or event that causes the processor to invoke a handler.
Virtual memory: A memory-management technique providing processes with virtual address spaces mapped to physical memory.
File system: Structures and procedures for naming, storing, organizing, and protecting files.
Device driver: Software translating general OS requests into device-specific operations.
Monolithic kernel: A kernel in which many OS services operate in one privileged address space.
Microkernel: A design that keeps a minimal set of mechanisms in the kernel and moves services outside it.
Hypervisor: Software that creates and manages virtual machines.
Container: An isolated process environment that shares the host kernel.
Real-time operating system: An OS designed to provide predictable responses within timing constraints.
Distributed system: A coordinated collection of networked computers that provides a combined service.
Least privilege: The principle that a user or process receives only the permissions necessary for its task.
Review Questions
Short Answer Questions
What are the two broad roles of an operating system?
Distinguish user mode from kernel mode.
What is the purpose of a system call?
Define a device driver.
What is meant by a hard real-time requirement?
Long Answer Questions
Explain the major services provided by an operating system and show how they support business applications.
Compare monolithic, layered, microkernel, modular, and hybrid architectures.
Explain how process management, memory management, and file-system management contribute to protection and reliability.
Compare desktop, server, mobile, embedded, real-time, and distributed operating systems.
Explain virtualization and containers, including their benefits, limitations, and governance implications.
Analytical / Application Questions
A hospital needs a patient-record server, handheld medication scanners, and an infusion-pump controller. Recommend suitable operating-system types for each component and justify your choices.
A company wants to place every application in containers and eliminate virtual machines. Analyze the technical and security assumptions behind this proposal and identify situations in which virtual machines may remain preferable.
An online retailer experiences slow transactions during peak demand. Propose an operating-system and platform investigation covering process scheduling, memory, storage, networking, virtualization, monitoring, and failure recovery.
Multiple Choice Questions with Answers
Question 1
Which operating-system role involves allocating processor time, memory, storage, and device access?
A. Resource manager
B. Spreadsheet engine
C. Compiler only
D. Presentation layer
Correct Answer: A. Resource manager
Question 2
Which interface provides a controlled way for an application to request a privileged kernel service?
A. GUI theme
B. System-call interface
C. File extension
D. Device casing
Correct Answer: B. System-call interface
Question 3
What is the principal purpose of user mode?
A. To give every application unrestricted hardware access
B. To restrict ordinary applications from performing privileged operations directly
C. To replace the kernel during boot
D. To eliminate process isolation
Correct Answer: B. To restrict ordinary applications from performing privileged operations directly
Question 4
Which architecture keeps only essential mechanisms in the kernel and places many services in user-level processes?
A. Monolithic architecture
B. Microkernel architecture
C. Single-user architecture
D. Batch architecture
Correct Answer: B. Microkernel architecture
Question 5
What is a major benefit of virtualization?
A. It removes the need for any operating system
B. It allows multiple guest operating systems to share controlled physical resources
C. It guarantees that hardware cannot fail
D. It makes all applications real-time
Correct Answer: B. It allows multiple guest operating systems to share controlled physical resources
Question 6
Which operating-system type prioritizes predictable response within specified timing constraints?
A. Desktop operating system
B. Real-time operating system
C. Word-processing system
D. File archive system
Correct Answer: B. Real-time operating system
Question 7
A smartphone operating system commonly emphasizes which combination?
A. Battery management, sensors, touch interaction, and application permissions
B. Only batch processing and punched cards
C. Unlimited power and no application isolation
D. Exclusive support for magnetic tape
Correct Answer: A. Battery management, sensors, touch interaction, and application permissions
Question 8
A process has release time r = 4 ms and completion time c = 19 ms. Using R = c − r, what is its response time?
A. 15 ms
B. 23 ms
C. 76 ms
D. 4 ms
Correct Answer: A. 15 ms
Question 9
Which statement best distinguishes containers from virtual machines?
A. Containers generally share the host kernel, while virtual machines provide guest operating systems
B. Containers always require more memory than virtual machines
C. Virtual machines cannot isolate workloads
D. Containers are physical devices
Correct Answer: A. Containers generally share the host kernel, while virtual machines provide guest operating systems
Question 10
Why must a distributed system address partial failure?
A. Because all computers always fail simultaneously
B. Because one node or network path may fail while other components continue operating
C. Because distributed systems have no communication mechanisms
D. Because distributed systems cannot store data
Correct Answer: B. Because one node or network path may fail while other components continue operating
Computer Fundamental & Operating System
Chapter 6
of 15