Process Termination Message
Print out the process termination message
사용자 프로세스가 종료를 호출하거나 다른 이유로 인해 종료될 때마다 프로세스의 이름과 종료 코드를 다음과 같은 형식으로 인쇄합니다.
printf ("%s: exit(%d)\n", ...);
인쇄되는 이름은 fork()에 전달된 전체 이름이어야 합니다. 사용자 프로세스가 아닌 커널 스레드가 종료되거나 중단 시스템 호출이 호출될 때는 이러한 메시지를 인쇄하지 마십시오. 이 메시지는 프로세스가 로드되지 않을 때 선택 사항입니다.
이 메시지 외에 제공된 핀토가 아직 인쇄하지 않은 다른 메시지는 인쇄하지 마세요. 디버깅 중에 추가 메시지가 유용할 수 있지만 채점 스크립트를 혼동하여 점수가 낮아질 수 있습니다.
void process_exit(void)
{
struct thread *curr = thread_current();
/* TODO: Your code goes here.
* TODO: Implement process termination message (see
* TODO: project2/process_termination.html).
* TODO: We recommend you to implement process resource cleanup here. */
curr->process_exit = true;
struct thread *parent = curr->parent;
if (curr->is_user_thread == true)
printf("%s: exit(%d)\n", curr->name, curr->exit_status);
lock_acquire(&process_lock);
list_remove(&(curr->child_elem));
lock_release(&process_lock);
process_cleanup();
}
'운영체제(OS) > with PintOS' 카테고리의 다른 글
(Project2-User Programs) - Extend File Descriptor (Extra) (0) | 2023.12.26 |
---|---|
(Project2-User Programs) - Deny Write on Executables (0) | 2023.12.26 |
(Project2-User Programs) - System Calls (0) | 2023.12.26 |
(Project2-User Programs) - User Memory (0) | 2023.12.26 |
(Project2-User Programs) - Argument Passing (0) | 2023.12.26 |