이 과제에서는 최소한의 기능만을 갖춘 스레드 시스템을 제공합니다. 여러분의 임무는 이 시스템의 기능을 확장하여 동기화 문제에 대한 이해를 높이는 것입니다.
작업은 대부분 threads 디렉터리에서 이루어지며, 일부는 devices 디렉터리에서도 수행됩니다. 컴파일은 threads 디렉터리에서 해야 합니다.
프로젝트 설명을 읽기 전에 동기화(Synchronization) 관련 내용을 최소한 훑어보는 것을 권장합니다.
초기 Pintos 스레드 시스템은 다음을 이미 제공합니다:
이 코드는 처음에는 다소 복잡해 보일 수 있습니다. 아직 시스템을 빌드하고 실행하지 않았다면 먼저 그렇게 해 보세요. 소스코드를 읽어보고 printf()를 추가해 흐름을 확인할 수 있고, GDB 디버거를 이용해 코드 실행을 추적할 수도 있습니다.
thread_create()로 스레드를 만들면, 해당 스레드는 주어진 함수의 시작 지점부터 실행되며, 함수가 종료되면 스레드도 종료됩니다.