コード例 #1
0
ファイル: kos.c プロジェクト: Styxx/CS170-W16
KOS() {
  
  /* Semaphores */
  writeOK =  make_kt_sem(0);
  writers = make_kt_sem(1);	
  readers = make_kt_sem(1);
  nElem = make_kt_sem(0);
  consoleWait = make_kt_sem(0);

  /* Generics */
  sys_stop_read = 0;
  current_pid = 0;
  console_size = 256;
  buffer_head, buffer_tail;
  
  // Zero out memory
  bzero(main_memory, MemorySize);
  bzero(memory_space_array, 8);
  
  /* Initializers */
  currentProcess = (PCB *) malloc(sizeof(PCB));
  initialize_console_buffer(&buffer_head, &buffer_tail);
  readyQ = new_dllist();
  found_node = make_jrb();
  pid_tree = make_jrb();
  kt_fork(initialize_user_process, (void *)kos_argv);
  kt_fork(console_buf_read, (void *)kos_argv[0]);
  kt_joinall();
  start_timer(10);
  scheduler();
}
コード例 #2
0
ファイル: kos.c プロジェクト: cbia4/KOS
KOS() {
	writeok = make_kt_sem(0);
	writers = make_kt_sem(1);
	readers = make_kt_sem(1);
	nelem = make_kt_sem(0);
	consoleWait = make_kt_sem(0);

	sysStopRead = 0;
	consoleSize = BUFSIZE;

	bzero(main_memory, MemorySize);

	current = (PCB *) malloc(sizeof(PCB));
	initialize_console_buffer(&consoleBufferHead, &consoleBufferTail);
	queue = new_dllist();

	kt_fork(initialize_user_process, NULL);
	kt_fork(console_buf_read, NULL);
	kt_joinall();

	scheduler();
}