def set_page_table(self, page, pageFrameIndex, vectora): #change name later pls MemoryManagementA.set_mgmt(pageFrameIndex, self.mypid) # for each row of the page table for i in range(self.page_table.shape[0]): if self.page_table[i][0] == -1: self.page_table[i][0] = pageFrameIndex self.page_frame_vectors[i] = vectora self.available_space += 1 break
def __init__(self, initialNbrOfPages): self.page_table = np.zeros(shape=(initialNbrOfPages, 1), dtype='int64') self.page_frame_vectors = [0] * initialNbrOfPages # Set initial value to page table indexs to -1 for i in range(self.page_table.shape[0]): self.page_table[i][0] = -1 # is marked available self.available_space = initialNbrOfPages self.mypid = Process.get_pid() MemoryManagementA.register_process(self)
def get_mem(cls, pid, nbrPages): mem_list = [] alist = MemoryManagementA.find_free_space( pid, nbrPages) # returns a list of pageFrames if len(alist) > 0: for pageFrameIndex in alist: vectora = MemoryA.memory[pageFrameIndex, :] tuplea = (pageFrameIndex, vectora ) # vectora is a POINTER to memory mem_list.append(tuplea) return mem_list # mem_list is a list of tuples
import numpy as np import sys # sys.path.append('/Users/quentincurteman/Google Drive File Stream/My Drive/William Jessup/Fall 2018/Operating Systems/CS355') from memory.memmgmt import MemoryManagementA from memory.memmgr import MemoryA from process.processx import Process pp = Process(4) print('***** before loading *****') pp.print_mgmt() MemoryA.print_mem() MemoryManagementA.print_management() print('**************************') alist = [0, 1] pp.load_pages(alist, 2) print('***** after loading *****') pp.print_mgmt() MemoryA.print_mem() MemoryManagementA.print_management() print('**************************')
def printAll(astring, process): print(" ********* start: ", astring, '*********') process.print_mgmt() MemoryA.print_mem() MemoryManagementA.print_management() print(" *********** end: ", astring, '***********\n')