logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

Memory is allocated for a given process when a user starts a program. The OS can give each process a different amount of memory based on the amount requested when the process is created.

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Memory is allocated for a given process when a user starts a program. The OS can give each process a different amount of memory based on the amount requested when the process is created. So, requests to the OS are received from applications to allocate (creation) or to free (termination) memory. The OS services the request and gives the new process the memory requested according to 3 popular algorithms:

  • First fit: Satisfy the request from the first available free memory block that is large enough to accommodate the

  • Best fit: Satisfy the request from the free memory block that is large enough to service the request and small enough that it has the smallest fragmented

  • Worst fit: Satisfy the request from the free memory block that is large enough to service the request and creates the largest fragmented

Consider the following input format:

N1 500

T7 S 

N indicates the process (1) that is being created needs memory (500 bytes). The result of this operation is either successful (indicated by a memory address returned that references the new memory) or a failure (indicated by a NULL memory address returned). The T operation is terminating the process (process 7 in this case) and freeing the memory that was assigned to the process. The S operation is to stop the program and print the report.

You are to write a program (no pthreads! – YAY) that will simulate the memory allocations/frees of the operating system. Your program will read input from stdin and produce output on stdout. Each line will be one of the three forms above.

Your program will take the total amount of memory in your system as a command line parameter “-s #”. You have to implement all 3 algorithms with a command line option “- f”, “-b”, or “-w” to select which algorithm is used. Output generated is the following (either message for each allocation line of input):

  • If an allocation fails:

o   Process # failed to allocate x memory

  • If a free fails (including the case where you receive a free request for a process that you failed to allocate the memory):

o   Process # failed to free memory

Regardless of success or failure, your program will continue to service ALL requests on stdin. If a process fails to be allocated, then its corresponding terminate request is ignored. At the end, you are to print a short report of the overall results:

o   Total Processes created #, Total allocated memory #, Total Processes terminated #, Total freed memory #, Final memory available #, Final smallest and largest fragmented memory sizes

 Where each # are the sums for the given operations.

Warning! Be careful … there are no limits on how many processes can be created/terminated or how much memory you may have when you start

  1. This question consists of writing a program that translates logical to physical addresses for a virtual address space of size 232 Your program will read from stdin a list of logical addresses, translate each logical address to a physical address and then print the physical address that would be accessed in memory. However, your simulation can only have n pages loaded in memory at any given time! The goal is to simulate the steps involved in translating logical to physical addresses.

Design your simulation with the following parameters:

  • A page is 212 = 4 kilobytes. (Note, this means a frame is also 212 in size).

  • Therefore, the page table has 220 You can use a simple array to implement this table.

  • Your process has been allocated n n is a parameter to your program on the command line.

For the address translation you are to use the simple single level of page table mapping (page table is 20 bits, page offset is 12 bits)

Your program should print for each logical address read:

logical address -> physical address

It should also keep track of the number of page faults that occur and print the statistic at the end.

Notes:

  • Running your program with a sample file can be done as:

./a.out 10 < sample_logical_addr

  • For this question you are to use the Least Recently Used (LRU) page replacement policy. Since you do NOT have to worry about writing to the page you DO NOT need to save the page when you replace it!

  • Be aware of data type sizes!

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

771 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

502 Answers

Hire Me
expert
Husnain SaeedComputer science

539 Answers

Hire Me
expert
Atharva PatilComputer science

675 Answers

Hire Me
June
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30