EBK COMPUTER SYSTEMS
EBK COMPUTER SYSTEMS
3rd Edition
ISBN: 8220101459107
Author: O'HALLARON
Publisher: YUZU
Expert Solution & Answer
Book Icon
Chapter 9.9, Problem 9.9PP

Explanation of Solution

Implementation of “place()” function:

In the “Section 9.9.12 (mm.c)”, add the below “place()” function to allocate the blocks. The function “place()” is as follows:

// Definition of place() function to allocate the requested block

static void place(void *bp, size_t asize)

{

// Call GET_SIZE() function to assign csize

size_t csize = GET_SIZE(HDRP(bp));

// Check the size

if ((csize - asize) >= (2 * DSIZE)) {

// Call PUT function with HDRP and PACK asize, 1

PUT(HDRP(bp), PACK(asize, 1));

// Call PUT function with FTRP and PACK asize, 1

PUT(FTRP(bp), PACK(asize, 1));

// Call NEXT_BLKP() function to assign bp

bp = NEXT_BLKP(bp);

// Call PUT function with HDRP and computed PACK size, 0

PUT(HDRP(bp), PACK(csize - asize, 0));

// Call PUT function with FTRP and computed PACK size, 0

PUT(FTRP(bp), PACK(csize - asize, 0));

}

// Otherwise

else {

// Call PUT function with HDRP and PACK csize, 1

PUT(HDRP(bp), PACK(csize, 1));

// Call PUT function with FTRP and PACK csize, 1

PUT(FTRP(bp), PACK(csize, 1));

}

}

Explanation:

The “place()” function is to allocate the requested block.

  • A pointer “bp” represents which place the block is allocated.
  • Call “GET_SIZE()” function to assign “csize”.
  • “if” statement to check the size to fit the block.
    • The function “HDRP()” and “FTRP()” represents the place of the pointer.
    • Compute the size by calling “PACK()” function.
    • Place the block if the condition is satisfied using “PUT()” function.

Filename: main.c

// Include libraries

#include <stdio.h>

#include <stdlib.h>

#include <assert.h>

// Include required header files

#include "csapp.h"

#include "memlib.h"

#include "mm.h"

#include "memlib.c"

#include "mm...

Blurred answer
Students have asked these similar questions
Consider the data path below for a single cycle 32-bits MIPS processor Assume that we are executing the following instruction lw St1, 48($10) What is the value of the element pointed by arrow number 1 by in hexadecimal? Note that the PC and the content of registers $10 and $t1 are found in bottom left of the figure below Data Memory Select one a. Ox00001724 Ob. 0x00002DE4 Oc 0x000016F4 Od 0x00001720 Oe. 0x00002DEO Clear my choice Rea " Address Content 0x000016EC 0x0000ABOD 0x000016F0 0x00A01245 0x000016F4 0x00001A42 0x000171C 0x0008124F 0x0001720 0x00021345 0x0001724 0x000067AB ALU Ox0001734 0x0000AB35 0x0001738 0x0000FA72 0x0000ABOC ALS 0x000174C Register File and PC $to = 0x000016FO $t1 = 0x000016F4 PC = 0x0000148A0 (Before executing LW)
Consider the data path below for a single cycle 32-bits MIPS processor Assume that we are executing the following instruction SLL S10, $3,4 What is the value of the element pointed by arrow number 1 by in hexadecimal or binary? Note that the PC and the content of registers are found in bottom left of the figure below Address Select one Oa. Ox00000000 Ob. Ob 10011' Oc 0x0000AF00 ® d. 06/01000 Oe. None of the options Of Ox000000BA LEY Content 0x000016EC Dx0000ABOD Data Memory 0x000016F0 0x00A01245 0x000016F4 0x00001A42 Ox000171C 0x0008124 0x0001720 0x00021345 0x0001724 0x000067AB 0x0001734 0x0001738 0x0000A835 0x0000FA72 0x000174C 0x0000AC $63 0x000000BA PC = 0x000FAC04 Register File and PC (Before executing SLL)
Consider the data path below for a single cycle 32-bits MIPS processor Assume that we are executing the following instruction lw $10, 48(S1) What is the value of the element pointed by arrow number 1 by in hexadecimal? Note that the PC and the content of registers $10 and $t1 are found in bottom left of the figure below Select one a. None of the options Ob 0x00014C64 Oc 0x00014CC4 Od 0x00014BA4 Oe. Ox14C1C Of 0x00014C60 Og 0x00014CCO D Data Memory Address Content 0x000016EC 0x0000ABOD 0x000016F0 0x00A01245 0x000016F4 0x00001A42 0x000171C 0x0008124F 0x0001720 0x00021345 0x0001724 0x000067AB 0x0001734 0x0000AB35 0x0001738 0x0000FA72 0x000174C 0x0000ABOC ALU Register File and PC Sto Ox000016F0 St1 = 0x000016F4 PC = 0x00014BA0 (Before executing LW).
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY