SlideShare a Scribd company logo
Damian Gordon
Operating Systems: Memory Management
HARD DISK
(MAIN
MEMORY)
(SECONDARY
MEMORY)
2
CACHE 1
Operating Systems: Memory Management
Operating Systems: Memory Management
Operating Systems: Memory Management
Operating Systems: Memory Management
Operating Systems: Memory Management
Operating Systems: Memory Management
Operating Systems: Memory Management
HARD DISK
(MAIN
MEMORY)
(SECONDARY
MEMORY)
2
CACHE 1
HARD DISK
(MAIN
MEMORY)
(SECONDARY
MEMORY)
2
CACHE 1
101
Approximate number of clock cycles to access
the various elements of the memory hierarchy.
HARD DISK
(MAIN
MEMORY)
(SECONDARY
MEMORY)
2
CACHE 1
101
103
Approximate number of clock cycles to access
the various elements of the memory hierarchy.
HARD DISK
(MAIN
MEMORY)
(SECONDARY
MEMORY)
2
CACHE 1
101
103
107
Approximate number of clock cycles to access
the various elements of the memory hierarchy.
 Let’s consider an operating system model
with a single user, and how they use memory.
MAIN
MEMORY
200K
available
MAIN
MEMORY
 If I create a program:
200K
available
MAIN
MEMORY
 If I create a program:
PROGRAM 1
200K
available
MAIN
MEMORY
 If I create a program:
 to be processed, it has
to be written entirely into
Main Memory, in
contiguous space
PROGRAM 1
200K
available
MAIN
MEMORY
PROGRAM 1
200K
available
MAIN
MEMORY
 If the program is bigger:
PROGRAM 1
200K
available
MAIN
MEMORY
 If it doesn’t fit in the
memory, it’s can’t be
processed.
200K
available
MAIN
MEMORY
 This is the limitation of all computers, if a
program is too big, we have to do one of two
things:
1. Get more memory
2. Make the program smaller
Store first location of program in the base register
(for memory protection);
Set Program Counter to the first memory location;
Read first instruction of program;
WHILE (last instruction reached OR Program Counter is
greater than Memory Size)
DO Increment the Program Counter;
IF (last instruction reached)
THEN Stop Loading Program;
END IF;
IF (Program Counter is greater than Memory Size)
THEN Stop Loading Program;
END IF;
Load instruction into memory;
Read next instruction of program;
END WHILE;
 To allow more than one program to run at the
same time, the memory is subdivided into
FIXED PARTITIONS.
MAIN
MEMORY
250K
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
250K
100K
25K
25K
50K
50K
 This leaves us with less memory, but at least
more than one user (and their user process)
can be logged into the system at the same
time.
 If we want to adjust the size of the partitions
