This document discusses memory management techniques used in operating systems. It describes the memory hierarchy including primary memory like RAM and secondary memory like disks. It discusses how the operating system manages memory allocation to processes using techniques like partitions, paging, and virtual memory. It also describes concepts like fragmentation, page faults, and address translation that are part of memory management.
Memory management is the process by which an operating system manages and allocates primary memory. It tracks both allocated and free memory locations. Key techniques include single contiguous allocation, partitioned allocation, paged memory management, and segmented memory management. Swapping moves processes temporarily from memory to disk to improve performance. Memory allocation assigns space to processes, and fragmentation occurs when free spaces are too small to use. Paging and segmentation retrieve processes from disk to memory. Dynamic loading and linking load libraries only when needed at runtime rather than during compilation.
This Presentation is for Memory Management in Operating System (OS). This Presentation describes the basic need for the Memory Management in our OS and its various Techniques like Swapping, Fragmentation, Paging and Segmentation.
The document discusses memory management techniques used in operating systems. It covers logical versus physical address spaces and introduces paging as a memory management technique. Paging divides both main memory and disk storage into fixed-sized pages. Each process has a page table containing entries for its pages, with each entry mapping a page to a frame in main memory if present or being invalid if on disk. The CPU address is divided into a page number to index the table and an offset to access within the page.
memory managment on computer science.pptfootydigarse
Description:
This PowerPoint presentation delves into the critical realm of memory management, exploring strategies to optimize system performance and resource utilization. Beginning with an overview of memory management fundamentals, the presentation progresses to examine various memory management techniques employed in modern computing environments. Topics covered include memory allocation algorithms, memory fragmentation mitigation strategies, virtual memory concepts, and the role of caching mechanisms. Through illustrative diagrams, case studies, and real-world examples, the presentation offers insights into best practices for memory management across different computing platforms. Additionally, emerging trends and advancements in memory management technologies are explored, providing attendees with a comprehensive understanding of how to leverage memory management to enhance system efficiency, scalability, and reliability. Whether you're a seasoned IT professional, a software developer, or a student eager to expand your knowledge of memory management, this presentation offers valuable insights into the intricacies of memory optimization in contemporary computing systems.
This document discusses memory management techniques used in computer systems. It covers five key requirements of memory management: relocation, protection, sharing, logical organization, and physical organization. It then describes approaches to memory management like fixed partitioning, placement algorithms, relocation, virtual memory, paging, and the use of page tables to translate virtual addresses to physical addresses. The goal is to efficiently manage the limited main memory and allow multiple processes to efficiently share memory.
The document discusses various memory management techniques used in operating systems including swapping, paging, and segmentation. Swapping allows processes to be moved between main memory and disk to increase multiprogramming. Paging divides memory into fixed-size pages which are mapped to frames, allowing processes to be partially loaded from disk. Segmentation divides processes into variable-sized segments that can be non-contiguous in memory.
OPERATING SYSTEM BY DR .MUGABO MG MKAMAMugabo Mkama
The document discusses operating system concepts including process management, storage management, and I/O management. It describes key components of an operating system like the kernel, shell, and memory manager. It explains how the operating system allocates memory and storage, schedules processes using techniques like paging and swapping, and manages I/O. Process states like ready, running, waiting, and terminated are also defined.
This document discusses memory management techniques used in operating systems. It describes the memory hierarchy including primary memory like RAM and secondary memory like disks. It discusses how the operating system manages memory allocation to processes using techniques like partitions, paging, and virtual memory. It also describes concepts like fragmentation, page faults, and address translation that are part of memory management.
Memory management is the process by which an operating system manages and allocates primary memory. It tracks both allocated and free memory locations. Key techniques include single contiguous allocation, partitioned allocation, paged memory management, and segmented memory management. Swapping moves processes temporarily from memory to disk to improve performance. Memory allocation assigns space to processes, and fragmentation occurs when free spaces are too small to use. Paging and segmentation retrieve processes from disk to memory. Dynamic loading and linking load libraries only when needed at runtime rather than during compilation.
This Presentation is for Memory Management in Operating System (OS). This Presentation describes the basic need for the Memory Management in our OS and its various Techniques like Swapping, Fragmentation, Paging and Segmentation.
The document discusses memory management techniques used in operating systems. It covers logical versus physical address spaces and introduces paging as a memory management technique. Paging divides both main memory and disk storage into fixed-sized pages. Each process has a page table containing entries for its pages, with each entry mapping a page to a frame in main memory if present or being invalid if on disk. The CPU address is divided into a page number to index the table and an offset to access within the page.
memory managment on computer science.pptfootydigarse
Description:
This PowerPoint presentation delves into the critical realm of memory management, exploring strategies to optimize system performance and resource utilization. Beginning with an overview of memory management fundamentals, the presentation progresses to examine various memory management techniques employed in modern computing environments. Topics covered include memory allocation algorithms, memory fragmentation mitigation strategies, virtual memory concepts, and the role of caching mechanisms. Through illustrative diagrams, case studies, and real-world examples, the presentation offers insights into best practices for memory management across different computing platforms. Additionally, emerging trends and advancements in memory management technologies are explored, providing attendees with a comprehensive understanding of how to leverage memory management to enhance system efficiency, scalability, and reliability. Whether you're a seasoned IT professional, a software developer, or a student eager to expand your knowledge of memory management, this presentation offers valuable insights into the intricacies of memory optimization in contemporary computing systems.
This document discusses memory management techniques used in computer systems. It covers five key requirements of memory management: relocation, protection, sharing, logical organization, and physical organization. It then describes approaches to memory management like fixed partitioning, placement algorithms, relocation, virtual memory, paging, and the use of page tables to translate virtual addresses to physical addresses. The goal is to efficiently manage the limited main memory and allow multiple processes to efficiently share memory.
The document discusses various memory management techniques used in operating systems including swapping, paging, and segmentation. Swapping allows processes to be moved between main memory and disk to increase multiprogramming. Paging divides memory into fixed-size pages which are mapped to frames, allowing processes to be partially loaded from disk. Segmentation divides processes into variable-sized segments that can be non-contiguous in memory.
OPERATING SYSTEM BY DR .MUGABO MG MKAMAMugabo Mkama
The document discusses operating system concepts including process management, storage management, and I/O management. It describes key components of an operating system like the kernel, shell, and memory manager. It explains how the operating system allocates memory and storage, schedules processes using techniques like paging and swapping, and manages I/O. Process states like ready, running, waiting, and terminated are also defined.
This document discusses memory management techniques in operating systems. It covers topics such as binding instructions and data to memory at different stages, logical vs physical address spaces, memory management units that map virtual to physical addresses, dynamic loading and linking of code, using overlays to only hold needed instructions and data in memory, swapping processes temporarily out of memory to secondary storage, and contiguous allocation of memory to processes.
Memory management handles allocation of memory to processes and tracks used and free memory. It uses techniques like paging, segmentation, and dynamic allocation from a heap. Paging maps logical addresses to physical pages, avoiding external fragmentation. Segmentation divides memory into logical segments of varying sizes. Dynamic allocation fulfills requests from the heap, managing free blocks and avoiding fragmentation and memory leaks.
Memory management in operating systems controls and manages RAM. It allocates and deallocates memory for processes, tracks used versus free memory, and moves processes between RAM and secondary storage. Memory management uses logical addresses that can change and physical addresses computed by the MMU. It can load processes statically at startup or dynamically only as needed via static or dynamic linking, and uses swapping to move pages between RAM and storage. Fragmentation and contiguous allocation affect how efficiently memory is used. Segmentation divides programs into segments that are each loaded as a contiguous block.
The document discusses various topics related to process management in operating systems, including:
1) A process is a program in execution that can be in different states like ready, running, waiting, or terminated. The OS uses a process control block to manage information for each process.
2) Processes communicate and synchronize access to shared resources using techniques like message passing and shared memory.
3) CPU scheduling algorithms like first-come first-served, shortest job next, priority, and round robin are used to allocate CPU time between ready processes.
The document discusses various topics related to memory management in operating systems including swapping, contiguous memory allocation, paging, segmentation, virtual memory concepts like demand paging, page replacement, and thrashing. It provides details on page tables, segmentation hardware, logical to physical address translation, and performance aspects of demand paging. The key aspects covered are memory management techniques to overcome fragmentation and enable efficient use of limited main memory.
Dynamic loading allows programs to load routines on demand when they are called rather than loading the entire program at once. This improves memory utilization since infrequently used routines are not loaded unless needed. When a routine is called that is not loaded, the loader loads it from disk and updates the program's address tables. Dynamic linking also loads routines on demand using stubs that check if a routine is in memory and load it if not.
Main memory refers to the physical memory inside a computer that programs and files are copied to from storage for execution. Programs can be loaded entirely or parts loaded dynamically as needed. Dynamic linking also allows dependent programs to be linked when required rather than loaded all at once. Memory management techniques include swapping processes between memory and disk, contiguous and non-contiguous allocation, protection against unauthorized access, and addressing fragmentation through paging and segmentation.
This document discusses memory management in operating systems. It defines memory management as allocating RAM to user programs and reclaiming memory after programs finish. It also describes protecting each user's memory from other programs. The document discusses physical and virtual memory, and types of virtual memory including paged, segmented, and swapped memory. It defines static and dynamic memory allocation, with static allocation assigning fixed memory at compile time and dynamic allocation assigning variable memory as needed from the heap.
Unit I
Computer System Overview-Basic Elements, Instruction Execution, Interrupts, Memory Hierarchy, Cache Memory, Direct Memory Access, Multiprocessor and Multicore Organization. Operating system overview-objectives and functions, Evolution of Operating System.- Computer System OrganizationOperating System Structure and Operations- System Calls, System Programs, OS Generation and System Boot.
The document discusses operating system concepts including process management, storage management, and virtual memory. It defines an operating system as software that manages hardware and other software. It describes key OS components like the memory manager, processor manager, and file manager. It also covers OS functions like resource allocation, program execution, I/O operations, and error detection. Process management involves scheduling processes in different states like ready, running, waiting. Virtual memory uses paging to store processes across main memory and disk.
1. Virtual memory is a storage allocation scheme that maps virtual memory addresses used by a program to physical addresses in computer memory, allowing programs to behave as if they have more memory than what is physically installed.
2. It uses both hardware and software to dynamically translate logical addresses to physical addresses, permitting processes to be swapped in and out of main memory so they can occupy different physical spaces over time.
3. Demand paging loads pages into memory only when needed, reducing memory usage and allowing larger processes than main memory to run by paging pieces in and out as required.
This document discusses different memory management techniques used in operating systems including swapping, contiguous allocation, and dynamic storage allocation. Contiguous allocation can be done using a single or multiple partitions. Dynamic storage allocation uses a first-fit, best-fit, or worst-fit algorithm to allocate memory from holes of available space to requesting processes. Fragmentation, including external and internal fragmentation, is also discussed. Memory management aims to efficiently allocate memory resources to processes while executing programs in memory and tracking the status of allocated and free memory locations.
The document provides details on memory management techniques, specifically paging. It discusses how paging divides physical memory into fixed-sized blocks called frames and logical memory into the same sized blocks called pages. A page table is used to translate logical addresses to physical frame numbers. The page table entries contain the frame number for the corresponding page. This allows processes to be non-contiguous in physical memory, avoiding external fragmentation.
The document discusses process management concepts including processes, threads, process scheduling, and interprocess communication. It provides definitions and explanations of key terms:
- A process is a program in execution that passes through various states like ready, running, waiting, and terminated.
- Threads allow concurrency within a process and are more lightweight than processes.
- Process scheduling algorithms like FCFS, SJN, priority, and round robin are used to allocate the CPU to ready processes.
- Interprocess communication and synchronization techniques like semaphores allow processes to share resources and data in a synchronized manner to prevent inconsistencies.
This document discusses memory management and paging in operating systems. It explains that memory management allocates space for application routines and prevents interference between programs. The memory hierarchy includes main memory, cache memory, and secondary storage. Paging is a memory management technique that divides processes and main memory into equal pages. It allows processes to be non-contiguous in memory. The operating system uses page tables to map logical addresses to physical addresses stored across different pages and frames. Paging reduces external fragmentation but can cause internal fragmentation.
This document discusses memory management in operating systems. It covers topics like how memory management keeps track of allocated and free memory, provides protection using base and limit registers, and different address binding schemes. It also discusses dynamic loading, dynamic linking, logical versus physical addresses, swapping, memory allocation techniques like single allocation and multiple partitions, and issues like fragmentation. Paging and segmentation techniques for managing memory are also summarized.
This document discusses memory management techniques in operating systems. It covers topics such as binding instructions and data to memory at different stages, logical vs physical address spaces, memory management units that map virtual to physical addresses, dynamic loading and linking of code, using overlays to only hold needed instructions and data in memory, swapping processes temporarily out of memory to secondary storage, and contiguous allocation of memory to processes.
Memory management handles allocation of memory to processes and tracks used and free memory. It uses techniques like paging, segmentation, and dynamic allocation from a heap. Paging maps logical addresses to physical pages, avoiding external fragmentation. Segmentation divides memory into logical segments of varying sizes. Dynamic allocation fulfills requests from the heap, managing free blocks and avoiding fragmentation and memory leaks.
Memory management in operating systems controls and manages RAM. It allocates and deallocates memory for processes, tracks used versus free memory, and moves processes between RAM and secondary storage. Memory management uses logical addresses that can change and physical addresses computed by the MMU. It can load processes statically at startup or dynamically only as needed via static or dynamic linking, and uses swapping to move pages between RAM and storage. Fragmentation and contiguous allocation affect how efficiently memory is used. Segmentation divides programs into segments that are each loaded as a contiguous block.
The document discusses various topics related to process management in operating systems, including:
1) A process is a program in execution that can be in different states like ready, running, waiting, or terminated. The OS uses a process control block to manage information for each process.
2) Processes communicate and synchronize access to shared resources using techniques like message passing and shared memory.
3) CPU scheduling algorithms like first-come first-served, shortest job next, priority, and round robin are used to allocate CPU time between ready processes.
The document discusses various topics related to memory management in operating systems including swapping, contiguous memory allocation, paging, segmentation, virtual memory concepts like demand paging, page replacement, and thrashing. It provides details on page tables, segmentation hardware, logical to physical address translation, and performance aspects of demand paging. The key aspects covered are memory management techniques to overcome fragmentation and enable efficient use of limited main memory.
Dynamic loading allows programs to load routines on demand when they are called rather than loading the entire program at once. This improves memory utilization since infrequently used routines are not loaded unless needed. When a routine is called that is not loaded, the loader loads it from disk and updates the program's address tables. Dynamic linking also loads routines on demand using stubs that check if a routine is in memory and load it if not.
Main memory refers to the physical memory inside a computer that programs and files are copied to from storage for execution. Programs can be loaded entirely or parts loaded dynamically as needed. Dynamic linking also allows dependent programs to be linked when required rather than loaded all at once. Memory management techniques include swapping processes between memory and disk, contiguous and non-contiguous allocation, protection against unauthorized access, and addressing fragmentation through paging and segmentation.
This document discusses memory management in operating systems. It defines memory management as allocating RAM to user programs and reclaiming memory after programs finish. It also describes protecting each user's memory from other programs. The document discusses physical and virtual memory, and types of virtual memory including paged, segmented, and swapped memory. It defines static and dynamic memory allocation, with static allocation assigning fixed memory at compile time and dynamic allocation assigning variable memory as needed from the heap.
Unit I
Computer System Overview-Basic Elements, Instruction Execution, Interrupts, Memory Hierarchy, Cache Memory, Direct Memory Access, Multiprocessor and Multicore Organization. Operating system overview-objectives and functions, Evolution of Operating System.- Computer System OrganizationOperating System Structure and Operations- System Calls, System Programs, OS Generation and System Boot.
The document discusses operating system concepts including process management, storage management, and virtual memory. It defines an operating system as software that manages hardware and other software. It describes key OS components like the memory manager, processor manager, and file manager. It also covers OS functions like resource allocation, program execution, I/O operations, and error detection. Process management involves scheduling processes in different states like ready, running, waiting. Virtual memory uses paging to store processes across main memory and disk.
1. Virtual memory is a storage allocation scheme that maps virtual memory addresses used by a program to physical addresses in computer memory, allowing programs to behave as if they have more memory than what is physically installed.
2. It uses both hardware and software to dynamically translate logical addresses to physical addresses, permitting processes to be swapped in and out of main memory so they can occupy different physical spaces over time.
3. Demand paging loads pages into memory only when needed, reducing memory usage and allowing larger processes than main memory to run by paging pieces in and out as required.
This document discusses different memory management techniques used in operating systems including swapping, contiguous allocation, and dynamic storage allocation. Contiguous allocation can be done using a single or multiple partitions. Dynamic storage allocation uses a first-fit, best-fit, or worst-fit algorithm to allocate memory from holes of available space to requesting processes. Fragmentation, including external and internal fragmentation, is also discussed. Memory management aims to efficiently allocate memory resources to processes while executing programs in memory and tracking the status of allocated and free memory locations.
The document provides details on memory management techniques, specifically paging. It discusses how paging divides physical memory into fixed-sized blocks called frames and logical memory into the same sized blocks called pages. A page table is used to translate logical addresses to physical frame numbers. The page table entries contain the frame number for the corresponding page. This allows processes to be non-contiguous in physical memory, avoiding external fragmentation.
The document discusses process management concepts including processes, threads, process scheduling, and interprocess communication. It provides definitions and explanations of key terms:
- A process is a program in execution that passes through various states like ready, running, waiting, and terminated.
- Threads allow concurrency within a process and are more lightweight than processes.
- Process scheduling algorithms like FCFS, SJN, priority, and round robin are used to allocate the CPU to ready processes.
- Interprocess communication and synchronization techniques like semaphores allow processes to share resources and data in a synchronized manner to prevent inconsistencies.
This document discusses memory management and paging in operating systems. It explains that memory management allocates space for application routines and prevents interference between programs. The memory hierarchy includes main memory, cache memory, and secondary storage. Paging is a memory management technique that divides processes and main memory into equal pages. It allows processes to be non-contiguous in memory. The operating system uses page tables to map logical addresses to physical addresses stored across different pages and frames. Paging reduces external fragmentation but can cause internal fragmentation.
This document discusses memory management in operating systems. It covers topics like how memory management keeps track of allocated and free memory, provides protection using base and limit registers, and different address binding schemes. It also discusses dynamic loading, dynamic linking, logical versus physical addresses, swapping, memory allocation techniques like single allocation and multiple partitions, and issues like fragmentation. Paging and segmentation techniques for managing memory are also summarized.
Similar to Operating System-3 "Memory Management" by Adi.pdf (20)
Software engineering is concerned with developing software using a systematic process and addressing factors like increasing demands and low expectations. It involves activities like specification, development, validation and evolution. Some key challenges are coping with diversity, reduced delivery times and developing trustworthy software. Different techniques are suitable depending on the type of system, and processes may incorporate elements of models like waterfall, incremental development and integration/configuration. Prototyping can help with requirements, design and testing.
The document provides an introduction to software engineering and discusses software, software engineering, the software development life cycle (SDLC), and SDLC models. It defines software and its components. It describes software engineering goals and challenges. It explains the SDLC phases including feasibility study, requirements analysis, design, development, testing, deployment, and maintenance. It discusses various SDLC models like waterfall, iterative, prototype, spiral, and agile models.
Software Engineering-Unit 2 "Requirement Engineering" by Adi.pdfProf. Dr. K. Adisesha
The document discusses requirement engineering and provides details on:
- Types of requirements including functional, non-functional, user, and system requirements
- The requirement engineering process including feasibility studies, elicitation, analysis, specification, validation, and management
- Software requirement specification (SRS) documents, their purpose, characteristics of a good SRS, and typical sections
- Functional and non-functional requirements in more depth
This document discusses system modeling. It defines system modeling as developing abstract models of a system from different perspectives. Common modeling techniques discussed include context models, interaction models, structural models, behavioral models, and model-driven engineering. Specific modeling languages covered are activity diagrams, use case diagrams, sequence diagrams, class diagrams, and state diagrams. The document provides examples and definitions for how to apply these modeling approaches and languages.
Architectural design establishes the framework for software development by examining requirements and designing a model that specifies system components, their inputs/outputs/functions, and interactions. It can be represented using structural, dynamic, process, functional, or framework models. The outputs are an architectural design document and various project plans. Architectural design decisions impact non-functional requirements and common decisions include architectural style and system decomposition.
The document discusses various types of software testing including unit testing, component testing, system testing, test-driven development, release testing, and user testing. It provides details on the goals and processes involved in each type of testing. Unit testing involves testing individual program units in isolation to check functionality. Component and system testing focus on interactions between units and components. Test-driven development interleaves writing tests before code. Release testing validates that software meets requirements before release. User testing involves customers providing input on a system under test.
This document discusses computer communication and networks. It defines data communication and its key characteristics of delivery, accuracy, timeliness and jitter. It describes the core components of a data communication system including the message, sender, receiver, transmission medium and protocols. It then discusses different types of computer networks including LANs, WANs, PANs and MANs. The key aspects covered are their definitions, examples, advantages and disadvantages.
Data communication involves the exchange of data between two devices via transmission media such as cables. It consists of five main components: a message, sender, receiver, transmission medium, and protocol. Data can be transmitted in three modes - simplex, half-duplex, and full-duplex. Transmission media can be guided (wired) such as twisted pair or coaxial cables, or unguided (wireless) such as radio waves. Networks are sets of connected devices that can be arranged in various topologies like bus, star, ring, or mesh. Switching techniques such as circuit, message, and packet switching determine how data is routed through a network.
The document discusses the data link layer. It covers the following key points:
- The data link layer has two sublayers: the logical link control (LLC) sublayer and the medium access control (MAC) sublayer.
- The LLC sublayer controls flow and performs error checking, while the MAC sublayer handles frame encapsulation and network addressing.
- The data link layer is responsible for framing, addressing, error control, flow control, and multi-access functionality. It takes packets and converts them to frames for transmission on the physical layer.
- Error detection techniques used include parity checks and cyclic redundancy checks to validate frames are transmitted accurately. Error correction can be done through retransmission
The document provides an overview of the network layer. It discusses key topics like the functions of the network layer such as logical addressing, routing, and internetworking. It describes different routing algorithms including distance vector, link state, and hierarchical routing. It also covers congestion control mechanisms like leaky bucket algorithm, token bucket algorithm, and admission control that are used to control congestion in the network layer.
The document discusses the transport and application layers of the OSI model. It begins by describing the transport layer, including its responsibilities of process-to-process delivery, end-to-end connections, multiplexing, congestion control, data integrity, error correction, and flow control. It then discusses the transport layer protocols TCP and UDP, comparing their key differences such as connection-oriented vs. connectionless and reliability. The document next covers application layer services and protocols, including DNS, HTTP, FTP, and email. It concludes by describing models like client-server and peer-to-peer that are used in application layer communication.
This document provides an introduction and overview of computer hardware components. It discusses input devices like keyboards, mice, scanners, and digital cameras. It also covers output devices such as monitors, printers, speakers. It describes different types of computers based on size and performance, such as microcomputers, minicomputers, and mainframes. The document then discusses computer memory, including primary memory technologies like RAM and ROM, as well as secondary magnetic storage.
This document provides an overview and introduction to the R programming language. It covers the history and development of R, which originated from the S language at Bell Labs in the 1970s. The document then outlines some key concepts in R including data structures, subsetting, control structures, functions, and debugging. It also discusses the design of the R system including its core functionality in base R and extensive library of additional packages.
The document discusses various government scholarship schemes in India and Karnataka for students. It outlines national schemes administered by ministries like Human Resource Development, Social Justice and Empowerment, Tribal Affairs and Minority Affairs. It also describes state-level schemes in Karnataka for SC/ST/OBC and minority students. Eligibility criteria include family income limits and minimum academic performance. The application process involves applying online through the National Scholarship Portal and State Scholarship Portal.
This document provides an introduction to operating systems presented by Prof. K. Adisesha. It discusses key concepts of operating systems including definitions, functions, types, and properties. Specifically, it defines an operating system as an interface between the user and computer hardware. It describes functions such as processor management, memory management, and file management. It outlines different types of operating systems including batch, time-sharing, distributed, and real-time systems. Finally, it discusses properties like batch processing, multitasking, and distributed environments.
An operating system is an interface between a computer user and the computer hardware. The document discusses the key functions of operating systems including memory management, processor management, device management, file management, security, and more. It provides examples of popular operating systems like Linux, Windows, and describes different types of operating systems such as batch, time-sharing, distributed, network, and real-time operating systems.
This document provides an introduction to data structures using C. It discusses types of data structures like arrays, stacks, queues and linked lists. It explains that data structures allow for efficient organization and storage of data in memory based on relationships between elements. The document also covers topics like asymptotic analysis, best/worst/average case time complexities, big-O, omega and theta notations for analyzing algorithms. It provides characteristics of algorithms and data structures and examples of common data structure operations.
Brand Guideline of Bashundhara A4 Paper - 2024khabri85
It outlines the basic identity elements such as symbol, logotype, colors, and typefaces. It provides examples of applying the identity to materials like letterhead, business cards, reports, folders, and websites.
Cross-Cultural Leadership and CommunicationMattVassar1
Business is done in many different ways across the world. How you connect with colleagues and communicate feedback constructively differs tremendously depending on where a person comes from. Drawing on the culture map from the cultural anthropologist, Erin Meyer, this class discusses how best to manage effectively across the invisible lines of culture.
Creativity for Innovation and SpeechmakingMattVassar1
Tapping into the creative side of your brain to come up with truly innovative approaches. These strategies are based on original research from Stanford University lecturer Matt Vassar, where he discusses how you can use them to come up with truly innovative solutions, regardless of whether you're using to come up with a creative and memorable angle for a business pitch--or if you're coming up with business or technical innovations.
The Science of Learning: implications for modern teachingDerek Wenmoth
Keynote presentation to the Educational Leaders hui Kōkiritia Marautanga held in Auckland on 26 June 2024. Provides a high level overview of the history and development of the science of learning, and implications for the design of learning in our modern schools and classrooms.
How to Create a Stage or a Pipeline in Odoo 17 CRMCeline George
Using CRM module, we can manage and keep track of all new leads and opportunities in one location. It helps to manage your sales pipeline with customizable stages. In this slide let’s discuss how to create a stage or pipeline inside the CRM module in odoo 17.
3. Introduction
Prof. Dr. K. Adisesha
3
Memory Hierarchy Design:
In the Computer System Design, Memory Hierarchy is an enhancement to organize the
memory such that it can minimize the access time.
➢This Memory Hierarchy Design is divided into 2 main types:
❖ External Memory or Secondary Memory: Comprising
of Magnetic Disk, Optical Disk, Magnetic Tape i.e.
peripheral storage devices which are accessible by the
processor via I/O Module.
❖ Internal Memory or Primary Memory: Comprising of
Main Memory, Cache Memory & CPU registers. This is
directly accessible by the processor.
4. Introduction
Prof. Dr. K. Adisesha
4
Memory Management:
Memory management is the functionality of an operating system which handles or
manages primary memory and moves processes back and forth between main memory
and disk during execution.
➢ Main Memory refers to a physical memory that is the internal memory to the computer.
➢ Memory management keeps track of each and every memory location, regardless of
either it is allocated to some process or it is free.
➢ It checks how much memory is to be allocated to processes.
➢ It decides which process will get memory at what time.
➢ It tracks whenever some memory gets freed or unallocated and correspondingly it
updates the status.
5. Introduction
Prof. Dr. K. Adisesha
5
Process Address Space:
The process address space is the set of logical addresses that a process references in its code.
➢ The operating system takes care of mapping the logical addresses to physical addresses at the time of
memory allocation to the program.
➢ There are three types of addresses used in a program before and after memory is allocated .
❖Symbolic addresses: The addresses used in a source code. The variable names, constants, and instruction
labels are the basic elements of the symbolic address space.
❖Relative addresses: At the time of compilation, a compiler converts symbolic addresses into relative
addresses.
❖Physical addresses: The loader generates these addresses at the time when a program is loaded into main
memory.
6. Introduction
Prof. Dr. K. Adisesha
6
Memory Partitioning Techniques:
The memory management techniques can be classified into following main categories:.
➢Contiguous memory management schemes
➢Non-Contiguous memory management schemes
7. Memory Partitioning
Prof. Dr. K. Adisesha
7
Contiguous memory management:
In a Contiguous memory management scheme, each program occupies a single
contiguous block of storage locations, i.e., a set of memory locations with consecutive
addresses.
➢ The Single contiguous memory management scheme is the simplest memory
management scheme used in the earliest generation of computer systems.
➢ In this scheme, the main memory is divided into two contiguous areas or partitions.
❖ The operating systems reside permanently in one partition,
❖ The user process is loaded into the other partition.
8. Memory Partitioning
Prof. Dr. K. Adisesha
8
Contiguous memory management:
Advantages of Single contiguous memory management schemes:
❖ Simple to implement.
❖ Easy to manage and design.
❖ In a Single contiguous memory management scheme, once a process is loaded, it is
given full processor's time, and no other processor will interrupt it.
Disadvantages of Single contiguous memory management schemes:
❖ Wastage of memory space due to unused memory as the process is unlikely to use
all the available memory space.
❖ It does not support multiprogramming, i.e., it cannot handle multiple programs
simultaneously.
9. Memory Partitioning
Prof. Dr. K. Adisesha
9
Multiple Partitioning:
The operating system divides the available main memory into multiple parts to load
multiple processes into the main memory. Thus multiple processes can reside in the
main memory simultaneously..
➢The multiple partitioning schemes is of two types:
❖ Fixed (or static) partitioning
❖ Variable (or dynamic) partitioning
10. Memory Partitioning
Prof. Dr. K. Adisesha
10
Fixed (or static) partitioning:
The main memory is divided into several fixed-sized partitions in a fixed partition
memory management scheme or static partitioning.
➢ These partitions can be of the same size or different sizes. Each partition can hold a
single process.
➢ The number of partitions determines the degree of multiprogramming
➢ Advantages:
❖ Simple to implement.
❖ Easy to manage and design.
➢ Disadvantages :
❖ This scheme suffers from internal fragmentation.
❖ The number of partitions is specified at the time of system generation.
11. Memory Partitioning
Prof. Dr. K. Adisesha
11
Dynamic Partitioning:
In a dynamic partitioning scheme, each process occupies only as much memory as they
require when loaded for processing.
➢ Requested processes are allocated memory until the entire physical memory is
exhausted or the remaining space is insufficient to hold the requesting process.
➢ In this scheme the number of partitions is not defined
at the system generation time.
➢ Simple to implement and to manage.
➢ This scheme also suffers from internal fragmentation.
➢ The number of partitions is specified at the time of
system segmentation.
12. Memory Partitioning
Prof. Dr. K. Adisesha
12
Non-Contiguous memory management:
In a Non-Contiguous memory management the program is divided into different blocks
and loaded at different portions of the memory that need not necessarily be adjacent to
one another.
➢ This scheme can be classified depending upon the size of blocks and whether the
blocks reside in the main memory or not.
❖ Paging technique: the main memory is divided into fixed-
size blocks of physical memory called frames.
❖ Segmentation technique: the main memory is divided into
variable-size blocks of physical memory called segments.
13. Memory Loading
Prof. Dr. K. Adisesha
13
Memory Loading:
All the programs are loaded in the main memory for execution. Sometimes complete
program is loaded into the memory, but some times a certain part or routine of the
program is loaded into the main memory only when it is called by the program.
➢ There are two types of Loading techniques:
❖ Static Loading
❖ Dynamic Loading
14. Memory Loading
Prof. Dr. K. Adisesha
14
Static Loading:
Static loading is the process of loading the complete program into the main memory
before it is executed
➢ Loading the entire program into the main memory before the start of the program
execution is called static loading.
➢ If static loading is used then accordingly static linking is applied.
➢ Linking is a process of collecting and maintaining pieces of code and data into a single
file. Linker also links a particular module into the system library.
➢ A statically linked program takes constant load time every time it is loaded into the
memory for execution.
15. Memory Loading
Prof. Dr. K. Adisesha
15
Dynamic Loading:
In dynamic loading, a routine is not loaded until it is invoked. All of the routines are
stored on disk in a reloadable load format.
➢ Dynamic routines of the library are stored on a disk in relocatable form and are loaded
into memory only when they are needed by the program.
➢ Loading the program into the main memory on demand
is called dynamic loading.
➢ If dynamic loading is used then accordingly dynamic
linking is applied.
➢ Dynamic loading is utilized to ensure optimal memory
consumption
16. Memory Loading
Prof. Dr. K. Adisesha
16
Overlays in Memory Management:
Overlaying is defined as "the process of inserting a block of computer code or other data
into internal memory, replacing what is already there."
➢ It is a method that permits applications to be larger than the primary memory.
➢ Advantages of using overlays include:
❖ Increased memory utilization: Overlays allow multiple programs to
share the same physical memory space.
❖ Reduced load time: Only the necessary parts of a program are loaded
into memory, reducing load time and increasing performance.
❖ Improved reliability: Overlays reduce the risk of memory overflow,
which can cause crashes or data loss.
❖ Reduce memory requirement and reduce time requirement.
17. Memory Loading
Prof. Dr. K. Adisesha
17
Swapping:
Swapping is the process of bringing in each process in main memory, running it for a
while and then putting it back to the disk.
➢ Swapping is also known as a technique for memory
compaction.
➢ Sometimes there is not enough main memory to hold all
the currently active processes in a timesharing system.
➢ The total time taken by swapping process includes the
time it takes to move the entire process to a secondary
disk and then to copy the process back to memory, as well
as the time the process takes to regain main memory.
18. Memory Allocation
Prof. Dr. K. Adisesha
18
Memory Allocation:
In the operating system, the following are four common memory management
techniques.
➢ Single contiguous allocation: Simplest allocation method used by MS-DOS. All
memory (except some reserved for OS) is available to a process.
➢ Partitioned allocation: Memory is divided into different blocks or partitions. Each
process is allocated according to the requirement.
➢ Paged memory management: Memory is divided into fixed-sized units called page
frames, used in a virtual memory environment.
➢ Segmented memory management: Memory is divided into different segments. In this
management, allocated memory doesn’t have to be contiguous.
19. Memory Allocation
Prof. Dr. K. Adisesha
19
Partition Allocation :
In Partition Allocation, when there is more than one partition freely available to
accommodate a process’s request, a partition must be selected.
➢To choose a particular partition, a partition allocation method is needed.
➢When it is time to load a process into the main memory and if there is more than one
free block of memory of sufficient size then the OS decides which free block to allocate.
➢There are different Placement Algorithm:
❖First Fit: The first hole that is big enough is allocated to program.
❖Best Fit: The smallest hole that is big enough is allocated to program.
❖Worst Fit: The largest hole that is big enough is allocated to program.
20. Memory Allocation
Prof. Dr. K. Adisesha
20
First Fit:
In the First Fit, the first available free hole fulfil the requirement of the process
allocated.
➢ Here, in this diagram, a 40 KB memory
block is the first available free hole that can
store process A (size of 25 KB), because the
first two blocks did not have sufficient
memory space.
21. Memory Allocation
Prof. Dr. K. Adisesha
21
Best Fit:
In the Best Fit, allocate the smallest hole that is big enough to process requirements.
For this, we search the entire list, unless the list is ordered by size.
➢ Here in this example, first, we traverse the
complete list and find the last hole 25KB is
the best suitable hole for Process A(size
25KB). In this method, memory utilization is
maximum as compared to other memory
allocation techniques.
22. Memory Allocation
Prof. Dr. K. Adisesha
22
Worst Fit:
In the Worst Fit, allocate the largest available hole to process. This method produces
the largest leftover hole.
➢ Here in this example, Process A (Size 25 KB)
is allocated to the largest available memory
block which is 60KB. Inefficient memory
utilization is a major issue in the worst fit.
23. Memory Allocation
Prof. Dr. K. Adisesha
23
First Fit:
In the First Fit, the first available free hole fulfil the requirement of the process
allocated.
➢Here, in this diagram, a 40 KB memory block is the first available free hole that can
store process A (size of 25 KB), because the first two blocks did not have sufficient
memory space.
❖First Fit: The first hole that is big enough is allocated to program.
❖Best Fit: The smallest hole that is big enough is allocated to program.
❖Worst Fit: The largest hole that is big enough is allocated to program.
24. Memory Allocation
Prof. Dr. K. Adisesha
24
Memory Partitions :
Memory allocation is a process by which computer programs are assigned memory or
space.
➢Main memory usually has two partitions −
❖Low Memory − Operating system resides in this memory.
❖High Memory − User processes are held in high memory.
➢Operating system uses the following memory allocation mechanism.
➢Memory Partitioning types are:
❖Fixed / Static-partition allocation
❖Dynamic/ Multiple-partition allocation
25. Memory Allocation
Prof. Dr. K. Adisesha
25
Dynamic Memory Partitioning:
In this technique, the partition size is not declared initially. It is declared at the time of
process loading
➢ The first partition is reserved for the operating system.
➢ The remaining space is divided into parts.
➢ The size of each partition will be equal to the size of the
process.
➢ The partition size varies according to the need of the
process so that the internal fragmentation can be avoided
26. Memory Allocation
Prof. Dr. K. Adisesha
26
Paging:
Pages of the process are brought into the main memory only when they are required
otherwise they reside in the secondary storage.
➢ Considering the fact that the pages are mapped to the frames in Paging, page size needs
to be as same as frame size.
➢ Different operating system defines different frame sizes.
➢ The pages belonging to a certain process are loaded into available.
➢ The sizes of each frame must be equal.
➢ Pages size is power of 2, between 512 bytes and 8192 bytes.
➢ The size of the process is measured in the number of pages..
27. Memory Allocation
Prof. Dr. K. Adisesha
27
Paging:
Address Translation.
➢ Page address is called logical address and represented by page number and the offset.
❖ Logical Address = Page number + page offset
➢ Frame address is called physical address and
represented by a frame number and the offset.
❖ Physical Address = Frame number + page offset
➢ A data structure called page map table is used to
keep track of the relation between a page of a
process to a frame in physical memory.
28. Memory Allocation
Prof. Dr. K. Adisesha
28
Paging Faults:
A page fault occurs when a program attempts to access a block of memory that is not
stored in the physical memory, or RAM.
➢ The fault notifies the operating system that it must
locate the data in virtual memory, then transfer it
from the storage device to the system RAM.
➢ Page fault arise the exception, that specifies the
O/S, which access the memory slots from virtual
memory for running the program in continue
nature.
29. Memory Allocation
Prof. Dr. K. Adisesha
29
Advantages and Disadvantages of Paging:
Advantages of Paging
➢ Paging offers simplified memory management so that the programs need not worry about the
physical memory addresses.
➢ It allows efficient memory usage.
➢ Provides memory protection by preventing unauthorized access.
➢ The mapping between virtual and physical addresses is quite simple.
Disadvantages of Paging
➢ Since the pages are of fixed size, there is a possibility for internal fragmentation.
➢ Page table overhead arises in systems that require large memory.
➢ An additional layer of memory access is created by paging.
➢ Too many pages in a physical memory at the same time lead to thrashing.
30. Memory Allocation
Prof. Dr. K. Adisesha
30
Segmentation:
Segmentation is a memory management technique in which the memory is divided into
the variable size parts. Each part is known as a segment which can be allocated to a
process.
➢ The details about each segment are stored in a table
called a segment table.
➢ Segment table contains mainly two information
about segment:
❖ Base: It is the base address of the segment
❖ Limit: It is the length of the segment.
31. Memory Allocation
Prof. Dr. K. Adisesha
31
Segmentation:
Translation of Logical address into physical address by segment table.
➢ Suppose a 16 bit address is used with 4 bits for the segment number and 12 bits for the
segment offset so the maximum segment size is 4096 and the maximum number of
segments that can be refereed is 16.
➢ CPU generates a logical address
which contains two parts:
❖ Segment Number
❖ Offset
32. Memory Allocation
Prof. Dr. K. Adisesha
32
Segmentation:
Advantages & Disadvantages of Segmentation.
➢ Advantages of Segmentation.
❖ Average Segment Size is larger than the actual page size.
❖ Less overhead
❖ It is easier to relocate segments than entire address space.
❖ The segment table is of lesser size as compared to the page table in paging.
➢ Disadvantages of Segmentation.
❖ It can have external fragmentation.
❖ it is difficult to allocate contiguous memory to variable sized partition.
❖ Costly memory management algorithms.
34. Memory Allocation
34
Non-Contiguous memory allocation:
Paging Segmentation
Paging divides program into fixed size pages. Segmentation divides program into variable size
segments.
OS is responsible Compiler is responsible.
Paging is faster than segmentation Segmentation is slower than paging
Paging is closer to Operating System Segmentation is closer to User
It suffers from internal fragmentation It suffers from external fragmentation
Logical address is divided into page number and
page offset
Logical address is divided into segment number and
segment offset
Page table is used to maintain the page
information.
Segment Table maintains the segment information
Prof. Dr. K. Adisesha
35. Memory Allocation
Prof. Dr. K. Adisesha
35
Fragmentation:
Fragmentation is an unwanted problem where the memory blocks cannot be allocated
to the processes due to their small size and the blocks remain unused.
➢ The process with the size greater than the size of the largest partition could not be
executed due to the lack of sufficient contiguous memory blocks cannot be allocated to
new upcoming processes and results in inefficient use of memory.
➢ Basically, there are two types of fragmentation:
❖Internal Fragmentation
❖External Fragmentation
36. Memory Allocation
Prof. Dr. K. Adisesha
36
Internal Fragmentation:
Memory block assigned to process is bigger. Some portion of memory is left unused, as
it cannot be used by another process.
➢ In this fragmentation, the process is allocated a memory block of size more than the size of
that process.
➢ Due to this some part of the memory is left unused and this cause internal fragmentation.
37. Memory Allocation
Prof. Dr. K. Adisesha
37
External Fragmentation:
Total memory space is enough to satisfy a request or to reside a process in it, but it is
not contiguous, so it cannot be used.
➢ In this fragmentation, although we have total space
available that is needed by a process still we are not
able to put that process in the memory because that
space is not contiguous.
➢ After some time P1 and P3 got completed and their
assigned space is freed, but they cannot be used to
load a 2 MB process in the memory since they are
not contiguously located
38. Memory Allocation
Prof. Dr. K. Adisesha
38
Compaction:
Compaction technique can be used to create more free memory out of fragmented
memory.
➢External fragmentation can be reduced by compaction or shuffle memory contents to
place all free memory together in one large block. To make compaction feasible, relocation
should be dynamic.
➢The internal fragmentation can be reduced by effectively assigning the smallest partition
but large enough for the process.
39. Virtual memory
Prof. Dr. K. Adisesha
39
Definition:
Virtual memory is a feature of an operating system that enables a computer to be able to
compensate shortages of physical memory by transferring pages of data from random
access memory to disk storage.
➢ Virtual memory is a memory management technique where secondary memory can be
used as if it were a part of the main memory
➢ Virtual memory serves two purposes.
❖ It allows us to extend the use of physical memory.
❖ It allows us to have memory protection, because each
virtual address is translated to a physical address.
40. Virtual memory
Prof. Dr. K. Adisesha
40
Virtual memory:
Virtual memory allows a computer to treat secondary memory as though it were the main
memory.
➢ Virtual memory uses hardware and software to allow a computer to compensate for
physical memory shortages.
➢ Memory manager is in charge of keeping track of the shifts between physical and virtual
memory.
➢ Types of virtual memory are:
❖ Demand Paging
❖ Segmentation
41. Virtual memory
Prof. Dr. K. Adisesha
41
Demand Paging:
A demand paging system is quite similar to a paging system with swapping where
processes reside in secondary memory and pages are loaded only on demand, not in
advance.
➢ Demand paging is used to implement virtual memory, an essential component of
operating systems.
➢ The important jobs of virtual memory in Operating Systems are two.:
❖ Frame Allocation
❖ Page Replacement
42. Virtual memory
Prof. Dr. K. Adisesha
42
Frame Allocation in Virtual Memory:
In Demand paging a physical Address is required by the Central Processing Unit (CPU)
for the frame creation and the physical Addressing provides the actual address to each
frame created.
➢ Frame Allocation Constraints:
❖ The Frames that can be allocated cannot be greater than total number of frames.
❖ Each process should be given a set minimum amount of frames.
❖ When fewer frames are allocated then the page fault ration increases and the
process execution becomes less efficient
❖ There ought to be sufficient frames to accommodate all the many pages that a single
instruction may refer to
43. Virtual memory
Prof. Dr. K. Adisesha
43
Frame Allocation in Virtual Memory:
Frame Allocation Algorithms.
➢ There are three types of Frame Allocation Algorithms in Operating Systems:
❖ Equal Frame Allocation Algorithms: We take number of frames and number of
processes at once. We divide the number of frames by number of processes.
❖ Proportionate Frame Allocation Algorithms: We take number of frames based on
the process size. For big process more number of frames & for small processes less
number of frames is allocated by the operating system.
❖ Priority Frame Allocation Algorithms: According to the quantity of frame
allocations and the processes, priority frame allocation distributes frames.
Processes with lower priorities are then later executed in future and first only high
priority processes are executed first.
44. Virtual memory
Prof. Dr. K. Adisesha
44
Page Replacement Methods :
In an operating system that uses paging for memory management, a page replacement
algorithm is needed to decide which page needs to be replaced when a new page comes
in.
➢ Page Fault: A page fault happens when a
running program accesses a memory page
that is mapped into the virtual address space
but not loaded in physical memory.
45. Virtual memory
Prof. Dr. K. Adisesha
45
Demand Paging:
A demand paging system is quite similar to a paging system with swapping where
processes reside in secondary memory and pages are loaded only on demand, not in
advance.
➢ Types of Page Replacement Methods are:
❖ FIFO
❖ Optimal Algorithm
❖ LRU Page Replacement
46. Virtual memory
Prof. Dr. K. Adisesha
46
FIFO Page Replacement:
FIFO (First-in-first-out) is a simple implementation method, the process selects the page
for a replacement that has been in the virtual address of the memory for the longest time.
➢ Features of FIFO Page Replacement Methods are:
❖ Whenever a new page loaded, the page recently comes in the memory is removed.
❖ The oldest page in the main memory is one that should be selected for replacement
first
47. Virtual memory
Prof. Dr. K. Adisesha
47
Optimal Algorithm:
The optimal page replacement method selects that page for a replacement for which the
time to the next reference is the longest.
➢ Features of Optimal algorithm are:
❖ Optimal algorithm results in the fewest number of page faults. This algorithm is
difficult to implement.
❖ Replace the page which unlike to use for a longer period of time. It only uses the
time when a page needs to be used.
48. Virtual memory
Prof. Dr. K. Adisesha
48
LRU Page Replacement:
Least Recently Used (LRU) page, this method helps OS to find page usage over a short
period of time.
➢ This algorithm should be implemented by associating a counter with an even- page.
➢ Features of LRU Page Replacement are:
❖ The LRU replacement method has the highest count. This counter is also called
aging registers, which specify their age and how much their associated pages should
also be referenced.
❖ The page which hasn't been used for the longest time in the main memory is the one
that should be selected for replacement.
❖ It also keeps a list and replaces pages by looking back into time
49. Virtual memory
Prof. Dr. K. Adisesha
49
Virtual memory:
Virtual memory is important for improving system performance, multitasking, using
large programs and flexibility.
➢ Benefits of using virtual memory
❖ Frees applications from managing shared memory and saves users from having to
add memory modules when RAM space runs out.
❖ Increased security because of memory isolation.
❖ Multiple larger applications can be run simultaneously.
❖ Doesn't need external fragmentation.
❖ Effective CPU use.
❖ Data can be moved automatically.
50. Virtual memory
Prof. Dr. K. Adisesha
50
Thrashing :
Thrashing is when the page fault and swapping happens very frequently at a higher rate,
and then the operating system has to spend more time swapping these pages..
➢ Thrashing occurs when a computer's virtual memory resources are overused, leading to a
constant state of paging and page faults, inhibiting most application-level processing.
➢ Causes of Thrashing
❖ CPU utilization is plotted against the degree of multiprogramming.
❖ As the degree of multiprogramming increases, CPU utilization also increases.
❖ If the degree of multiprogramming is increased further, thrashing sets in, and CPU
utilization drops sharply.
❖ So, at this point, to increase CPU utilization and to stop thrashing, we must decrease
the degree of multiprogramming.
51. Operating System - Properties
Prof. Dr. K. Adisesha
51
Distributed Environment:
A distributed environment refers to multiple independent CPUs or processors in a
computer system.
➢ An operating system does the following activities related to distributed environment:
❖ The OS distributes computation logics among several physical processors.
❖ The processors do not share memory or a clock. Instead, each processor has its own local
memory.
❖ The OS manages the communications between the processors.
❖ They communicate with each other through various communication lines.
52. Operating System - Properties
Prof. Dr. K. Adisesha
52
Spooling:
Spooling is an acronym for simultaneous peripheral operations on line.
➢ Spooling refers to putting data of various I/O jobs in a buffer.
➢ This buffer is a special area in memory or hard disk which is accessible to I/O devices.
➢ Advantages
❖ The spooling operation uses a disk as a very large
buffer.
❖ Spooling is capable of overlapping I/O operation for
one job with processor operations for another job.
53. Operating System - Properties
Prof. Dr. K. Adisesha
53
Spooling:
Spooling is an acronym for simultaneous peripheral operations on line.
➢ Spooling refers to putting data of various I/O jobs in a buffer.
➢ An operating system does the following activities related to distributed environment .
❖ Handles I/O device data spooling as devices have different data access rates.
❖ Maintains the spooling buffer which provides a waiting station where data can rest while the
slower device catches up.
❖ Maintains parallel computation because of spooling process as a computer can perform I/O
in parallel fashion.
❖ It becomes possible to have the computer read data from a tape, write data to disk and to
write out to a tape printer while it is doing its computing task