Preview

Cis Memory Management

Powerful Essays
Open Document
Open Document
1581 Words
Grammar
Grammar
Plagiarism
Plagiarism
Writing
Writing
Score
Score
Cis Memory Management
CIS:328

Abstract
The purpose of this paper is to show how memory is used in executing programs and its critical support for applications. C++ is a general purpose programming language that runs programs using memory management. Two operating system environments are commonly used in compiling, building and executing C++ applications. These are the windows and UNIX / Linux (or some UNIX / Linux derivative) operating system. In this paper we will explore the implementation of memory management, processes and threads.
Memory Management

What is a Memory Model?
A memory model allows a compiler to perform many important optimizations. Even simple compiler optimizations like loop fusion move statements in the program can influence the order of read and write operations of potentially shared variables. Changes in the ordering of reads and writes can cause race conditions. Without a memory model, a compiler is not allowed to apply such optimizations to multi-threaded programs in general, or only in special cases.
Modern programming languages like Java therefore implement a memory model. The memory model specifies synchronization barriers that are established via special, well-defined synchronization operations such as acquiring a lock by entering a synchronized block or method. The memory model stipulates that changes to the values of shared variables only need to be made visible to other threads when such a synchronization barrier is reached. Moreover, the entire notion of a race condition is entirely defined over the order of operations with respect to these memory barriers.
These semantics then give optimizing compilers a higher degree of freedom when applying optimizations: the compiler needs to make sure only that the values of (potentially shared) variables at synchronization barriers are guaranteed to be the same in both the optimized and un-optimized code. In particular, reordering statements in a block of code that contains no synchronization barrier is

