Chapter 3.7 Memory and I/O Systems. 2 Memory Management Only applies to languages with explicit memory management (C or C++) Memory problems are one of.

Slides:



Advertisements
Similar presentations
Chapter 12: File System Implementation
Advertisements

Paging: Design Issues. Readings r Silbershatz et al: ,
Lecture 10: Heap Management CS 540 GMU Spring 2009.
Allocation Methods - Contiguous
File Management Chapter 12. File Management File management system is considered part of the operating system Input to applications is by means of a file.
Chapter 10: File-System Interface
1 Chapter 11: File-System Interface  File Concept  Access Methods  Directory Structure  File System Mounting  File Sharing  Protection  Chapter.
Chapter 11: File System Implementation
File System Implementation
File System Implementation
File System Implementation CSCI 444/544 Operating Systems Fall 2008.
Multiprocessing Memory Management
Chapter 12: File System Implementation
Chapter 3.5 Memory and I/O Systems. Memory Management 2 Only applies to languages with explicit memory management (C, C++) Memory problems are one of.
1 Process Description and Control Chapter 3 = Why process? = What is a process? = How to represent processes? = How to control processes?
File System Implementation
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 9 – Real Memory Organization and Management Outline 9.1 Introduction 9.2Memory Organization.
CS364 CH08 Operating System Support TECH Computer Science Operating System Overview Scheduling Memory Management Pentium II and PowerPC Memory Management.
Layers and Views of a Computer System Operating System Services Program creation Program execution Access to I/O devices Controlled access to files System.
Memory Management ◦ Operating Systems ◦ CS550. Paging and Segmentation  Non-contiguous memory allocation  Fragmentation is a serious problem with contiguous.
Chapter Languages, Programming and Architecture.
Tutorial 7 Memory Management presented by: Antonio Maiorano Paul Di Marco.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 8: Main Memory.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 11: File System Implementation.
Chapter 3.5 Memory and I/O Systems. 2 Memory Management Memory problems are one of the leading causes of bugs in programs (60-80%) MUCH worse in languages.
1 CMSC421: Principles of Operating Systems Nilanjan Banerjee Principles of Operating Systems Acknowledgments: Some of the slides are adapted from Prof.
File Systems CSCI What is a file? A file is information that is stored on disks or other external media.
Chapter 11: File System Implementation Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 File-System Structure.
File Management Chapter 12. File Management File management system is considered part of the operating system Input to applications is by means of a file.
1 File Management Chapter File Management n File management system consists of system utility programs that run as privileged applications n Concerned.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 12: File System Implementation File System Structure File System Implementation.
File System Implementation
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 11: File System Implementation.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 9: Virtual Memory.
12.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 12: File System Implementation Chapter 12: File System Implementation.
Chapter 11: File System Implementation Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 11: File System Implementation Chapter.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 12: File System Implementation File System Structure File System Implementation.
CE Operating Systems Lecture 17 File systems – interface and implementation.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition File System Implementation.
Review °Apply Principle of Locality Recursively °Manage memory to disk? Treat as cache Included protection as bonus, now critical Use Page Table of mappings.
I MPLEMENTING FILES. Contiguous Allocation:  The simplest allocation scheme is to store each file as a contiguous run of disk blocks (a 50-KB file would.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 12: File System Implementation File System Structure File System Implementation.
C++ 程序语言设计 Chapter 12: Dynamic Object Creation. Outline  Object creation process  Overloading new & delete.
Lecture 7 Page 1 CS 111 Summer 2013 Another Option Fixed partition allocations result in internal fragmentation – Processes don’t use all of the fixed.
FILE SYSTEM IMPLEMENTATION 1. 2 File-System Structure File structure Logical storage unit Collection of related information File system resides on secondary.
Lecture 10 Page 1 CS 111 Online Memory Management CS 111 On-Line MS Program Operating Systems Peter Reiher.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 12: File System Implementation.
File-System Management
File System Implementation
Chapter 2: The Linux System Part 4
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
Operating Systems (CS 340 D)
Chapter 9: Virtual Memory
Chapter 11: File System Implementation
Chapter 9 – Real Memory Organization and Management
William Stallings Computer Organization and Architecture
CSI 400/500 Operating Systems Spring 2009
Operating Systems (CS 340 D)
Chapter 8: Main Memory.
File Sharing Sharing of files on multi-user systems is desirable
Page Replacement.
Chapter 11: File System Implementation
Memory Allocation CS 217.
Lecture Topics: 11/1 General Operating System Concepts Processes
Chapter 14: File-System Implementation
CS510 Operating System Foundations
Chapter 11: File System Implementation
File System Implementation
COMP755 Advanced Operating Systems
Presentation transcript:

Chapter 3.7 Memory and I/O Systems

2 Memory Management Only applies to languages with explicit memory management (C or C++) Memory problems are one of the leading causes of bugs in programs

3 Memory Management We have three goals when working with memory Safety Knowledge Control

4 Memory Management Memory fragmentation Free physical memory is only available in small sections Can prevent an allocation from completing successfully even if there's plenty of free memory Virtual addressing will greatly help with fragmentation problems

5 Memory Management Virtual addressing

6 Memory Management Static memory allocation If all memory is statically allocated there will be very few problems Leaks Fragmentation Running out of memory Very restrictive Lots of wasted memory Old games used to be done this way

7 Memory Management Dynamic allocation Much more flexible than static allocations Lots of potential problems Need to override global new and delete to take control over allocations

8 Memory Management Memory manager Heaps are collections of memory allocations Override class-specific operator new and delete to assign classes to heaps We can add some simple error-checking schemes to prevent memory overrun problems

9 Memory Management Memory leaks A memory leak is a memory allocation that is no longer necessary and was not released by the program Memory leaks can cause the game to use up resources and run out of memory To find all memory leaks, we look for all the allocations that occurred between two particular points in time

10 Memory Management Memory pools Memory pools are contiguous blocks of memory used to allocate objects Allocations are extremely fast There is no fragmentation They will usually have some unused space We can allocate objects from specific classes with a simple macro

11 Memory Management Memory pools

12 File I/O Sometimes full file I/O not available on all platforms Different ways of accessing different devices Memory cards, network, etc Usually have no control over physical disk allocation Which can lead to long load times

13 File I/O Unified file system Platform independent Provide same interface to different types of media Based around FileSystem class

14 File I/O File system Uses concept of streams Stream can be the source of data Possible sources File, memory, network Or it can be a layer that adds some properties Possible layers Buffering, compression, range, etc

15 File I/O File system

16 Game Resources A game resource (or asset) is anything that gets loaded that could be shared by several parts of the game A texture, an animation, a sound, etc We want to load and share resources easily There will be many different types of resources in a game

17 Game Resources Resource manager Uses registering object factory pattern Can register different types of resources All resource creation goes through the resource manager Any requests for existing resources don't load it again

18 Game Resources Resource lifetime If resources are shared, how do we know when we can destroy them? All at once At the end of the level Explicit lifetime management Reference counting

19 Game Resources Resources and instances Resource is the part of the asset that can be shared among all parts of the game Instance is the unique data that each part of the game needs to keep

20 Serialization Every game needs to save and restore some game state Even for check point saves Level editing and creation could be implemented as a saved game

21 Serialization Saving ISerializable interface for Read and Write operations Each class implements the Write() function Saving pointers is a problem They won't be the same when we load Save raw pointers to other objects Translate them later

22 Serialization Loading Create object types through an object factory Read() function takes care of loading the data from the stream Pointers are loaded into a translation table Second pass fixes up all the pointers