struct thread
int exit_status : 자식의 종료상태를 확인 목적, syscall.c -> exit 에서 저장
struct semaphore fork_sema : 자식이 fork 하기 전까지 부모를 block 상태로 만들어주기 위한 sema(thread.c/init_thread() 초기값 0)
struct semaphore wait_sema : 복제된 자식 프로세스가 종료할 때까지 부모 block (thread.c/init_thread() 초기값 0)
struct semaphore free_sema : 자식은 바로 terminate 시키지 않고 부모가 sema up 시켜줄 때까지 대기(thread.c/init_thread() 초기값 0)
struct intr_frame pif : fork시에, 부모 context에서 register 메모리 상태를 자식에게 전달 목적
struct list child_list : 부모가 child_elem들을 관리하기 위한 리스트, (thread.c/init_thread() 리스트 초기화)
struct list_elem child_elem : fork 된 자식
struct file **fd_table : 말그대로 fd 테이블 (thread_create -> 할당, fd[0] = 1, fd[1] = 2 초기화)
int fd_idx : fd_table의 오픈 인덱스 (thread_create -> 2로 초기화)
struct file *running : for denying excutable writes (thread.c/init_thread(), NULL로 초기화)
int stdin_count (thread_create -> 1 초기화)
int stdout_count (thread_create -> 1 초기화)
struct lock filesys_lock : for synchronizaion
struct file
struct thread* thread_child(int tid);
void argument_stack_for_user(char **argv, int argc, struct intr_frame *if_){}
전역 변수
void check_address(const uint64_t *addr);
process_add_file (struct file *f){}
process_get_file (struct file *f){}
process_close_file (struct file *f){}