+ All Categories
Home > Documents > CMSC421: Principles of Operating Systems

CMSC421: Principles of Operating Systems

Date post: 18-Feb-2016
Category:
Upload: zoltan
View: 17 times
Download: 0 times
Share this document with a friend
Description:
CMSC421: Principles of Operating Systems. Nilanjan Banerjee. Assistant Professor, University of Maryland Baltimore County [email protected] http://www.csee.umbc.edu/~nilanb/teaching/421/. Principles of Operating Systems - PowerPoint PPT Presentation
24
1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Acknowledgments: Some of the slides are adapted from Prof. Mark Corner and Prof. Emery Berger’s OS course at Umass Amherst Assistant Professor, University of Maryland Baltimore County [email protected] http://www.csee.umbc.edu/~nilanb/teaching/ 421/
Transcript
Page 1: CMSC421: Principles of Operating Systems

1

CMSC421: Principles of Operating Systems

Nilanjan Banerjee

Principles of Operating SystemsAcknowledgments: Some of the slides are adapted from Prof. Mark Corner

and Prof. Emery Berger’s OS course at Umass Amherst

Assistant Professor, University of MarylandBaltimore [email protected]

http://www.csee.umbc.edu/~nilanb/teaching/421/

Page 2: CMSC421: Principles of Operating Systems

2

Announcements

• Project 2 progress report due on Nov. 9th• Homework 3 will be out soon (hopefully before the

end of this week)

Page 3: CMSC421: Principles of Operating Systems

Quick Activity

• How much mem does a page table need?– 4kB pages, 32 bit address space– page table entry (PTE) uses 4 bytes

• 2^32/2^12*4=2^22 bytes=4MB– Is this a problem?– Isn’t this per process?– What about a 64 bit address space?

• Any ideas how to fix this?

Page 4: CMSC421: Principles of Operating Systems

4

A

B

AB

Locality

• Most programs obey 90/10 “rule”– 90% of time spent

accessing 10% of memory

• Exploit this rule:– Only keep “live”

parts of process in memory

Page 5: CMSC421: Principles of Operating Systems

Multi-Level Page Tables

• Use a multi-level page table

A A

A

Level 0 Table

Level 1 Table

Level 1 Table

Page 6: CMSC421: Principles of Operating Systems

Quick Activity

• How much mem does a page table need?– 4kB pages, 32 bit address space– Two level page table– 20bits = 10 bits each level– page table entry (PTE) uses 4 bytes– Only first page of program is valid

• 2^10*4+2^10*4=2^13 bytes=8kB

• Isn’t this slow?

Page 7: CMSC421: Principles of Operating Systems

7

Translation Lookaside Buffer (TLB)

• TLB: fast, fully associative memory– Caches page table entries– Stores page numbers (key) and frame (value) in

which they are stored• Assumption: locality of reference

– Locality in memory accesses =locality in address translation

• TLB sizes: 8 to 2048 entries– Powers of 2 simplifies translation

of virtual to physical addresses

Page 8: CMSC421: Principles of Operating Systems

Linear Address in Linux

Uses a three-level paging strategy that works well for 32-bit and 64-bit systems

Linear address broken into four parts:

Page 9: CMSC421: Principles of Operating Systems

Three-level Paging in Linux

Page 10: CMSC421: Principles of Operating Systems

Inverted Page Tables

Maintain one global page table for all processes

Page 11: CMSC421: Principles of Operating Systems

Swap Space

Page 12: CMSC421: Principles of Operating Systems

12

Page table entry and page faults

Page 13: CMSC421: Principles of Operating Systems

13

User-space memory allocation in the heap (malloc)

What happens int *arg = (int *)malloc(sizeof(int)) Programs ask memory manager

– to allocate/free objects (or multiple pages) Memory manager asks OS

– to allocate/free pages (or multiple pages)

User Program

Allocator(libc)

OSPages (mmap,brk)

malloc, free

Page 14: CMSC421: Principles of Operating Systems

14

User-space memory allocation in the heap (malloc)

kernel

Text region

stack

sbrk(0)

sbrk(100)brksbrk(100)brksbrk(100)brk

sbrk(0)

allocatedallocated

allocated

A demo?

Page 15: CMSC421: Principles of Operating Systems

15

User-space memory allocation in the heap (malloc)

kernel

Text region

stack

sbrk(0)

brk

freeallocated

allocated

free

Memory allocator

keeps track of the free blocks

Page 16: CMSC421: Principles of Operating Systems

16

Few Scenarios

kernel

Text region

stack

sbrk(0)

freefree

allocated malloc(200)Waste of resources

brkallocated

Page 17: CMSC421: Principles of Operating Systems

17

Coalescing

kernel

Text region

stack

sbrk(0)

free

allocated malloc(200)Waste of resources

brk

Page 18: CMSC421: Principles of Operating Systems

18

Jobs of a memory allocator like malloc

Manage heap space in virtual memory– Use sbrk to ask for more memory from OS

Coalescing Keep track of free blocks Merge them together when adjacent blocks

are free Malloc needs to be really fast

Decide which free block to allocate Lets take a look at the data structure that is

used for implementing malloc and free

Page 19: CMSC421: Principles of Operating Systems

19

Memory layout of the heap

http://gee.cs.oswego.edu/dl/html/malloc.html

this linked list can be ordered in different ways

Page 20: CMSC421: Principles of Operating Systems

20

Selecting the free block to allocate: Fragmentation

• Intuitively, fragmentation stems from “breaking” up heap into unusable spaces– More fragmentation = worse utilization

• External fragmentation– Wasted space outside allocated objects

• Internal fragmentation– Wasted space inside an object

Page 21: CMSC421: Principles of Operating Systems

21

Classical Algorithms

• First-fit– find first chunk of desired size

Page 22: CMSC421: Principles of Operating Systems

22

Classical Algorithms

• Best-fit– find chunk that fits best

• Minimizes wasted space

Page 23: CMSC421: Principles of Operating Systems

23

Classical Algorithms

• Worst-fit– find chunk that fits worst– name is a misnomer!– keeps large holes around

• Reclaim space: coalesce free adjacent objects into one big object

Page 24: CMSC421: Principles of Operating Systems

24

In-class Discussion


Recommended