PintOS 2주차 - day5

솔다·2022년 12월 27일
0

5일차. 체력이 급격히 줄어든게 확실히 실감된다.
주변 사람들은 감기가 유행처럼 퍼졌다. 이제 절반인데 피곤하게 느껴지니 체력 안배의 중요성이 조금 더 느껴진다.

오늘은 코드를 직접 짠건 거의 없었다. 팀원들하고 Project 2 를 크게 나눠서 조금씩 진행을 하는 방식으로 진행을 했다. 앞의 system_call 부분은 가볍게 훑어보고 Thread 부분을 우선적으로 봤다. 코드도 작성할 수 있으면 작성하고, 내용에 대해서 서로 나누는 방식으로 하기로 했기 때문.

카이스트에서 진행할때는 하나의 큰 과제로 진행했지만, 인터넷에서 찾은 다른 자료에서는 조금더 작게 쪼개서 Thread 부분을 진행하는 과제로 쪼개져있었기에 그렇게 진행을 했다.

User program에서는 child process가 실행될 수 있기 때문에, 이를 OS가 인지할 수 있도록 해야한다.

동시에 프로세스 하나를 담당하는 하나의 Thread에서도 child 에 대한 정보를 담아야 한다.

여러개의 child가 생성될 수 있기 떄문에, Thread 구조체에 list를 추가해서 이런 데이터를 넣어주게 구성을 해야했다.

이외에도 자식 프로세스가 정상적으로 실행이 되었는지 여부를 확인하기 위한 flag, 정상적으로 종료되었는지 확인하기 위한 flag등등을 포함해야 했다.

아직 fork 함수를 작성하지 않았는데, fork 함수를 어떻게 작성해야할지 모르겠는 상황에서 thread 구조체의 새로운 field를 어떻게 해야할지 고민하면서 유저 프로그램이 어떻게 실행되는지 찾아보기 위해 오늘 하루종일 설명되어있는 자료와 코드를 여기저기 뜯어봤다.

이것저것 확인했는데, 여전히 부모 프로세스를 가리키는 포인터를 어떻게 작성할지에 대한 생각은 여전히 오리무중이다. 팀원들과 공부한걸 나누면서 아이디어가 생긴 부분도 있는데, 내일은 직접 코드를 작성해보면서 구현 해봐야겠다.

0개의 댓글