we need to shut down the system, go into the
boot login, and then restart.
WHILE (there are still programs in the queue)
DO Determine the program’s requested memory size;
IF program size > Size of Largest Partition
THEN Reject the program;
PRINT “program Rejected: Not Enough Memory”;
Exit; /* this iteration and get next program */
END IF;
MyCounter := 1;
WHILE (MyCounter <= Number of Partitions in Memory)
DO IF (program Size > Memory_Partition[Counter].Size
THEN MyCounter := MyCounter + 1;
ELSE IF (Memory_Partition[Counter].Status == “FREE”;
THEN Load program into Memory_Partition[Counter];
Memory_Partition[Counter].Status := “BUSY”;
Exit; /* this iteration and get next program */
ELSE MyCounter := MyCounter + 1;
END IF;
END WHILE;
No partition available;
put program in waiting queue;
END WHILE;
 To make this work, the Memory manager
needs to keep a Partition Table to remember
the status of all the partitions.
 To make this work, the Memory manager
needs to keep a Partition Table to remember
the status of all the partitions.
Partition
Number
Partition
Size
Memory
Address Access
Partition
Status
1 100K 200K Program1 BUSY
2 25K 300K Program4 BUSY
3 25K 325K FREE
4 50K 350K Program2 BUSY
5 50K 400K FREE
 Which looks like this
in memory:
 Which looks like this
in memory:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
250K
100K
25K
25K
50K
50K
 Let’s add some
programs in:
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
250K
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
PROGRAM 1
250K
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
PROGRAM 1
PROGRAM 2
250K
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
PROGRAM 1
PROGRAM 2
250K
PROGRAM 3
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
PROGRAM 1
PROGRAM 2
PROGRAM 3
250K
INTERNAL FRAGMENTATION
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
PROGRAM 1
PROGRAM 2
PROGRAM 3
250K
INTERNAL FRAGMENTATION
INTERNAL FRAGMENTATION
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
PROGRAM 1
PROGRAM 2
PROGRAM 3
250K
INTERNAL FRAGMENTATION
INTERNAL FRAGMENTATION
EMPTY PARTITION
 Let’s add some
programs in:
PARTITION 1
PARTITION 2
PARTITION 3
PARTITION 4
PARTITION 5
100K
25K
25K
50K
50K
PROGRAM 1
PROGRAM 2
PROGRAM 3
250K
INTERNAL FRAGMENTATION
INTERNAL FRAGMENTATION
EMPTY PARTITION
EMPTY PARTITION
 Selecting the correct set of partition sizes is a
tricky business, too small and larger
programs will be waiting forever to run, too
big and there is a lot of wasted space.
 An alternative is DYNAMIC PARTITIONS,
where a program is given the space it
requests, if there is space available for it.
 This takes care of lots of problems.
 Let’s add some
programs in:
MAIN
MEMORY
250K
 Let’s add some
programs in:
MAIN
MEMORY
250K
PROGRAM 1
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
250K
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
250K
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
250K
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
PROGRAM 3
250K
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
PROGRAM 3250K
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
PROGRAM 3250KPROGRAM 4
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
PROGRAM 3250K
PROGRAM 4
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
PROGRAM 3
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
PROGRAM 3
 It isn’t perfect, because the next program will
go into the slot that is freed up by a
completed program.
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
PROGRAM 3
 Let’s add some
programs in:
MAIN
MEMORY
PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
PROGRAM 3
 Let’s add some
programs in: PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
 Let’s add some
programs in: PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
 Let’s add some
programs in: PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
EXTERNAL FRAGMENTATION
 So however we partition, we end up with
fragmentation, one way or the other.
PROGRAM 1
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
PROGRAM 3
PROGRAM 2
250K
PROGRAM 4
PROGRAM 5
 So how do we decide
where to slot in a
new program?
PROGRAM 3
PROGRAM 1
 So how do we decide
where to slot in a
new program? PROGRAM 2
PROGRAM 3 250K
PROGRAM 4
PROGRAM 5
PROGRAM 6
PROGRAM 1
 Here is the first slot
free
PROGRAM 2
PROGRAM 3 250K
PROGRAM 4
PROGRAM 5
PROGRAM 6
PROGRAM 1
 Here is the first slot
free
PROGRAM 2
PROGRAM 3 250K
PROGRAM 4
PROGRAM 5
PROGRAM 6
PROGRAM 1
 But here’s a better fit
PROGRAM 2
PROGRAM 3 250K
PROGRAM 4
PROGRAM 5
PROGRAM 6
PROGRAM 1
 But here’s a better fit
PROGRAM 2
PROGRAM 3 250K
PROGRAM 4
PROGRAM 5
PROGRAM 6
PROGRAM 1
 So we can either add the new block to the
first available slot (FIRST-FIT ALGORITHM) or
we can add the new block to the most
suitable available slot (BEST-FIT ALGORITHM).
 If the Memory Manager wants a FIRST-FIT
ALGORITHM then it stores a table in order of
memory locations.
 If the Memory Manager wants a BEST-FIT
ALGORITHM then it stores a table in order of
size of memory locations.
Starts Size Status
200 50 BUSY
250 50 FREE
300 15 BUSY
315 40 FREE
355 25 BUSY
Starts Size Status
315 40 FREE
250 50 FREE
300 15 BUSY
355 25 BUSY
315 40 BUSY
Starts Size Status
 After a program is completed, there are three
cases for deallocating space in memory:
 1. There are programs either side of the freed
space:
PROGRAM 3
PROGRAM 4
PROGRAM 6
PROGRAM 3
PROGRAM 4
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
 2. There are is a program on one side, and
it’s free on the other side of the freed space:
PROGRAM 3
PROGRAM 6
PROGRAM 3
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
 3. There are no programs on either side of
the freed space:
PROGRAM 6
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
 Let’s look at the implications of each of these
cases in terms of what the Memory Manager
has to do to remember the FREE and BUSY
memory spaces.
 1. There are programs either side of the freed
space:
PROGRAM 3
PROGRAM 4
PROGRAM 6
PROGRAM 3
PROGRAM 4
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
 1. There are programs either side of the freed
space:
PROGRAM 3
PROGRAM 4
PROGRAM 6
PROGRAM 3
PROGRAM 4
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
250-300
315-340
300-315
200-250
355-380
340-355
250-300
315-340
300-315
200-250
355-380
340-355
 1. There are programs either side of the freed
space:
250-300
315-340
300-315
200-250
355-380
340-355
250-300
315-340
300-315
200-250
355-380
340-355
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 BUSY
315 25 BUSY
340 15 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 FREE
315 25 BUSY
340 15 FREE
355 25 BUSY
 2. There are is a program on one side, and
it’s free on the other side of the freed space:
PROGRAM 3
PROGRAM 6
PROGRAM 3
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
 2. There are is a program on one side, and
it’s free on the other side of the freed space:
PROGRAM 3
PROGRAM 6
PROGRAM 3
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
250-300
300-315
200-250
355-380
315-355
250-300
200-250
355-380
300-355
 2. There are is a program on one side, and
it’s free on the other side of the freed space:
250-300
300-315
200-250
355-380
315-355
250-300
200-250
355-380
300-355
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 BUSY
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 FREE
315 40 FREE
355 25 BUSY
 2. There are is a program on one side, and
it’s free on the other side of the freed space:
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 BUSY
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 FREE
315 40 FREE
355 25 BUSY
 2. There are is a program on one side, and
it’s free on the other side of the freed space:
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 BUSY
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 BUSY
300 15 FREE
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 BUSY
300 55 FREE
355 25 BUSY
 3. There are no programs on either side of
the freed space:
PROGRAM 6
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
 3. There are no programs on either side of
the freed space:
PROGRAM 6
PROGRAM 5 PROGRAM 5
PROGRAM 8 PROGRAM 8
250-300
300-315
200-250
355-380
315-355
250-355
200-250
355-380
 3. There are no programs on either side of
the freed space:
250-300
300-315
200-250
355-380
315-355
250-355
200-250
355-380
Starts Size Status
200 50 BUSY
250 50 FREE
300 15 BUSY
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 FREE
300 15 FREE
315 40 FREE
355 25 BUSY
 3. There are no programs on either side of
the freed space:
Starts Size Status
200 50 BUSY
250 50 FREE
300 15 BUSY
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 FREE
300 15 FREE
315 40 FREE
355 25 BUSY
 3. There are no programs on either side of
the freed space:
Starts Size Status
200 50 BUSY
250 50 FREE
300 15 BUSY
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 50 FREE
300 15 FREE
315 40 FREE
355 25 BUSY
Starts Size Status
200 50 BUSY
250 105 FREE
355 25 BUSY

More Related Content

PPTX
Operating Systems: Processor Management
PPTX
Operating Systems - Memory Management
PPTX
Operating Systems - Processor Management
PPT
Memory Management in OS
PDF
Virtual memory
PDF
Operating system Memory management
PPTX
Memory management ppt
PPTX
chapter 2 memory and process management
Operating Systems: Processor Management
Operating Systems - Memory Management
Operating Systems - Processor Management
Memory Management in OS
Virtual memory
Operating system Memory management
Memory management ppt
chapter 2 memory and process management

What's hot (20)

PDF
8 memory management strategies
PPT
Operating system ch#7
PPT
Chapter 1 - Introduction
PPTX
Process management os concept
PPTX
Os unit 3
PDF
Operating Systems - memory management
PDF
Memory
PDF
Dynamic loading
PDF
Memory management OS
PPTX
Virtual memory
PDF
Operating Systems Part III-Memory Management
PPTX
Memory Management in OS
PPTX
Processor management
PDF
Operating Systems 1 (9/12) - Memory Management Concepts
PDF
CS6401 OPERATING SYSTEMS Unit 3
DOCX
Memory managment
PPTX
Os unit 3 , process management
PDF
Cs8493 unit 3
DOCX
Opetating System Memory management
PPTX
Memory management
8 memory management strategies
Operating system ch#7
Chapter 1 - Introduction
Process management os concept
Os unit 3
Operating Systems - memory management
Memory
Dynamic loading
Memory management OS
Virtual memory
Operating Systems Part III-Memory Management
Memory Management in OS
Processor management
Operating Systems 1 (9/12) - Memory Management Concepts
CS6401 OPERATING SYSTEMS Unit 3
Memory managment
Os unit 3 , process management
Cs8493 unit 3
Opetating System Memory management
Memory management
Ad

Viewers also liked (20)

PPTX
Operating Systems: Virtual Memory
PPTX
Operating Systems: Computer Security
PPTX
Operating Systems: Network Management
PPTX
Operating Systems: File Management
PPTX
Operating Systems: Device Management
PPTX
Simple Data Compression
PPTX
James Bond and the OSI Model
PPTX
Operating Systems: Data Structures
PPTX
Operating Systems: Process Scheduling
PPS
Operating Systems and Memory Management
PPTX
Operating Systems: What happen in 2016?
PPTX
Operating Systems 1: Introduction
PPTX
Operating Systems 1: Syllabus
PDF
Memory management
PPTX
Operating Systems: The Little-Man Computer
PPTX
Operating System-Memory Management
PPTX
Memory management
PPT
Memory management
PPSX
Understanding memory management
Operating Systems: Virtual Memory
Operating Systems: Computer Security
Operating Systems: Network Management
Operating Systems: File Management
Operating Systems: Device Management
Simple Data Compression
James Bond and the OSI Model
Operating Systems: Data Structures
Operating Systems: Process Scheduling
Operating Systems and Memory Management
Operating Systems: What happen in 2016?
Operating Systems 1: Introduction
Operating Systems 1: Syllabus
Memory management
Operating Systems: The Little-Man Computer
Operating System-Memory Management
Memory management
Memory management
Understanding memory management
Ad

Similar to Operating Systems: Memory Management (20)

PPTX
Operating Systems: Revision
PDF
Google Glass Mirror API Setup
PPT
How To Make System Work Faster
PPTX
Dynamic debugging in 8085 microprocessor
PDF
PLC: Easy PLC User manual
PDF
Users guide
PDF
Picaxe manual5
PPTX
Low memory footprint programs-iSeries
PDF
Privileges Escalation by Exploiting Client-Side Vulnerabilities Using Metasploit
DOC
install k+dcan cable standard tools 2.12 on windows 10 64bit
PDF
Time Log with Payment Add on User Manual
PPTX
Module 4 - Operating Systems presentation four
DOC
Sample - Test Cases - Adobe Flash
DOC
Basic Debugging
DOC
Abapdebuggingfrombasictoadvance 140214043218-phpapp01
PPT
ES-CH5.ppt
DOC
How to put 10lbs of functionality into a 5lb package.
PDF
Profiling and optimizing go programs
PDF
6048618 cloning-procedure-of-r12-single-tier
DOC
St22 abap programming
Operating Systems: Revision
Google Glass Mirror API Setup
How To Make System Work Faster
Dynamic debugging in 8085 microprocessor
PLC: Easy PLC User manual
Users guide
Picaxe manual5
Low memory footprint programs-iSeries
Privileges Escalation by Exploiting Client-Side Vulnerabilities Using Metasploit
install k+dcan cable standard tools 2.12 on windows 10 64bit
Time Log with Payment Add on User Manual
Module 4 - Operating Systems presentation four
Sample - Test Cases - Adobe Flash
Basic Debugging
Abapdebuggingfrombasictoadvance 140214043218-phpapp01
ES-CH5.ppt
How to put 10lbs of functionality into a 5lb package.
Profiling and optimizing go programs
6048618 cloning-procedure-of-r12-single-tier
St22 abap programming

More from Damian T. Gordon (20)

PPTX
Introduction to Prompts and Prompt Engineering
PPTX
Introduction to Vibe Coding and Vibe Engineering
PPTX
TRIZ: Theory of Inventive Problem Solving
PPTX
Some Ethical Considerations of AI and GenAI
PPTX
Some Common Errors that Generative AI Produces
PPTX
The Use of Data and Datasets in Data Science
PPTX
A History of Different Versions of Microsoft Windows
PPTX
Writing an Abstract: A Question-based Approach
PPTX
Using GenAI for Universal Design for Learning
DOC
A CheckSheet for Inclusive Software Design
PPTX
A History of Versions of the Apple MacOS
PPTX
68 Ways that Data Science and AI can help address the UN Sustainability Goals
PPTX
Copyright and Creative Commons Considerations
PPTX
Exam Preparation: Some Ideas and Suggestions
PPTX
Studying and Notetaking: Some Suggestions
PPTX
The Growth Mindset: Explanations and Activities
PPTX
Hyperparameter Tuning in Neural Networks
PPTX
Early 20th Century Modern Art: Movements and Artists
PPTX
An Introduction to Generative Artificial Intelligence
PPTX
An Introduction to Green Computing with a fun quiz.
Introduction to Prompts and Prompt Engineering
Introduction to Vibe Coding and Vibe Engineering
TRIZ: Theory of Inventive Problem Solving
Some Ethical Considerations of AI and GenAI
Some Common Errors that Generative AI Produces
The Use of Data and Datasets in Data Science
A History of Different Versions of Microsoft Windows
Writing an Abstract: A Question-based Approach
Using GenAI for Universal Design for Learning
A CheckSheet for Inclusive Software Design
A History of Versions of the Apple MacOS
68 Ways that Data Science and AI can help address the UN Sustainability Goals
Copyright and Creative Commons Considerations
Exam Preparation: Some Ideas and Suggestions
Studying and Notetaking: Some Suggestions
The Growth Mindset: Explanations and Activities
Hyperparameter Tuning in Neural Networks
Early 20th Century Modern Art: Movements and Artists
An Introduction to Generative Artificial Intelligence
An Introduction to Green Computing with a fun quiz.

Recently uploaded (20)

PPTX
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
PPTX
GDM (1) (1).pptx small presentation for students
PDF
RMMM.pdf make it easy to upload and study
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Cell Structure & Organelles in detailed.
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
A systematic review of self-coping strategies used by university students to ...
PPTX
Lesson notes of climatology university.
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
GDM (1) (1).pptx small presentation for students
RMMM.pdf make it easy to upload and study
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Supply Chain Operations Speaking Notes -ICLT Program
Cell Structure & Organelles in detailed.
2.FourierTransform-ShortQuestionswithAnswers.pdf
Chinmaya Tiranga quiz Grand Finale.pdf
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Anesthesia in Laparoscopic Surgery in India
Final Presentation General Medicine 03-08-2024.pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
102 student loan defaulters named and shamed – Is someone you know on the list?
A systematic review of self-coping strategies used by university students to ...
Lesson notes of climatology university.
human mycosis Human fungal infections are called human mycosis..pptx
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Final Presentation General Medicine 03-08-2024.pptx
O5-L3 Freight Transport Ops (International) V1.pdf
Abdominal Access Techniques with Prof. Dr. R K Mishra

Operating Systems: Memory Management

  • 12. HARD DISK (MAIN MEMORY) (SECONDARY MEMORY) 2 CACHE 1 101 Approximate number of clock cycles to access the various elements of the memory hierarchy.
  • 13. HARD DISK (MAIN MEMORY) (SECONDARY MEMORY) 2 CACHE 1 101 103 Approximate number of clock cycles to access the various elements of the memory hierarchy.
  • 14. HARD DISK (MAIN MEMORY) (SECONDARY MEMORY) 2 CACHE 1 101 103 107 Approximate number of clock cycles to access the various elements of the memory hierarchy.
  • 15.  Let’s consider an operating system model with a single user, and how they use memory.
  • 18.  If I create a program: 200K available MAIN MEMORY
  • 19.  If I create a program: PROGRAM 1 200K available MAIN MEMORY
  • 20.  If I create a program:  to be processed, it has to be written entirely into Main Memory, in contiguous space PROGRAM 1 200K available MAIN MEMORY
  • 22.  If the program is bigger: PROGRAM 1 200K available MAIN MEMORY
  • 23.  If it doesn’t fit in the memory, it’s can’t be processed. 200K available MAIN MEMORY
  • 24.  This is the limitation of all computers, if a program is too big, we have to do one of two things: 1. Get more memory 2. Make the program smaller
  • 25. Store first location of program in the base register (for memory protection); Set Program Counter to the first memory location; Read first instruction of program; WHILE (last instruction reached OR Program Counter is greater than Memory Size) DO Increment the Program Counter; IF (last instruction reached) THEN Stop Loading Program; END IF; IF (Program Counter is greater than Memory Size) THEN Stop Loading Program; END IF; Load instruction into memory; Read next instruction of program; END WHILE;
  • 26.  To allow more than one program to run at the same time, the memory is subdivided into FIXED PARTITIONS.
  • 28. PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 250K 100K 25K 25K 50K 50K
  • 29.  This leaves us with less memory, but at least more than one user (and their user process) can be logged into the system at the same time.  If we want to adjust the size of the partitions we need to shut down the system, go into the boot login, and then restart.
  • 30. WHILE (there are still programs in the queue) DO Determine the program’s requested memory size; IF program size > Size of Largest Partition THEN Reject the program; PRINT “program Rejected: Not Enough Memory”; Exit; /* this iteration and get next program */ END IF; MyCounter := 1; WHILE (MyCounter <= Number of Partitions in Memory) DO IF (program Size > Memory_Partition[Counter].Size THEN MyCounter := MyCounter + 1; ELSE IF (Memory_Partition[Counter].Status == “FREE”; THEN Load program into Memory_Partition[Counter]; Memory_Partition[Counter].Status := “BUSY”; Exit; /* this iteration and get next program */ ELSE MyCounter := MyCounter + 1; END IF; END WHILE; No partition available; put program in waiting queue; END WHILE;
  • 31.  To make this work, the Memory manager needs to keep a Partition Table to remember the status of all the partitions.
  • 32.  To make this work, the Memory manager needs to keep a Partition Table to remember the status of all the partitions. Partition Number Partition Size Memory Address Access Partition Status 1 100K 200K Program1 BUSY 2 25K 300K Program4 BUSY 3 25K 325K FREE 4 50K 350K Program2 BUSY 5 50K 400K FREE
  • 33.  Which looks like this in memory:
  • 34.  Which looks like this in memory: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 250K 100K 25K 25K 50K 50K
  • 35.  Let’s add some programs in:
  • 36.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K 250K
  • 37.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K PROGRAM 1 250K
  • 38.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K PROGRAM 1 PROGRAM 2 250K
  • 39.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K PROGRAM 1 PROGRAM 2 250K PROGRAM 3
  • 40.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K PROGRAM 1 PROGRAM 2 PROGRAM 3 250K INTERNAL FRAGMENTATION
  • 41.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K PROGRAM 1 PROGRAM 2 PROGRAM 3 250K INTERNAL FRAGMENTATION INTERNAL FRAGMENTATION
  • 42.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K PROGRAM 1 PROGRAM 2 PROGRAM 3 250K INTERNAL FRAGMENTATION INTERNAL FRAGMENTATION EMPTY PARTITION
  • 43.  Let’s add some programs in: PARTITION 1 PARTITION 2 PARTITION 3 PARTITION 4 PARTITION 5 100K 25K 25K 50K 50K PROGRAM 1 PROGRAM 2 PROGRAM 3 250K INTERNAL FRAGMENTATION INTERNAL FRAGMENTATION EMPTY PARTITION EMPTY PARTITION
  • 44.  Selecting the correct set of partition sizes is a tricky business, too small and larger programs will be waiting forever to run, too big and there is a lot of wasted space.
  • 45.  An alternative is DYNAMIC PARTITIONS, where a program is given the space it requests, if there is space available for it.  This takes care of lots of problems.
  • 46.  Let’s add some programs in: MAIN MEMORY 250K
  • 47.  Let’s add some programs in: MAIN MEMORY 250K PROGRAM 1
  • 48.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 250K
  • 49.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 250K
  • 50.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 250K
  • 51.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 PROGRAM 3 250K
  • 52.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 PROGRAM 3250K
  • 53.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 PROGRAM 3250KPROGRAM 4
  • 54.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 PROGRAM 3250K PROGRAM 4
  • 55.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5 PROGRAM 3
  • 56.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5 PROGRAM 3
  • 57.  It isn’t perfect, because the next program will go into the slot that is freed up by a completed program.
  • 58.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5 PROGRAM 3
  • 59.  Let’s add some programs in: MAIN MEMORY PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5 PROGRAM 3
  • 60.  Let’s add some programs in: PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5
  • 61.  Let’s add some programs in: PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5
  • 62.  Let’s add some programs in: PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5 EXTERNAL FRAGMENTATION
  • 63.  So however we partition, we end up with fragmentation, one way or the other.
  • 64. PROGRAM 1 PROGRAM 2 250K PROGRAM 4 PROGRAM 5 PROGRAM 3
  • 65. PROGRAM 2 250K PROGRAM 4 PROGRAM 5  So how do we decide where to slot in a new program? PROGRAM 3 PROGRAM 1
  • 66.  So how do we decide where to slot in a new program? PROGRAM 2 PROGRAM 3 250K PROGRAM 4 PROGRAM 5 PROGRAM 6 PROGRAM 1
  • 67.  Here is the first slot free PROGRAM 2 PROGRAM 3 250K PROGRAM 4 PROGRAM 5 PROGRAM 6 PROGRAM 1
  • 68.  Here is the first slot free PROGRAM 2 PROGRAM 3 250K PROGRAM 4 PROGRAM 5 PROGRAM 6 PROGRAM 1
  • 69.  But here’s a better fit PROGRAM 2 PROGRAM 3 250K PROGRAM 4 PROGRAM 5 PROGRAM 6 PROGRAM 1
  • 70.  But here’s a better fit PROGRAM 2 PROGRAM 3 250K PROGRAM 4 PROGRAM 5 PROGRAM 6 PROGRAM 1
  • 71.  So we can either add the new block to the first available slot (FIRST-FIT ALGORITHM) or we can add the new block to the most suitable available slot (BEST-FIT ALGORITHM).
  • 72.  If the Memory Manager wants a FIRST-FIT ALGORITHM then it stores a table in order of memory locations.  If the Memory Manager wants a BEST-FIT ALGORITHM then it stores a table in order of size of memory locations. Starts Size Status 200 50 BUSY 250 50 FREE 300 15 BUSY 315 40 FREE 355 25 BUSY Starts Size Status 315 40 FREE 250 50 FREE 300 15 BUSY 355 25 BUSY 315 40 BUSY Starts Size Status
  • 73.  After a program is completed, there are three cases for deallocating space in memory:
  • 74.  1. There are programs either side of the freed space: PROGRAM 3 PROGRAM 4 PROGRAM 6 PROGRAM 3 PROGRAM 4 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8
  • 75.  2. There are is a program on one side, and it’s free on the other side of the freed space: PROGRAM 3 PROGRAM 6 PROGRAM 3 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8
  • 76.  3. There are no programs on either side of the freed space: PROGRAM 6 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8
  • 77.  Let’s look at the implications of each of these cases in terms of what the Memory Manager has to do to remember the FREE and BUSY memory spaces.
  • 78.  1. There are programs either side of the freed space: PROGRAM 3 PROGRAM 4 PROGRAM 6 PROGRAM 3 PROGRAM 4 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8
  • 79.  1. There are programs either side of the freed space: PROGRAM 3 PROGRAM 4 PROGRAM 6 PROGRAM 3 PROGRAM 4 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8 250-300 315-340 300-315 200-250 355-380 340-355 250-300 315-340 300-315 200-250 355-380 340-355
  • 80.  1. There are programs either side of the freed space: 250-300 315-340 300-315 200-250 355-380 340-355 250-300 315-340 300-315 200-250 355-380 340-355 Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 BUSY 315 25 BUSY 340 15 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 FREE 315 25 BUSY 340 15 FREE 355 25 BUSY
  • 81.  2. There are is a program on one side, and it’s free on the other side of the freed space: PROGRAM 3 PROGRAM 6 PROGRAM 3 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8
  • 82.  2. There are is a program on one side, and it’s free on the other side of the freed space: PROGRAM 3 PROGRAM 6 PROGRAM 3 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8 250-300 300-315 200-250 355-380 315-355 250-300 200-250 355-380 300-355
  • 83.  2. There are is a program on one side, and it’s free on the other side of the freed space: 250-300 300-315 200-250 355-380 315-355 250-300 200-250 355-380 300-355 Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 BUSY 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 FREE 315 40 FREE 355 25 BUSY
  • 84.  2. There are is a program on one side, and it’s free on the other side of the freed space: Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 BUSY 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 FREE 315 40 FREE 355 25 BUSY
  • 85.  2. There are is a program on one side, and it’s free on the other side of the freed space: Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 BUSY 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 BUSY 300 15 FREE 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 BUSY 300 55 FREE 355 25 BUSY
  • 86.  3. There are no programs on either side of the freed space: PROGRAM 6 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8
  • 87.  3. There are no programs on either side of the freed space: PROGRAM 6 PROGRAM 5 PROGRAM 5 PROGRAM 8 PROGRAM 8 250-300 300-315 200-250 355-380 315-355 250-355 200-250 355-380
  • 88.  3. There are no programs on either side of the freed space: 250-300 300-315 200-250 355-380 315-355 250-355 200-250 355-380 Starts Size Status 200 50 BUSY 250 50 FREE 300 15 BUSY 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 FREE 300 15 FREE 315 40 FREE 355 25 BUSY
  • 89.  3. There are no programs on either side of the freed space: Starts Size Status 200 50 BUSY 250 50 FREE 300 15 BUSY 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 FREE 300 15 FREE 315 40 FREE 355 25 BUSY
  • 90.  3. There are no programs on either side of the freed space: Starts Size Status 200 50 BUSY 250 50 FREE 300 15 BUSY 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 50 FREE 300 15 FREE 315 40 FREE 355 25 BUSY Starts Size Status 200 50 BUSY 250 105 FREE 355 25 BUSY