29
Memory: Overview CS439: Principles of Computer Systems March 2, 2020

11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Memory: Overview

CS439: Principles of Computer SystemsMarch 2, 2020

Page 2: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Where We Are In the Course• Just finished:

– Processes & Threads– CPU Scheduling– Synchronization

• Next: – Memory Management– Virtual Memory– Heap Memory Management– File Systems

• Finally:– Networks– Other Topics

• Distributed and Parallel Systems, Security

Page 3: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Today’s Additions

Memory: Overview–Where is the executing process?– How do we allow multiple processes to use main

memory simultaneously?–What is an address and how is one interpreted?

Page 4: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

ProcessP

Basic Concepts: Address Spaces• Physical address space: Collection of

physical memory addresses supported by the hardware– From address 0 to address MAXsys

• Logical/virtual address space: Collection of addresses that the process can access (this is the process’s view)– From address 0 to address MAXprog

• Segment: A chunk of physical memory assigned to a process

0

MAXsys

MAXprog

Page 5: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Picture of Computer Architecture. Text description next slide.

Back to Architecture

Page 6: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Basic Concepts: Address Generation

Uniprogramming:• One process executes at a time• Process is always loaded starting at address 0• Process executes in a contiguous section of

memory• OS gets fixed part of memory• Compiler can generate physical addresses• Maximum address = Memory Size – OS Size• OS is protected from processes by address

checking

Page 7: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

This is a picture of uniprogrammedmemory. Text description on next slide.

Uniprogramming Picture

Page 8: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Multiple Programs Share Memory:Requirements

Transparency:• We want multiple processes to coexist in memory• No process should be aware that memory is shared• Processes should not care what physical portion of

memory they getSafety:• Processes must not be able to corrupt each other• Processes must not be able to corrupt the OSEfficiency:• Performance of the CPU and memory should not be

degraded badly due to sharing

Page 9: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Relocation• Put the OS in the highest memory• Assume at compile/link time that the process starts at

0 with a Maximum address = Memory Size – OS Size• When the OS loads the process, it allocates a

contiguous segment of memory in which the process fits. If it does not fit, the OS waits for a process to terminate

• The first (smallest) physical address of the process is the base address and the largest physical address the process can access is the limit address

• The base address is also known as the relocation address

Page 10: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Relocation Picture

Relocation picture. Text description on next slide.

Page 11: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Relocation: Two Types

• Static:– Loader adjusts the addresses in a process to

reflect its location in memory– Once process is assigned a place in memory and

starts executing, OS cannot move it

Page 12: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Static Relocation picture. Text description on next slide.

Static Relocation:Address Translation

The Compilation Pipeline

prog P::

foo()::

end P

P::

push ...inc SP, xjmp _foo:

foo: ...

:push ...inc SP, 4jmp 75

:...

0

75

1100

1175

LibraryRoutines

1000

175

LibraryRoutines

0

100

Compilation Assembly Linking Loading

:::

jmp 1175:...

:::

jmp 175:...

Page 13: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Relocation: Two Types• Static:– Loader adjusts the addresses in a process to reflect its

location in memory– Once process is assigned a place in memory and starts

executing, OS cannot move it• Dynamic: In parallel– Hardware adds relocation register (base) to virtual

address to get physical address– Hardware compares address with limit register• address must be less than limit• if test fails, the processor raises an exception

Page 14: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Dynamic Relocation:Address Translation

0

MAXsys

Process

ProcessP’s

logicaladdressspace

0

500

1000

1500

CPU +

1000Base Register

LogicalAddresses

500

Bound Register

MEMORYEXCEPTION

PhysicalAddresses

no

Instructions

P’sphysicaladdressspace

Page 15: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

iClicker Question

Address translation in dynamic relocation does the following steps:

A. Converts address by adding base and then checks against limit

B. Checks address against limit and then adds base

C. Checks address against limit and adds base in parallel

Page 16: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Memory Management

As processes enter the system, grow, and terminate, the OS must track which memory is available (the holes) and which is utilized

