Question

Question 5 - Free Space Management Free space management involves capturing a description of the computers using a data structure, storing this data structure in memory, and OS support to rap this structure to determine an appropriate location for implementation is very important when we scale up the number of operatior required to perform. free memory idly use new memory allocations. An efficient s the OS is Consider the use of a linked list for a free s placing th pace list where each node is represented by e following structure in the header of the memory chunk: typedef struct _node t int size; struct node_t *next; node_t; Consider the following free space list: head- NULL size-10 size-5size-8 size-32size-1 size-7 Consider the next fit allocation strategy. For this free list above, how many comparis operations must be performed to identify a free chunk of 30-bytes? on After the last free space identification, the chunk is split and the remaining free space is returned to the free space list. Now, consider the next fit allocation strategy. After findin a free space for the previous request, how many comparisons are required to identify a free chunk of 10-bytes? Now, after the last free space identification the chunk is split and the remaining free space is returned to the free space list. Now consider each of the following free space allocation strategies. How many comparisons are required on the updated free space list to find a free chunk of 2 bytes using: (a) best fit: (b) worst fit: (c) first fit:

Please explain your answer

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Next fit allocation is same as first fit, the first free space available in the list, having a size >= n bytes which is required by the process is allocated. The only difference from first fit is, for the next memory allocation it starts from the next free space from the list instead of starting from the first free space in the list.

Therefore for 30-bytes requests, Next fit requires 4 comparisons.

Ist comparision starts from the first free space available in the list.Size of 1st free space is 10 bytes(less than 30).

2nd comparision is on the second free space of size 5 in the list which is also less than 30.

3rd comparision is on the third free space of size 8 in the list which is also less than 30.

4th comparision is on the fourth free space of size 32 in the list which is greater than 30.Hence this satisfies the requirement. The 32 bytes free space is split into 30 bytes and 2 bytes. Unused 2bytes is returned back to free space list.

With this allocation, free space list will have:

10 bytes, 5 bytes, 8 bytes, 2 bytes, 1 byte, 7 bytes

To identify the next request of 10 bytes free space in Next fit allocation, it requires 3 comparisions.

1st comparision is on the next free space in the list(i.e., after 32 bytes(30+2)) 1 byte which is less than 10 bytes.

2nd comparision is on the next free space in the list(i.e., after 1 byte) 7 bytes which is also less than 10 bytes.

3rd comparision is on the first free space in the list 10 bytes, as the last comparision is on the last free space in the list. This satisifies the request which is equal to requested 10 bytes.

Now updated free space list will be:

5 bytes, 8 bytes, 2 bytes, 1 byte, 7 bytes

Upon request for 2 bytes of memory,

a. Best fit: requires 5 comparisions.

In best fit allocation, all the free space in the list are searched to find the best(i.e., free space having a size nearer to the requested size) free space, so that it leaves very little amount of unused memory after spliting.

In this case after comparing all the free space in the list, 3rd free space having a size of 2 bytes is allocated.

Thus after allocation, the free space list will be:

5 bytes, 8 bytes, 1 byte, 7 bytes

b. Worst fit: requires 5 comparisions.

In worst fit allocation, all the free space in the list are searched to find the largest free space that is available in the list.So that after spliting, the size of unused memory will be large enough to get allocated for the future requests.

In this case after comparing all the free space in the list, 2nd free space having a size of 8 bytes is splitted into 2 bytes and 6 bytes. The unused 6 bytes of memory is returned back to free space list.

Thus after allocation, the free space list will be:

5 bytes, 6 bytes, 2 bytes, 1 byte, 7 bytes

c. First fit: required 1 comparision.

In first fit allocation, the first free space in the list which has a size >= n bytes(where n bytes is the requested bytes) is allocated to the requested process. After spliting the unused memory is returned to the free space list.

In this case after comparing the first free space in the list, having a size of 5 bytes which satisifies the requested size(> 2 bytes) is splitted into 2 bytes and 3 bytes and allocated to process. The unused 3 bytes of memory is returned back to free space list.

Thus after allocation, the free space list will be:

3 bytes, 8 bytes, 2 bytes, 1 byte, 7 bytes

