Esempio n. 1
0
void test_aging(char *name, char *arg) {
	kprintf("executing %s, this is tested with 25 frames only. change NFRAMES to 25\n",
			name);
	kprintf("setting aging policy\n");
	srpolicy(AGING);
	char *addr = (char*) 0x40000000; //1G
	bsd_t bs = 1;
	int i = ((unsigned long) addr) >> 12;	// the ith page

	get_bs(bs, 200);

	if (xmmap(i, bs, 200) == SYSERR) {
		kprintf("xmmap call failed\n");
		return;
	}

	i = 0;
	kprintf("*******************generating first page fault\n");
	*addr = 'A' + (i++);
	addr += NBPG;	//increment by one page each time
	kprintf("************filling all the pages\n");
	while (!is_free_frm_list_empty()) {
		*addr = 'A' + (i++);
		addr += NBPG;	//increment by one page each time
	}
	kprintf("*************all pages filled\n");
	kprintf("access first page again\n");
	addr = (char*) 0x40000000; //1G
	*addr = 'A';
	kprintf("************generating aging page fault\n");
	addr += ((++i) * NBPG);	//increment by one page each time
	*addr = 'Z';
	kprintf("setting back fifo policy\n");
	srpolicy(FIFO);
}
Esempio n. 2
0
void test7(){
  int pid1;
  int ret = TPASSED;
  kprintf("\nTest 7: Test FIFO page replacement policy\n");
  srpolicy(FIFO); 
  pid1 = create(test_func7, 2000, 20, "test_func7", 0, NULL);
  resume(pid1);
  sleep(10);
  kill(pid1);
  kprintf("\n\tFinished! Check error and replaced frames\n");
}
Esempio n. 3
0
void test8(){
  int pid1;
  int ret = TPASSED;
  kprintf("\nTest 8: Test LRU page replacement policy\n");
  srpolicy(LRU); 
  pid1 = create(test_func8, 2000, 20, "test_func8", 0, NULL);
  resume(pid1);
  sleep(10);
  kill(pid1);
  kprintf("\n\tSecond run (test where killing process is handled correctly):\n");
  pid1 = create(test_func8_2, 2000, 20, "test_func8_2", 0, NULL);
  resume(pid1);
  sleep(10);
  kill(pid1);
  kprintf("\n\tFinished! Check error and replaced frames\n");
}
Esempio n. 4
0
/*------------------------------------------------------------------------
 *  main  --  user main program
 *------------------------------------------------------------------------
 */
int main() {
    int i, s;
    int count = 0;
    char buf[8];




    kprintf("Aging policy:\n");
    kprintf("\t1 - Default (FIFO no output)\n");
    kprintf("\t2 - FIFO  with output\n");
    kprintf("\t3 - AGING with output\n");
    kprintf("\nPlease Input:\n");
    while ((i = read(CONSOLE, buf, sizeof(buf))) <1);
    buf[i] = 0;
    s = atoi(buf);
    switch (s) {
    case 1:
        // Default.. do nothing
        break;
    
    case 2:
        // FIFO with output
        srpolicy(FIFO);
        break;
        
    case 3:
        // AGING with output
        srpolicy(AGING);
        break;
    }


    kprintf("What test? Most of these best test when NFRAMES=12. Options are:\n");
    kprintf("\t1 - Basic Test (Recommend NFRAMES=12)\n");
    kprintf("\t2 - Virtual Heap Test (Recommend NFRAMES=12)\n");
    kprintf("\t3 - Shared Memory Test (Recommend NFRAMES=12)\n");
    kprintf("\t4 - Random Access Test (Recommend NFRAMES=22)\n");
    kprintf("\t5 - Kill Test (Need NFRAMES=1024 and DUSTYDEBUG=1)\n");
    kprintf("\t6 - Error Test\n");
    kprintf("\t8 - Combo!\n");
    kprintf("\nPlease Input:\n");
    while ((i = read(CONSOLE, buf, sizeof(buf))) <1);
    buf[i] = 0;
    s = atoi(buf);
    switch (s) {
    case 1:
        // Basic Test
        basic_test();
        break;
    
    case 2:
        // Virtual heap test
        vheap_test();
        break;
        
    case 3:
        // Shared Memory Test
        shmem_test();
        break;

    case 4:
        // Random Access Test
        random_access_test();
        break;

    case 5:
        // Kill test
        kill_test();
        break;

    case 6:
        // Kill test
        error_test();
        break;

    case 8:
        // Kill test
        kill_test();
        sleep(30);
        basic_test();
        sleep(30);
        random_access_test();
        sleep(30);
        vheap_test();
        sleep(30);
        shmem_test();
        sleep(30);
        error_test();
        break;

    }
	return 0;
}
Esempio n. 5
0
int main() {

	int pid1;
	int pid2;

	srpolicy(FIFO);

#if 0
	kprintf("\n1: shared memory\n");
	pid1 = create(proc1_test1, 2000, 20, "proc1_test1", 1, "P1");
	resume(pid1);
	sleep(10);
	pid2 = create(proc2_test1, 2000, 20, "proc2_test1", 4, "P2",63,56,"special");
	resume(pid2);
	sleep(10);
#endif

#if 0
	kprintf("\n2: vgetmem/vfreemem\n");
	pid1 = vcreate(memTest, 2000, 2, 20, "memTest", 4,"MT",78,92,"specialMem");
	kprintf("pid %d has private heap\n", pid1);
	ASSERT(pid1 != SYSERR);
	resume(pid1);
	sleep(3);
#endif

#if 0
  sleep(10);
	kprintf("\n3: Heap and Stack Load Test: Many processes with virtual mem, created and destroyed in a loop.\n");
	pid1 = create(privateHeapLoadTest, 2000, 20, "privateHeapLoadTest", 0,NULL);
	if(pid1 == SYSERR) { kprintf("Cannot create process. Test launch FAIL.\n"); }
	resume(pid1);
	sleep(3);
#endif

#if 0
	kprintf("\n4:FIFO test.\n");
	srpolicy(FIFO);
	pid1 = create(fifo_test, 2000, 20, "fifo", 0, NULL);
  resume(pid1);
  sleep(20);
#endif

#if 1
	kprintf("\n4:LRU test.\n");
	srpolicy(LRU);
	kprintf("Current policy : %d\n",grpolicy());
	pid1 = create(lru_test, 2000, 20, "lru", 0, NULL);
  resume(pid1);
  sleep(10);
#endif

#if 0
	kprintf("\n4: Illegal Address Access Test. These 2 processes should get killed.\n");
	pid1 = vcreate(badAccessTest, 2000, 50, 20, "badAccessTest", 0,NULL);
	pid2 = vcreate(badAccessTest, 2000, 50, 20, "badAccessTest", 0,NULL);
	if(pid1 == SYSERR) { kprintf("Cannot create process1. Test launch FAIL.\n"); }
	if(pid2 == SYSERR) { kprintf("Cannot create process2. Test launch FAIL.\n"); }
	resume(pid1);
	sleep(3);
	resume(pid2);
	sleep(3);
	kprintf("\n6: Test Done. Both the processes should have been killed now.\n");
	sleep(60);
#endif

#if 0
	kprintf("\n5: Peak Load Test: All backing stores fully mapped with first and last byte of every page written and tested. BS-15 shared amongst all process.\n");
	pid1 = create(peakLoadTestLaunch, 2000, 20, "peakLoadTestLaunch", 0,NULL);
	if(pid1 == SYSERR) { kprintf("Cannot create process. Test launch FAIL.\n"); }
	resume(pid1);
	sleep(6000);
#endif
  kprintf("=====================Main End============\n");
  return 0;
}