Given a memory request from a starting process, the OS must decide what space to use for the process

Page 17: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Memory Management Example. Text description next slide.

Memory Management Picture

Page 18: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Memory Allocation Policies: Evaluation

• Minimize wasted space• Two types of wasted space:– External Fragmentation• Unused memory between units of allocation• For example, two fixed tables for two but a party of four

– Internal Fragmentation• Unused memory within a unit of allocation• For example, a party of three at a table for four

Page 19: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

First Fit example. Text description next page.

Memory Allocation Policies:First-Fit Example

To allocate n bytes, use the first available free block such that the block size is larger than or equal to n.

500 bytes

1K bytes

2K bytes

To allocate 400 bytes, we use the first free block

2K bytes

500 bytes

Page 20: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Memory Allocation Policies: First-Fit

Advantages? Disadvantages?

Goal: Simplicity of Implementation

Requirements:• Free block list sorted by address• Allocation requires a search for a suitable position• De-allocation requires a check to see if the freed partition could be merged with any adjacent free partitions

Page 21: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Best Fit example. Text description on next slide.

Memory Allocation Policies:Best-Fit

To allocate n bytes, use the smallest available free block such that the block size is larger than or equal to n.

500 bytes

1K bytes

2K bytes

To allocate 400 bytes, we use the 3rd free block

1K bytes

2K bytes

Page 22: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Memory Allocation Policies: Best-Fit

Advantages? Disadvantages?

Goals: • To avoid fragmenting big free blocks• To minimize the size of resulting external fragments

Requirements:• Free block list sorted by size• Allocation requires a search for a suitable position• De-allocation requires a check to see if the freed partition could be merged with any adjacent free partitions

Page 23: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Worst-Fit Example. Text description next slide.

Memory Allocation Policies:Worst-Fit

To allocate n bytes, use the largest available free block such that the block size is larger than or equal to n.

500 bytes

1K bytes

2K bytes

To allocate 400 bytes, we use the 2nd free block

1K bytes

Page 24: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Memory Allocation Policies: Worst-Fit

Advantages? Disadvantages?

Goals: • To avoid having too many tiny fragments

Requirements:• Free block list sorted by size• Allocation is fast (get the largest)• De-allocation requires a check to see if the freed partition could be merged with any adjacent free partitions

Page 25: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

iClicker Question

First-fit, Best-fit, and Worst-fit all suffer from external fragmentation.

A. TrueB. False

Page 26: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Eliminating Fragmentation example. Text description next slide

Eliminating Fragmentation• Compaction– Relocate processes to coalesce holes

• Swapping– Preempt processes (roll them out

to disk) & reclaim their memory

0

MAX

ProgramP2

ProgramP3

ProgramP1

ProgramP4

Suspended

suspendedqueue

readyqueue

semaphore/condition queues

Waiting

RunningReady

?

Page 27: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Dynamic Relocation

Advantages Disadvantages

Page 28: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Summary• Processes must reside in memory in order to execute• Addresses need context to be interpreted, a logical/virtual

address can be very different from a physical address. • Processes generally use virtual addresses which are

translated into physical addresses just before accessing memory

• Relocation allows multiple processes to share main memory, but makes it expensive for processes to grow over time

• Swapping allows the total memory being used by all processes to exceed the amount of physical memory available

• C and C++ memory managers use these same principles

Page 29: 11 memory management 20200302 - cs.utexas.eduans/classes/cs439/...Mar 02, 2020  · memory •Relocation allows multiple processes to share main memory, but makes it expensive for

Announcements• Project 2 posted due Friday, 3/27– Stack check (argument passing) due Monday, 3/9– Difficult– Typing in the code is not the hard part---conceptualizing

what you should do and how IS– You MUST get this one working---Projects 3 and 4 require it– Design grades will be handled differently this time---more

information is in the project specification • Groups of 2 to 4– You MUST work in a group– Group registration deadline is Wednesday, 3/4

• Discussion sections this week! Problem Set 5 is posted.