def draw_memory_state(self, mem_box, page_fault_box, temp_memory, *args):
page_number = temp_memory['page_number']
page_fault = temp_memory['page_fault']
allocated_frame = temp_memory['frame_number']
memory_state = temp_memory['memory_frames']
mem_label = Label(text='', size_hint_x=None, width=self.margin_left - kivy.metrics.dp(25), valign='middle', halign='center')
mem_label.text_size = mem_label.size
mem_box.add_widget(mem_label)
mem_label = Label(text='Memory state: ', size_hint_x=None, width=self.margin_left + kivy.metrics.dp(35), valign='middle', halign='left')
mem_label.text_size = mem_label.size
mem_box.add_widget(mem_label)
for idx, state in enumerate(memory_state):
if state == -1:
state = 'X'
if allocated_frame - 1 == idx and page_fault == 1:
mem_label = ColoredBorderedLabel(text='[b][color=DEC41B]'+str(state)+'[/color][/b]', markup=True, size_hint_x=None, width=self.frame_width, valign='middle', halign='center')
else:
mem_label = WhiteBorderedLabel(text=str(state), size_hint_x=None, width=self.frame_width, valign='middle', halign='center')
mem_label.text_size = mem_label.size
mem_box.add_widget(mem_label)
# To add page fault (Y/N)
page_f_label = Label(text='', size_hint_x=None, width=self.margin_left - kivy.metrics.dp(25), valign='middle', halign='center')
page_f_label.text_size = page_f_label.size
page_fault_box.add_widget(page_f_label)
page_f_label = Label(text='Page fault: ', size_hint_x=None, width=self.margin_left, valign='middle', halign='center')
page_f_label.text_size = page_f_label.size
page_fault_box.add_widget(page_f_label)
if page_fault == 1:
page_f_label = Label(text='[color=DEC41B]Yes[/color]', markup=True, size_hint_x=None, width=self.margin_left, valign='middle', halign='left')
else:
page_f_label = Label(text='No', markup=True, size_hint_x=None
, width=self.margin_left, valign='middle', halign='left')
page_f_label.text_size = page_f_label.size
page_fault_box.add_widget(page_f_label)
评论列表
文章目录