Memory Mapped Files - PowerPoint PPT Presentation

1 / 8
About This Presentation
Title:

Memory Mapped Files

Description:

Memory Mapped Files. Using the Linux mechanism for direct ... munmap()' deletes the memory mapping. Example: look at dump.cpp' on website. Four easy steps ... – PowerPoint PPT presentation

Number of Views:868
Avg rating:3.0/5.0
Slides: 9
Provided by: professora5
Category:
Tags: deletes | files | mapped | memory

less

Transcript and Presenter's Notes

Title: Memory Mapped Files


1
Memory Mapped Files
  • Using the Linux mechanism for direct access to
    device data

2
Typical file access senario
  • Use open(), lseek(), read(), write(), close()
  • Each involves two privilege-transitions
  • At most 4096 bytes transferred each time
  • Inefficient for non-sequential data access

3
Alternative use mmap()
  • Take advantage of the paging mechanism
  • Associate virtual addresses with the data
  • Similar to swapping or page-cacheing
  • Simple standard C programming API
  • mmap() creates the memory mapping
  • munmap() deletes the memory mapping
  • Example look at dump.cpp on website

4
Four easy steps
  • 1) open the file
  • 2) map the file
  • 3) use the file
  • 4) unmap the file and close the file

5
Device memory mapping
  • Recall our vram.c character driver
  • Allowed users to access display memory
  • But lacks efficiency for serious graphics
  • We implement driver mmap() method

6
mmap() driver-method
  • Ideas from LDD textbook Chapter 13
  • But also required lots of experimentation
  • Four steps in the mmap() method
  • 1) compute maps starting-point and length
  • 2) check cannot map past end-of-memory
  • 3) mark mapped area as non-swappable
  • 4) request kernel to set up the page-tables

7
Information from vm_area_struct
  • vm_start is starting address in user-space
  • vm_end is ending address in user-space
  • vm_pgoff is page-offset in device memory
  • vm_page_prot is page-protection bitmap
  • vm_flags is bitmap of requested attributes
  • EAGAIN error-code tells kernel try again

8
Comparing execution-times
  • We ccan use our tsc.c device-driver
  • Step 1 read and save timestamp counter
  • Step 2 perform our drawing operations
  • Step 3 read and save timestamp counter
  • Step 4 subtract timestamp counter values
  • Step 5 report the number of CPU cycles
Write a Comment
User Comments (0)
About PowerShow.com