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(); }
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(); }