
Concept explainers
Explanation of Solution
Perform Next-fit search instead of First-fit search:
In the “Section 9.9.12 (mm.c)”, remove the lines that starts from “/* $begin mmfirstfit */” and ends with “return NULL; /* No fit */”.
Add the following highlighted code to the “Section 9.9.12 (mm.c)”. The modified “mm.c” file is as follows:
/* Global variables */
static char *heap_listp = 0; /* Pointer to first block */
// Rover for Next fit
static char *rover;
/* Function prototypes for internal helper routines */
static void *extend_heap(size_t words);
heap_listp += (2 * WSIZE);
/* $end mminit */
// Assign heap_listp to rover
rover = heap_listp;
/* $begin mminit */
/* Extend the empty heap with a free block of CHUNKSIZE bytes */
bp = PREV_BLKP(bp);
}
/* $end mmfree */
// If condition to check the rover is not representing the free block
if ((rover > (char *)bp) && (rover < NEXT_BLKP(bp)))
// Assign bp to rover
rover = bp;
/* $begin mmfree */
return bp;
}
{
/* Next fit search instead of first fit search*/
// Assign rover to the character pointer oldrover
char *oldrover = rover;
/* Finding next fit using for loop */
// For loop to search from rover to the end of the list
for (; GET_SIZE(HDRP(rover)) > 0; rover = NEXT_BLKP(rover))
// If condition to check allocation and size of rover
if (!GET_ALLOC(HDRP(rover)) && (asize <= GET_SIZE(HDRP(rover))))
// Return rover
return rover;
// For loop to search from start of list to old rover
for (rover = heap_listp; rover < oldrover; rover = NEXT_BLKP(rover))
// If condition to check allocation and size of rover
if (!GET_ALLOC(HDRP(rover)) && (asize <= GET_SIZE(HDRP(rover))))
// Return rover
return rover;
// Otherwise return null
return NULL;
}
/* $end mmfirstfit */
Filename: main.c
// Include libraries
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
// Include required header files
#include "csapp...

Want to see the full answer?
Check out a sample textbook solution
Chapter 9 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
- Exercise 1 Function and Structure [30 pts] Please debug the following program and answer the following questions. There is a cycle in a linked list if some node in the list can be reached again by continuously following the next pointer. #include typedef struct node { int value; struct node *next; } node; int ll_has_cycle (node *first) if (first NULL) return 0; node *head = first%;B while (head->next != NULL) { } if (head first) { return 1; } head = head->next;B return 0; void test_11_has_cycle() { int i; node nodes [6] ; for (i = 0; i < 6; i++) { nodes [i] .next = NULL; nodes [i].value i; nodes [0] .next = &nodes [1]; nodes [1] .next = &nodes [2]; nodes [2] .next &nodes [3]; nodes [3] .next nodes [4] .next & nodes [4]; NULL; nodes [5] .next &nodes [0]; printf("1. Checking first list for cycles. \n Function 11_has_cycle says it has %s cycle\n\n", 11_has_cycle (&nodes[0])?"a":"no"); printf("2. Checking length-zero list for cycles. \n Function 11_has_cycle says it has %s cycle\n\n",…arrow_forwardHello, please solve this trying to follow this criteria. (use Keil) Abstract describing the requirements and goals of the assignment. List file with no errors or warnings. Brief description of your implementation design and code. Debugging screen shots for different scenarios with your reference and comments. Conclusionarrow_forwardWrite the following in C# WinForms. Implement a function in the main menu that makes the poacher move to random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize); Create the appropriate poacher class as wellarrow_forward
- Write the following in C# WinForms. Implement a function in the main menu that makes the poacher move to random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize);arrow_forwardWrite the following in C# WinForms. Implement a function in the main menu that makes the poacher move to random directions. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize);arrow_forwardWrite the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize); Write the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize);arrow_forward
- Write the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize);arrow_forwardWrite the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The picture of the poacher is drew by e.Graphics.DrawImage(poacherImage, poacher.X, poacher.Y, tileSize, tileSize);arrow_forwardCreate a poacher class that has random x and y values when created, private set function for x and y values, and implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. Write it in C# WinFormsarrow_forward
- Hi, please solve this trying to follow this criteria. (use Keil) Abstract describing the requirements and goals of the assignment. List file with no errors or warnings. Brief description of your implementation design and code. Debugging screen shots for different scenarios with your reference and comments. Conclusionarrow_forwardCan you solve using iterative expansionarrow_forwardusing r languagearrow_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningEBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENTProgramming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:Cengage
- New Perspectives on HTML5, CSS3, and JavaScriptComputer ScienceISBN:9781305503922Author:Patrick M. CareyPublisher:Cengage LearningMicrosoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,Np Ms Office 365/Excel 2016 I NtermedComputer ScienceISBN:9781337508841Author:CareyPublisher:Cengage



