Preview

memory layout

Powerful Essays
Open Document
Open Document
3957 Words
Grammar
Grammar
Plagiarism
Plagiarism
Writing
Writing
Score
Score
memory layout
Memory Layout of C Programs
September 12, 2011
A typical memory representation of C program consists of following sections.
1. Text segment
2. Initialized data segment
3. Uninitialized data segment
4. Stack
5. Heap

A typical memory layout of a running process
1. Text Segment:
A text segment , also known as a code segment or simply as text, is one of the sections of a program in an object file or in memory, which contains executable instructions.
As a memory region, a text segment may be placed below the heap or stack in order to prevent heaps and stack overflows from overwriting it.
Usually, the text segment is sharable so that only a single copy needs to be in memory for frequently executed programs, such as text editors, the C compiler, the shells, and so on. Also, the text segment is often read-only, to prevent a program from accidentally modifying its instructions.
2. Initialized Data Segment:
Initialized data segment, usually called simply the Data Segment. A data segment is a portion of virtual address space of a program, which contains the global variables and static variables that are initialized by the programmer.
Note that, data segment is not read-only, since the values of the variables can be altered at run time.
This segment can be further classified into initialized read-only area and initialized read-write area.
For instance the global string defined by char s[] = “hello world” in C and a C statement like int debug=1 outside the main (i.e. global) would be stored in initialized read-write area. And a global C statement like const char* string = “hello world” makes the string literal “hello world” to be stored in initialized read-only area and the character pointer variable string in initialized read-write area.
Ex: static int i = 10 will be stored in data segment and global int i = 10 will also be stored in data segment
3. Uninitialized Data Segment:
Uninitialized data segment, often called the “bss” segment, named after an

You May Also Find These Documents Helpful

  • Good Essays

    To explain this, we should already know that in real life scenarios, stack increases to lower memory addresses, whenever program calls some function, the address of function call instruction is saved in stack as a return for the function. When the function executes, it allocates local variables, including buffers to stack and they are given a lower address than the return address. So, in this scenario the return address is a certain level above the base address for buffers and if the buffer is overflowing, then it is most likely that an attacker can change return address as well. If the return address is changed to some random value, then it will cause segmentation fault, but if the return address is changed to a certain address where some executable code is present, then that may complete attackers intended tasks with the application.…

    • 335 Words
    • 2 Pages
    Good Essays
  • Satisfactory Essays

    SD1230 Lab 1

    • 239 Words
    • 2 Pages

    1. Why is virtual memory addresses used for applications? – So it can have its own address space on the memory.…

    • 239 Words
    • 2 Pages
    Satisfactory Essays
  • Satisfactory Essays

    Cis 207 Week 2/3 Quiz

    • 383 Words
    • 2 Pages

    Registers are used to store data in RAM, the control unit, and the arithmetic logic unit. True…

    • 383 Words
    • 2 Pages
    Satisfactory Essays
  • Good Essays

    a. The CPU tells the RAM which address holds the data that the CPU wants to read.…

    • 856 Words
    • 4 Pages
    Good Essays
  • Good Essays

    Unit 16 Ao1

    • 529 Words
    • 3 Pages

    Programs need to store data at some time during the execution of processes. Data is held in variables which are names containers for each piece of data. Each variable must be given a name so it can be referred to again and again throughout the program. It should be something that is recognisable because for example variable 1 would be soon forgotten in a substantial piece of code. Variable names cannot be the same as code words such as print or run.…

    • 529 Words
    • 3 Pages
    Good Essays
  • Satisfactory Essays

    It 240 Appendix F

    • 301 Words
    • 2 Pages

    |RAM |RAM is short for Random Access Memory and is a type of memory that is accessed |…

    • 301 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

    The operating systems job is managing the memory. The operating system is in charge of bringing this process into main memory (Stallings, 2012). However the processor must deal with references within the program. Branch instructions include an address to reference the order to be executed next. Data reference instructions include the address of the byte or word of data referenced. The processor hardware and operating system software must be able to translate the memory references found in the code of the program into actual physical memory addresses, reflecting the current location of the program in main memory. (Stallings, 2012).…

    • 573 Words
    • 3 Pages
    Good Essays
  • Good Essays

    The place in the central processing unit where data and programs are temporarily stored during processing is called the…

    • 663 Words
    • 3 Pages
    Good Essays
  • Satisfactory Essays

    Internal Memory – The interior memory of a computer is called RAM. It is mainly used to hold programmes and pages that are open or any documents and graphics that the user is viewing. This is useful for creating graphics images because once the programme or document is in the RAM then it works at a higher speed which is good because users are able to complete their work at a faster speed and don’t have to experience any problems.…

    • 732 Words
    • 3 Pages
    Satisfactory Essays
  • Better Essays

    Week 5 Pos 355

    • 2010 Words
    • 9 Pages

    Memory management is an important part of an operating. The UNIX/Linux OS use numerous intricate algorithms for memory management which will permit the system to…

    • 2010 Words
    • 9 Pages
    Better Essays
  • Satisfactory Essays

    It250 Exam Review

    • 856 Words
    • 4 Pages

    5. (Page 34)Where are programs and data temporarily stored when there is not enough RAM to hold all the information it is processing? Swap file…

    • 856 Words
    • 4 Pages
    Satisfactory Essays
  • Good Essays

    h) Data Type: A detailed coding scheme recognized by system software, such as DBMS, for representing organizational data.…

    • 455 Words
    • 2 Pages
    Good Essays
  • Powerful Essays

    Located in the internal memory is where the list of instructions (computer programs) is stored on a hard drive. The hard drive is a semi-permanent storage area of a computer. There computer programming languages can be added, deleted or modified by the user to perform a variety of operations and task.…

    • 1318 Words
    • 6 Pages
    Powerful Essays
  • Good Essays

    Initially the buffer is empty. As new data values come in they get added to the bottom of the list (most recent data). If your program reads a value from the buffer, it starts at the top of the list (oldest data). Once you read a byte of data,…

    • 2752 Words
    • 12 Pages
    Good Essays

Related Topics