Add a comment
Know the answer?
Add Answer to:
Please explain your answer Question 5 - Free Space Management Free space management involves capturing a...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • In this assignment, you will implement a Memory Management System(MMS). Using C Programming Language..... MAKE SURE...

    In this assignment, you will implement a Memory Management System(MMS). Using C Programming Language..... MAKE SURE YOU USE C PROGRAMMING Your MMS will handle all requests of allocation of memory space by different users (one thread per user) …. HINT(You will use Pthreads and Semaphores). Your MMS will provide the user with an interface for making memory requests and also for freeing up memory that is no longer needed by the user. One of the jobs of your memory management...

  • The second picture that I attached is the input and output. I already did the code...

    The second picture that I attached is the input and output. I already did the code but I also have to add the partition number assigned to the job (if the job was allocated). Can you please do that for me? I copied and pasted my code below. #include <iostream> #include <string.h> #include <stdio.h> using std::cout; using std::cin; using std::endl; unsigned int memorySize; // Function prototypes unsigned int FirstFit(struct Partition *, int, struct Job *, int); unsigned int BestFit(struct Partition...

  • Need this in C The starter code is long, if you know how to do it...

    Need this in C The starter code is long, if you know how to do it in other way please do. Do the best you can please. Here's the starter code: // ----------------------------------------------------------------------- // monsterdb.c // ----------------------------------------------------------------------- #include #include #include // ----------------------------------------------------------------------- // Some defines #define NAME_MAX 64 #define BUFFER_MAX 256 // ----------------------------------------------------------------------- // Structs typedef struct { char name[NAME_MAX]; int hp; int attackPower; int armor; } Character; typedef struct { int size; Character *list; } CharacterContainer; // ----------------------------------------------------------------------- //...

  • please, answer all the questions Question 5 a) A transformer has 500 turns on the primary...

    please, answer all the questions Question 5 a) A transformer has 500 turns on the primary and 1500 turns on the secondary. If the output voltage is 36 V what is the input voltage? What type of transformer is this? (3 marks) b) 100 kW is delivered to a town along power lines that have a total resistance of 0.4 0. Calculate the power loss if the electricity is delivered at a voltage of () 240 V and (ii) 24kV....

  • In C, Implement each of the functions to create a working stack 6 II-Implement each of...

    In C, Implement each of the functions to create a working stack 6 II-Implement each of the functions to create a working stack. 7 II -Do not change any of the function declarations I-(i.e. stack t* create stack) should not have additional arguments) II-You should not have any 'printf' statements in your stack functions 10 II(You may consider using these printf statements to debug, but they should be removed from your final version) 12 #ifndefMYSTACK_A 13 #define MYSTACKH 14 15...

  • I've posted 3 classes after the instruction that were given at start You will implement and...

    I've posted 3 classes after the instruction that were given at start You will implement and test a PriorityQueue class, where the items of the priority queue are stored on a linked list. The material from Ch1 ~ 8 of the textbook can help you tremendously. You can get a lot of good information about implementing this assignment from chapter 8. There are couple notes about this assignment. 1. Using structure Node with a pointer point to Node structure to...

  • Let’s build a dynamic string tokenizer! Start with the existing template and work on the areas...

    Let’s build a dynamic string tokenizer! Start with the existing template and work on the areas marked with TODO in the comments: Homework 8 Template.c Note: If you turn the template back into me without adding any original work you will receive a 0. By itself the template does nothing. You need to fill in the code to dynamically allocate an array of strings that are returned to the user. Remember: A string is an array. A tokenizer goes through...

  • 1. Your project will include the following three files: A header file: dynamicArray.h that includes a...

    1. Your project will include the following three files: A header file: dynamicArray.h that includes a list of function prototypes as enumerated in the next section. An implementation file: dynamicArray.cpp that implements the functions declared in the header file. A test driver file: dynamicArray-main.cpp that includes the main() function so that you can test all the functions you've implemented above. 2. The header file dynamicArray.h will include the following list of functions: constructing a dynamic array of the specified size...

  • Edit a C program based on the surface code(which is after the question's instruction.) that will...

    Edit a C program based on the surface code(which is after the question's instruction.) that will implement a customer waiting list that might be used by a restaurant. Use the base code to finish the project. When people want to be seated in the restaurant, they give their name and group size to the host/hostess and then wait until those in front of them have been seated. The program must use a linked list to implement the queue-like data structure....

  • How to write the insert, search, and remove functions for this hash table program? I'm stuck......

    How to write the insert, search, and remove functions for this hash table program? I'm stuck... This program is written in C++ Hash Tables Hash Table Header File Copy and paste the following code into a header file named HashTable.h Please do not alter this file in any way or you may not receive credit for this lab For this lab, you will implement each of the hash table functions whose prototypes are in HashTable.h. Write these functions in a...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT