"Pintos 프로젝트 1: 스레드" 과제는 기본 스레드 시스템의 기능을 확장하여 동기화 문제에 대한 이해를 높이는 것을 목표로 합니다. 이 작업은 주로 threads 디렉토리와 일부 devices 디렉토리에서 이루어집니다. 스레드 생성, 완료, 간단한 스케줄링, 그리고 세마포어, 락, 조건 변수, 최적화 장벽과 같은 동기화 기본 요소의 코드를 읽고 이해해야 합니다.
주요 포인트는 다음과 같습니다:
주요 디렉토리와 파일은 다음과 같습니다:
build: 컴파일된 바이너리와 오브젝트 파일이 저장되는 디렉토리입니다.devices: 장치 드라이버 관련 코드가 들어 있는 디렉토리입니다.lib: 표준 라이브러리와 커널 내부에서 사용되는 기타 라이브러리 코드가 있는 디렉토리입니다.tests: Pintos의 테스트 케이스가 있는 디렉토리입니다.threads: 스레드 생성, 스케줄링, 동기화를 위한 코드가 들어 있는 핵심 디렉토리입니다.kernel.bin, kernel.o, loader.bin: 커널 바이너리 파일 및 오브젝트 파일입니다.Makefile, Make.vars, targets.mk: 빌드 시스템과 관련된 메이크 파일입니다.init.c, interrupt.c, malloc.c, mmu.c, palloc.c, synch.c, thread.c: 커널의 초기화, 인터럽트 처리, 메모리 관리, 동기화, 스레드 관리를 위한 C 소스 코드 파일입니다.intr-stubs.S, kernel.lds.S, loader.S, start.S: 부트로더 및 초기 설정, 인터럽트 처리를 위한 어셈블리 코드 파일입니다.