Single User Contiguous
Each program loaded in its entirely into memory and allocated as much contiguous memory space as needed. If the program was too large it couldn’t executed minimal amount of work done by memory manager. Hardware needed ; register to store base address; accumulator to track size of the program as it is loaded into memory.
Algorithm to load a job in a single user system
1. Store first memory location of program into base register
2. Set program counter equal to address of first memory location
3. load instructions of program
4. Increment program counter by number of bytes in instructions?
5. Is program counter greater than memory size?
6. loads instruction in memory
Fixed Partition
An entire program stored contigiously in memory during entire execution. Attempt at multiprogramming using fixed partition; one partition for each job; size of partition designated by reconfiguring the system; partitions can’t be too small or too large. Critical to protect job memory space. Internal fragmentation is a problem.
Algorithm to load a job in a fixed partition
1. Determine job’s requested memory size
2. If job_size > size of largest partition then reject job
Print appropriate message
Go to step 1 to handle next job
Else continue with step 3
3. Set counter to 1
4. Do while counter <= number of partitions in memory
If job_size>mem_partition_size(counter)
then counter = counter + 1
Else
If mem_partition_status(counter) = “free”
Then load job into mem_partition(counter)
Change mem_partition_status(counter)
to “busy”
go to step 1
Else counter = counter + 1
End do
5. No partition available at this time put job in waiting queue
6. Go to step 1
Example:
Simplified Fixed Partition Memory Table
Partition size Memory Address Access Partition Status...