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 solutionChapter 9 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
- In Java, Explain when it might be preferable to use a map instead of a set.arrow_forwardWrite a class that maintains the top 10 scores for a game application, implementthe add and remove functions. use a singlylinked list instead of an array.arrow_forwarddo the changes in this program according to the given instruction like coaches instead of teachers,sports name instead of courses etc, import java.util.*;class CourseManager{//toatl students each section can holdstatic int max_Students;//mapping of each sections w.r.t to courseHashMap<String,ArrayList<Section> > courses ; //constructor for CourseManagerpublic CourseManager(int max){max_Students = max;courses = new HashMap<>();}//class Person which will be used by teacher and students to inherit its propertiesstatic class Person{String name;int age;public Person(String name , int age ){this.name = name;this.age = age;}}//teacher classstatic class Teacher extends Person{int id;public Teacher(int id , String name , int age ){super(name , age );this.id = id;}}//student classstatic class Student extends Person{int id;public Student(int id , String name , int age ){super(name , age );this.id = id;}}//section classstatic class Section{int section;String course ;Teacher…arrow_forward
- Write a short IO function, runTest, which runs your tests using quickCheck. runTest = undefined --Consider the following type which allows non-homogenous lists to be built. data MkType a b = ElemA a (MkType a b) | ElemB b (MkType a b) | Emptyderiving Showarrow_forwardImplement a version of shellsort that keeps the increment sequence in an array, rather than computing itarrow_forwardGiven an JavaScript object list of books that each have a pages attribute to define the number of pages in the book, find the sum of all the pages in the object list of books using recursion. Keep in mind: The input list object may be completely empty (ex. {}) The next attribute may not be defined function getPageCount(list) {// your code here// returns an integer}Example test case:Input: {"book":"A","pages":1,"next":{"book":"B","pages":2,"next":{"book":"C","pages":3,"next": null}}}Output: 6Reasoning: 1 + 2 + 3 pagesarrow_forward
- Add a constructor to SeparateChainingHashST that gives the client the abilityto specify the average number of probes to be tolerated for searches. Use array resizingto keep the average list size less than the specified value, and use the technique describedon page 478 to ensure that the modulus for hash() is primearrow_forwardThere’s a somewhat imperfect analogy between a linked list and a railroad train, where individual cars represent links. Imagine how you would carry out various linked list operations, such as those implemented by the member functions insertFirst(), removeFirst(), and remove(int key) from the LinkList class in this hour. Also implement an insertAfter() function. You’ll need some sidings and switches. You can use a model train set if you have one. Otherwise, try drawing tracks on a piece of paper and using business cards for train cars.arrow_forwardWrite a class TouristSpot that has the data members; name of tourist spot, state in which it lies. Create an array list of n places and write a function that takes array list as an argument to identify a state that has more than one tourist spot. Java Programarrow_forward
- demonstrates the ComparatorDemo class, which uses Arrays after populating a collection with Student objects.To show the difference in the sort order, arrange each of our Comparator objects.arrow_forwardImplement a CircularArray class that supports an array-like data structure whichcan be efficiently rotated. If possible, the class should use a generic type (also called a template), and should support iteration via the standard for (Obj o : circularArray) notation.arrow_forwardCreate the compareTo method for a class that represents an individual whose first and last names are stored as two Strings. In an alphabetical list of people with last names first and then first names, one individual is "less than" another if they come before the other.(as is typical).arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education