CMPT 300: Final Review Chapters 8 12 - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

CMPT 300: Final Review Chapters 8 12

Description:

... usually held in high memory. Typically, the two partitions are managed ... directory structure, number of blocks, location of free blocks, boot information, ... – PowerPoint PPT presentation

Number of Views:21
Avg rating:3.0/5.0
Slides: 27
Provided by: mohamedh
Category:

less

Transcript and Presenter's Notes

Title: CMPT 300: Final Review Chapters 8 12


1
CMPT 300 Final Review Chapters 8 12
2
Memory Management Ch. 8, 9
  • Address spaces
  • Logical (virtual) generated by the CPU
  • Physical seen by the memory unit
  • User program deals with logical addresses never
    sees physical addresses
  • Mapping from logical to physical addresses
  • Static done at compile-time
  • Dynamic done at load or execution time

3
Memory Allocation
  • Memory is usually divided into two partitions
    for
  • Kernel usually held in low memory
  • User processes usually held in high memory
  • Typically, the two partitions are managed
    differently
  • Memory allocation
  • Contiguous
  • First-, Best-, Worst-fit
  • Fragmentation external and internal
  • Paging, segmentation, virtual memory

4
Paging
5
Segmentation
1
2
3
4
user space
physical memory space
6
Segmentation Hardware
7
Paging and Segmentation
  • Paging issues
  • Page size
  • Internal fragmentation and page table size
  • Page table (one table for each process)
  • Access time use cache (TLB)
  • Size use two- or three-levels page tables
    use hashed or inverted page tables for gt 32 bits
    architectures
  • Segmentation variable size
  • External fragmentation
  • Facilitates sharing of code and data (share the
    whole segment)
  • Combined Segmentation paging
  • Example Intel Pentium

8
Virtual Memory
  • Logical address space can be much larger than
    physical address space
  • Only the needed parts of the program are brought
    to memory for execution
  • Allows address spaces to be shared by several
    processes
  • Allows for more efficient process creation
  • Virtual memory can be implemented via
  • Demand paging
  • Demand segmentation

9
Virtual Memory and Page Fault
10
Page Replacement
  • When we need to bring a page from disk and there
    is no free frame
  • Find a victim page to evict from memory
  • Objective minimize number of page faults (they
    are very costly)
  • Replacement algorithms
  • FIFO, OPT, LRU, second-chance,

11
Thrashing
  • Thrashing ? a process is busy swapping pages in
    and out more than executing (because OS allocated
    too few frames to it)

12
Locality Model
  • As a process executes, it moves from locality to
    locality, where a locality is a set of pages that
    are actively used together
  • Locality could be function, module, segment of
    code,
  • Locality model helps us to estimate the working
    set of a process
  • Working set pages that are actively being used
    (within a window)

13
Allocating Kernel Memory
  • Treated differently from user memory because
  • Kernel requests memory for structures of varying
    sizes
  • Process descriptors (PCB), semaphores, file
    descriptors,
  • Some of them are less than a page
  • Some kernel memory needs to be contiguous
  • some hardware devices interact directly with
    physical memory without using virtual memory
  • Virtual memory may just be too expensive for the
    kernel (cannot afford a page fault)

14
Kernel Memory Buddy System
15
Kernel Memory Slab Allocation
16
File Systems Ch. 10, 11, 12
Application Programs
Logical File System
  • Interface file and directory structure
  • Maintains pointers to logical block addresses
  • Implementation block allocation,
  • Maps logical into physical addresses

File-organization Module
Device Drivers
  • Implementation device-specific instructions
  • Writes specific bit patterns to device controller

Storage Devices
17
File System Interface
  • Files
  • The smallest storage unit from the users
    perspective
  • A collection of blocks on the disk from OS
    perspective
  • Directory structure
  • Tree-structured with links (general graphs)
  • Each file has an entry in the directory

18
File System Implementation
  • To implement a file system, we need
  • On-disk structures, e.g.,
  • directory structure, number of blocks, location
    of free blocks, boot information,
  • (In addition to data blocks, of course)
  • In-memory structures to
  • improve performance (caching)
  • manage file system

19
On-disk Structures
Free block
Boot block
Superblock
Directory structure
File control block
Data block
20
Opening and Reading from a File
21
Block Allocation
  • Allocate free blocks to files to achieve
    efficient disk space utilization, and fast file
    access
  • Three common allocation methods
  • Contiguous
  • Linked
  • Indexed
  • OS keeps track of free blocks using
  • Bitmaps
  • Linked lists

22
Combined Scheme UNIX inode
23
Disk Structure and Scheduling
  • Disk structure
  • cylinders, tracks, sectors, logical blocks
  • Disk operation
  • Move the head to desired track (seek time)
  • Wait for desired sector to rotate under the head
    (rotational latency time)
  • Transfer the block to a local buffer, then to
    main memory (transfer time)
  • Disk scheduling
  • To minimize seek time (head movements)
  • Algorithms FCFC, SSTF, SCAN, LOOK

24
Warp Up What We Have Covered
  • How to manage resources in a single computer

25
Warp Up What We Have NOT Covered
  • How to manage resources distributed over multiple
    computers
  • CMPT 371 Computer Networks
  • Protocols and algorithms to make computers talk
    to each other
  • CMPT 401 Operating Systems II
  • Distributed file systems, distributed
    synchronization, inter-process communications,
    consistency and reliability, security
  • Special-purpose operating systems, e.g.,
  • Real-time OS
  • OS on small devices (PDAs, sensors,)

26
That is it with CMPT 300!
  • Good Luck on Your Final
Write a Comment
User Comments (0)
About PowerShow.com