Computer Systems: A Programmer's Perspective (3rd Edition)
Computer Systems: A Programmer's Perspective (3rd Edition)
3rd Edition
ISBN: 9780134092669
Author: Bryant, Randal E. Bryant, David R. O'Hallaron, David R., Randal E.; O'Hallaron, Bryant/O'hallaron
Publisher: PEARSON
bartleby

Concept explainers

bartleby

Videos

Textbook Question
Book Icon
Chapter 7, Problem 7.6HW

This problem concerns the m. o module from Figure 7.5 and the following version of the swap, c function that counts the number of times it has been called:

Chapter 7, Problem 7.6HW, This problem concerns the m. o module from Figure 7.5 and the following version of the swap, c , example  1

  For each symbol that is defined and referenced in swap. o, indicate if it will have a symbol table entry in the symbol section in module swap. o. If so, indicate the module that defines the symbol (swap .o or m. o), the symbol type (local, global, or extern), and the section (.text, .data, or bss) it occupies in that module.

Chapter 7, Problem 7.6HW, This problem concerns the m. o module from Figure 7.5 and the following version of the swap, c , example  2

Expert Solution & Answer
Check Mark
Program Plan Intro

Sections in relocatable object files:

There are many sections in a relocatable object file. They are given below:

  • “.text”:
    • It is the machine code of the compiled program.
  • “.rodata”:
    • This section is used to read only the data in the format such as
      • Strings in “printf” statements.
      • Jump tables for switch statements.
  • “.data”:
    • This section is used in the initialized “C” variables of global variable and static “C” variables.
    • Local “C” variables are initialized at execution time on the stack.
      • It does not show in either the “.data” or “.bss” sections.
  • “.bss”:
    • It is used in the uninitialized global and static “C” variables, along with any global or static variables that are assigned to zero.
  • “.symtab”:
    • It is a symbol table.
    • It contains the information about functions and global variables that are defined and referenced in the program.
  • “.rel.text”:
    • This section contains a list of locations in the “.text” section.
      • It will require to be changed once the linker merges this object file with others.
  • “.rel.data”:
    • This section contains relocation information for any global variables that are referenced or defined by the module.
  • “.debug”:
    • It is a symbol table for debugging
    • It contains entries for following
      • Definition of Local variables, global variables and typedefs variables and original “C” source file.
  • “.line”:
    • It is a mapping between line numbers in the given program
      • That is in original “C” source program and machine code instructions in the “.text” section.
  • “.strtab”:
    • It is a string table.
      • It contains symbol tables in the “.symtab” and “.debug” sections.
      • It is the table for section names in the section headers.

Explanation of Solution

For symbol “buf”:

  • “.symtab” entry:
    • It is occurs in the symbol table.
  • Symbol type:
    • It is an “extern” type. Because, the variable “buf” is declared in “extern” type which is present in “swap.c” file.
  • Module defined position:
    • The “buf” type is defined in “m.o” module.
    • Because, the symbol “buf” are defined in “m.c” file”. 
      • When converting source file “m.c” to a relocatable object file, the given file becomes “m.o”.
  • Section:
    • The symbol “buf” is defined in “.data” section. It is the initialized global variable of “m.c” file.

For symbol “bufp0”:

  • “.symtab” entry:
    • It is occurs in the symbol table.
  • Symbol type:
    • It is a “global” symbol type. Because, the variable “bufp0” is declared outside the function in “swap.c” file.
  • Module defined position:
    • The “bufp0” type is defined in “swap.o” module.
    • Because, the symbol “bufp0” are defined in “swap.c” file”. 
      • When converting source file “swap.c” to a relocatable object file, the given file becomes “swap.o”.
  • Section:
    • The symbol “bufp0” is defined in “.data” section. It is the initialized global variable of “swap.c” file

For symbol “bufp1”:

  • “.symtab” entry:
    • It is occurs in the symbol table.
  • Symbol type:
    • It is a “local” type. Because, the variable “bufp1” with “static” type in “swap.c” file.
  • Module defined position:
    • The “bufp1” type is defined in “swap.o” module.
    • Because, the symbol “bufp1” are defined in “swap.c” file”. 
      • When converting source file “swap.c” to a relocatable object file, the given file becomes “swap.o”.
  • Section:
    • The symbol “bufp1” is defined in “.bss” section. It is the uninitialized static “C” variable of “swap.c” file

