/* **PENTING** FUNGSI UTAMA Penanganan Memori dilakukan disini... */ void tanganiData(int nomor_request){ //nomor request adalah index untuk mengakses dataPage boolean done=false; int i=0; // Contoh... printf("Process %d has requested page %d\n",dataPage[nomor_request].Requested, nomor_request); //# 3. Jika terdapat frame yang tidak ditempati, alokasikan. //# 4. Jika tidak ada seluruh frame ditempati, pilih page ‘victim’ yang akan di swap. //printf("ini nomor request : %d\n", nomor_request ); addToFrame(que, nomor_request); // + Jika page ‘victim’ tersebut memiliki dirty bernilai true simulasikan penulisan pada disk, lakukan // sleep(1) dan tambahkan nilai pengaksesan pada disk. // .. code .. // + Update page table untuk menyatakan page tersebut sudah tidak berada pada memori fisik. // .. code .. //# 5. Simulasikan pemuatan page dengan sleep(1) dan tambahkan nilai pengaksesan pada disk. //# 6. Update page table untuk menyatakan page tersebut telah di load ke memori fisik dalam frame tersebut, // tentu dengan dirty bernilai false, dan kembalikan nilai Requested ke 0. //dataPage[nomor_request].Dirty = 0; dataPage[nomor_request].Requested = 0; //# 7. Cetak page table setelah diupdate. // .. code .. }
//@Override /*public*/ void SignalMastLogicTableAction::actionPerformed(ActionEvent* /*e*/) { #if 0 // create the JTable model, with changes for specific NamedBean createModel(); MySortFilterProxyModel* sorter = new MySortFilterProxyModel(m); JTable* dataTable = m.makeJTable(sorter); dataTable->setObjectName("SignalMastLogicTable"); //sorter.setTableHeader(dataTable.getTableHeader()); // create the frame f = new jmri.jmrit.beantable.BeanTableFrame(m, helpTarget(), dataTable) {}; setMenuBar(f); setTitle(); addToFrame(f); f.pack(); f.setVisible(true); #endif }