tid_t process_execute() (const char *file_name)
프로그램을 실행 할 프로세스 생성
file_name 문자열을 파싱하여 첫번째 토큰을 thread_create() 함수에 스레드 이름으로 전달
static void start_process() (void *file_name_)
프로그램을 메모리에 탑재하고 응용 프로그램 실행
file_name 문자열을 파싱하여 argument_stack() 함수를 이용해 스택에 토큰들을 저장
void argument_stack(char **parse ,int count ,void **esp)
함수 호출 규약에 따라 유저 스택에 프로그램 이름과 인자들을 저장
parse : 프로그램 이름과 인자가 저장되어 있는 메모리 공간
count : 인자의 갯수
esp : 스택 포인터를 가리키는 주소
/* string.h */
char *strtok_r (char *s, const char *delimiters, char **save_ptr)
문자열 s와 구분자 delimiters를 받아 구분자를 기준으로 파싱
/* 문자열을 첫 번째 공백 기준으로 파싱 */
char s[] = "String to tokenize.";
char *token, *save_ptr;
for (token = strtok_r (s, " ", &save_ptr); token != NULL;
token = strtok_r (NULL, " ", &save_ptr))
printf ("'%s'\n", token);
스레드의 파일 이름을 실행 파일명으로 지정(process_execute())