You May Also Find These Documents Helpful

  • Good Essays

    Some OS routines directly support application programs as they run and thus must be resident. Other transient routines are stored on disk and read into memory only when needed. Fixed-length partitions can also be used to allocate the set amount of memory that a particular program needs to run. Under dynamic memory management, the transient area is treated as a pool of unstructured free space. When the system decides to load a particular program, a region of memory just sufficient to hold the program is allocated from the pool. Using segmentation, programs are divided into independently addressed segments and stored in noncontiguous memory. Paging breaks a program into fixed-length pages.…

    • 7085 Words
    • 29 Pages
    Good Essays
  • Satisfactory Essays

    The second category of fault changes individual instructions in the text segment. These faults are intended to approximate the assembly-level manifestation of real C-level programming…

    • 285 Words
    • 2 Pages
    Satisfactory Essays
  • Satisfactory Essays

    Nt1310 Unit 1 Study Guide

    • 378 Words
    • 2 Pages

    Multiple threads can interfere with each other when sharing hardware resources such as caches or translation lookaside buffers (TLBs). As a result, execution times of a single thread are not improved but can be degraded, even when only one thread is executing, due to lower frequencies or additional pipeline stages that are necessary to accommodate thread-switching hardware.…

    • 378 Words
    • 2 Pages
    Satisfactory Essays
  • Satisfactory Essays

    POS355 Week 1 Individual

    • 574 Words
    • 2 Pages

    While in the hardware, memory management includes elements that store data such as random access memory chips, and memory caches. In the operating system, memory management involves the distribution of precise memory blocks to programs as the user requests adjustments. While at the application and program level, memory management ensures the availability of sufficient memory for the objects and data structures at all times for each program that is running.…

    • 574 Words
    • 2 Pages
    Satisfactory Essays
  • Good Essays

    One of the key functions of an operating system is the process management. Linux OS system is very dynamic with constantly changing computing needs. These needs tend to be centered on the process. Processes can be either long or short lived, so managing these processes is very important. Linux incorporates a very flexible design which contains a separate unit to take on the process management task. In a Linux operating system processes are created and represented by an allocated task_struct.…

    • 749 Words
    • 3 Pages
    Good Essays
  • Good Essays

    Memory management is an important characteristic of an operating system. Main memory is divided into two parts one for resident programs, and the other for the program currently in use. The user part must be subdivided to accommodate multiple processes (Stallings, 2012). When a few processes are in the memory then much of the time all of the processes will have to wait for input /output and the processor will be idle. According to Stallings (2012),. The requirements that memory management is supposed to satisfy are Relocation, Protection, Sharing, Logical organization, and Physical…

    • 573 Words
    • 3 Pages
    Good Essays
  • Good Essays

    Comp 220

    • 1463 Words
    • 6 Pages

    Pointers also have the requirement that the pointer type must be of the same data type as the variable, or the data that it points to or holds the address of. The power of pointers also hints at the potential complexity of their use, which is why this lab is focused almost entirely on several different aspects and uses of pointers. The lab also introduces pointer arrays and pointers to pointers.…

    • 1463 Words
    • 6 Pages
    Good Essays
  • Good Essays

    Nt1310 Unit 3 Os

    • 1341 Words
    • 6 Pages

    +• Synchronization: With multiple active processes having potential access to shared address spaces or shared I/O resources, care must be taken to provide effective synchronization. Synchronization is a facility that enforces mutual exclusion and event…

    • 1341 Words
    • 6 Pages
    Good Essays
  • Good Essays

    compiler doesn’t know that b’s memory is freed before the code is actually running. so…

    • 775 Words
    • 2 Pages
    Good Essays
  • Better Essays

    IT 600 Module One Lecture

    • 1256 Words
    • 5 Pages

    that every process gets the memory it needs, and that no application can access memory in…

    • 1256 Words
    • 5 Pages
    Better Essays
  • Good Essays

    For any operating system to function properly, one of the vital tasks it must be able to do is manage memory. When a program runs on a computer, it first must be loaded into memory before it can execute. There are five different requirements memory management must satisfy in order to execute the program so it runs without errors or corruption. These requirements are relocation, protection, sharing, logical organization, and physical organization.…

    • 730 Words
    • 3 Pages
    Good Essays
  • Powerful Essays

    This “Case Study” cover information on computer systems with multicore processors which can increase performance by running applications of various types (models) and methods. This paper focuses on applications using distributed architecture, cache contention, prefetching hardware and more. Current and future contentions are discussed. Managing contention for shared resources on multicore processors are discussed in this assignment. Explanations given for causes of contention. Discussion of the author’s testing of applications, building of prototypes and more. The discussion of architecture software and hardware as well as methods to avoid and other alternatives and solutions (Fedorova, Blagodurov & Zhuravlev, 2006; 2009).…

    • 1554 Words
    • 7 Pages
    Powerful Essays
  • Good Essays

    1. Consider a concurrent program with two processes, p and q, defines as follows. A, B, C, D and E are arbitrary atomic ( indivisible ) statements. Assume that the main program ( not shown ) does a parbegin of the two processes.…

    • 810 Words
    • 4 Pages
    Good Essays
  • Powerful Essays

    Osnotes

    • 18736 Words
    • 75 Pages

    SYLLABUS CS1253 – OPERATING SYSTEMS UNIT I PROCESSES AND THREADS Introduction to operating systems – Review of computer organization – Operating system structures – System calls – System programs – System structure – Virtual machines – Processes – Process concept – Process scheduling – Operations on processes – Cooperating processes – Inter process communication – Communication in client – Server systems – Case study – IPC in linux – Threads – Multi-threading models – Threading issues – Case study – Pthreads library. UNIT II PROCESS SCHEDULING AND SYNCHRONIZATION CPU scheduling – Scheduling criteria – Scheduling algorithms – Multiple – Processor scheduling – Real time scheduling – Algorithm evaluation – Case study – Process scheduling in Linux – Process synchronization – The criticalsection problem – Synchronization hardware – Semaphores – Classic problems of synchronization – Critical regions – Monitors – Deadlock – System model – Deadlock characterization – Methods for handling deadlocks – Deadlock prevention – Deadlock avoidance – Deadlock detection – Recovery from deadlock. UNIT III STORAGE MANAGEMENT Memory management – Background – Swapping – Contiguous memory allocation – Paging – Segmentation – Segmentation with paging – Virtual memory – Background – Demand paging – Process creation – Page replacement – Allocation of frames – Thrashing – Case study – Memory management in linux . UNIT IV FILE SYSTEMS File system interface – File concept – Access methods – Directory structure – Filesystem mounting – Protection – File system implementation – Directory implementation – Allocation methods – Free space management – Efficiency and performance – Recovery – Log-structured file systems – Case studies – File system in linux – File system in Windows XP. UNIT V I/O SYSTEMS I/O systems – I/O hardware – Application I/O…

    • 18736 Words
    • 75 Pages
    Powerful Essays
  • Powerful Essays

    The C++ programming language was introduced by Bjarne Stroustrup of the AT&T laboratories in 1985 as an extension of C, with additional features borrowed from the esoteric language Simula. Since then, C++ has grown rapidly in response to the practical need for a programming language that is able to efficiently handle composite and diverse data types. The language implementation is pivoted on the ingenious concept of object oriented programming (OOP). Today, C++ dominates the commercial market and is favored among system programmers and…

    • 4389 Words
    • 18 Pages
    Powerful Essays