For symbol “swap”:

  • “.symtab” entry:
    • It is occurs in the symbol table.
  • Symbol type:
    • It is a “global” type. Because, the symbol “swap” is used in the entire program.
  • Module defined position:
    • The “swap” type is defined in “swap.o” module.
    • Because, the symbol “swap” are defined in “swap.c” file”. 
      • When converting source file “swap.c” to a relocatable file, the given file becomes “swap.o”.
  • Section:
    • The symbol “swap” is present in “.text” section. It is the machine code of the compiled program.

For symbol “temp”:

  • “.symtab” entry:
    • The local variable “temp” does not a have a symbol table entry.
      • So, it does not have a symbol type, module defined position and section.

For symbol “incr”:

  • “.symtab” entry:
    • It is occurs in the symbol table.
  • Symbol type:
    • It is a “local” type. Because, the function “incr” uses return type of “static” in “swap.c” file.
  • Module defined position:
    • The “swap” type is defined in “swap.o” module.
    • Because, the symbol “swap” are defined in “swap.c” file”. 
      • When converting source file “swap.c” to a relocatable file, the given file becomes “swap.o”.
  • Section:
    • The symbol “swap” is present in “.text” section. It is the machine code of the compiled program.

For symbol “count”:

  • “.symtab” entry:
    • It is occurs in the symbol table.
  • Symbol type:
    • It is a “local” type. Because, the variable “count” declared in “static” type in the “swap.c” file.
  • Module defined position:
    • The “swap” type is defined in “swap.o” module.
    • Because, the symbol “swap” are defined in “swap.c” file”. 
      • When converting source file “swap.c” to a relocatable file, the given file becomes “swap.o”.
  • Section:
    • The symbol “swap” is present in “.bss” section. Here, the static variables “count” are initialized to “0” in “swap.c” file.

The final table is

Symbol.symtab entry?Symbol typeModule where definedSection
bufYesexternm.o.data
bufp0Yesglobalswap.o.data
bufp1Yeslocalswap.o.bss
swapYesglobalswap.o.text
tempNo---
incrYeslocalswap.o.text
countYeslocalswap.o.bss

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
(1 point) By dragging statements from the left column to the right column below, give a proof by induction of the following statement: an = = 9" - 1 is a solution to the recurrence relation an = 9an-18 with ao = : 0. The correct proof will use 8 of the statements below. Statements to choose from: Note that a₁ = 9a0 + 8. Now assume that P(n) is true for all n ≥ 0. Your Proof: Put chosen statements in order in this column and press the Submit Answers button. Let P(n) be the predicate, "a = 9″ – 1". απ = 90 − 1 = Note that Let P(n) be the predicate, "an 9" - 1 is a solution to the recurrence relation an = 9an-1 +8 with ao = 0." - Now assume that P(k + 1) is true. Thus P(k) is true for all k. Thus P(k+1) is true. Then ak+1 = 9ak +8, so P(k + 1) is true. = 1 − 1 = 0, as required. Then = 9k — 1. ak Now assume that P(k) is true for an arbitrary integer k ≥ 1. By the recurrence relation, we have ak+1 = ak+1 = = 9ak + 8 = 9(9k − 1) + 8 This simplifies to 9k+19+8 = 9k+1 − 1 Then 9k+1 − 1 = 9(9*…
Given the following request to an AI chatbot, which response is more accurate? (You should use Google to verify that the factual claims in each response are accurate.)   Prompt Is this true? The first recorded use of the phrase "when pigs fly" in print is in a 1616 play by Ben Jonson called "The Devil is an Ass," in which a character says, "When pigs fly, good-night!!" Response   Response A Response B Yes, that's true! The phrase "when pigs fly" indeed appears in Ben Jonson's 1616 play The Devil is an Ass and was said during the second act in a conversation between Fitzdottrel and Pug. The phrase was first used to express skepticism or disbelief, suggesting that something is as unlikely to happen as the fanciful idea of pigs flying. This usage is often cited as one of the earliest instances of the phrase in print.   The claim that the phrase "when pigs fly" was first recorded in Ben Jonson's 1616 play "The Devil is an Ass" is not accurate. There is no evidence from the…
This is for my Computer Organization & Assembly Language Class

Additional Engineering Textbook Solutions

Find more solutions based on key concepts
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
What is Abstract Data Types(ADT) in Data Structures ? | with Example; Author: Simple Snippets;https://www.youtube.com/watch?v=n0e27Cpc88E;License: Standard YouTube License, CC-BY