diff --git a/PROJECT1 : THREADS/1. Intoduction.md b/PROJECT1 : THREADS/1. Intoduction.md
index 823ecee685760158e2a7d99297099c05bc6cf815..8e3f8d83f3f31013d028a08ce5c9eb43b54de6c1 100644
--- a/PROJECT1 : THREADS/1. Intoduction.md	
+++ b/PROJECT1 : THREADS/1. Intoduction.md	
@@ -27,113 +27,148 @@ Warning: Pintos에서는 각 스레드에 4kB 미만의 작은, 고정된 실행
 ### threads 코드
 
 •`loader.S`, `loader.h`
+
 커널 로더. 512바이트의 코드와 데이터로 구성되어 PC BIOS가 이를 메모리에 로드하고, 이후 디스크에서 커널을 찾아 메모리에 로드한 후 `start.S`의 `bootstrap()`으로 점프합니다. 이 코드를 수정하거나 살펴볼 필요는 없습니다. `start.S`는 메모리 보호 설정과 64비트 긴 모드 전환을 위한 기본 설정 코드입니다. loader와 달리 이 코드는 실제로 커널의 일부입니다.
 
-•kernel.lds.S
+•`kernel.lds.S`
+
 커널을 링크하는 데 사용되는 링크 스크립트입니다. 커널의 로드 주소를 설정하고, `start.S`가 커널 이미지의 시작 부분 근처에 배치합니다. 이 코드를 수정하거나 살펴볼 필요는 없지만, 혹시 관심이 있다면 참고할 수 있도록 여기에 포함되어 있습니다.
 
-•init.c, init.h
+•`init.c`, `init.h`
+
 커널 초기화 코드로, 커널의 `메인 프로그램`인 `main()`을 포함합니다. 적어도 `main()`을 살펴보아 어떤 초기화가 이루어지는지 확인하십시오. 필요하다면 여기에 여러분만의 초기화 코드를 추가할 수도 있습니다.
 
-•thread.c, thread.h
+•`thread.c`, `thread.h`
+
 기본적인 스레드 지원을 제공합니다. 여러분의 작업 대부분은 이 파일에서 이루어질 것입니다. `thread.h`는 구조체 스레드를 정의하며, 이는 네 가지 프로젝트 모두에서 수정하게 될 가능성이 높습니다. 자세한 내용은 `Threads` 섹션을 참고하십시오.
 
-•palloc.c, palloc.h
+•`palloc.c`, `palloc.h`
+
 페이지 할당기로, 4 kB 페이지 단위로 시스템 메모리를 할당합니다. 자세한 내용은 `Page Allocator`를 참고하십시오.
 
-•malloc.c, malloc.h
+•`malloc.c`, `malloc.h`
+
 커널용 `malloc()`과 `free()`의 간단한 구현입니다. 자세한 내용은 `Block Allocator`를 참고하십시오.
 
-•interrupt.c, interrupt.h
+•`interrupt.c`, `interrupt.h`
+
 기본적인 인터럽트 처리 및 인터럽트를 켜고 끄는 함수들을 제공합니다.
 
-•intr-stubs.S, intr-stubs.h
+•`intr-stubs.S`, `intr-stubs.h`
+
 낮은 레벨 인터럽트 처리를 위한 어셈블리 코드입니다.
 
-•synch.c, synch.h
+•`synch.c`, `synch.h`
+
 기본 동기화 도구: 세마포어(semaphores), 락(locks), 조건 변수(condition variables), 최적화 배리어(optimization barriers). 이들은 네 가지 프로젝트 모두에서 동기화를 위해 사용해야 합니다. 자세한 내용은 `Synchronization`을 참고하십시오.
 
-•mmu.c, mmu.h
+•`mmu.c`, `mmu.h`
+
 x86-64 페이지 테이블 작업을 위한 함수입니다. lab1 이후에 이 파일을 자세히 살펴보게 될 것입니다.
 
-•io.h
+•`io.h`
+
 I/O 포트 접근을 위한 함수들입니다. 주로 `devices` 디렉토리의 소스 코드에서 사용되며, 여러분은 이 코드를 수정할 필요가 없습니다.
 
-•vaddr.h, pte.h
+•`vaddr.h`, `pte.h`
+
 가상 주소 및 페이지 테이블 항목을 다루기 위한 함수와 매크로입니다. 프로젝트 3에서 더 중요해질 내용이므로, 지금은 신경쓰지 않아도 괜찮습니다.
 
-•flags.h
+•`flags.h`
+
 x86-64 `flags` 레지스터의 몇 가지 비트를 정의하는 매크로입니다. 거의 신경쓰지 않아도 됩니다.
 
+
 ### devices 코드
 
 기본 스레드 기반 커널에는 `devices` 디렉토리에 다음 파일들도 포함됩니다:
 
-•timer.c, timer.h
+•`timer.c`, `timer.h`
+
 시스템 타이머로, 기본적으로 초당 100번 ticks을 생성합니다. 이 프로젝트에서 이 코드를 수정해야 합니다.
 
-•vga.c, vga.h
+•`vga.c`, `vga.h`
+
 VGA 디스플레이 드라이버. 화면에 텍스트를 출력하는 역할을 합니다. 이 코드를 직접 볼 필요는 없습니다. `printf()` 함수가 VGA 디스플레이 드라이버를 호출하므로, 이 코드를 직접 호출할 이유는 거의 없습니다.
 
-•serial.c, serial.h
+•`serial.c`, `serial.h`
+
 직렬 포트 드라이버. printf()가 이 코드를 대신 호출하므로, 직접 호출할 필요는 없습니다. 이 코드는 직렬 입력을 처리하며, 이를 입력 계층(아래 참조)에 전달합니다.
 
-•block.c, block.h
+•`block.c`, `block.h`
+
 블록 디바이스를 위한 추상화 계층으로, 고정 크기 블록 배열로 구성된 랜덤 액세스 디스크 유사 장치입니다. Pintos는 기본적으로 두 가지 유형의 블록 디바이스: IDE 디스크와 파티션을 지원합니다. 블록 디바이스는 프로젝트 2까지는 실제로 사용되지 않습니다.
 
-•ide.c, ide.h
+•`ide.c`, `ide.h`
+
 최대 4개의 IDE 디스크에서 섹터를 읽고 쓰는 것을 지원합니다.
 
-•partition.c, partition.h
+•`partition.c`, `partition.h`
+
 디스크의 파티션 구조를 이해하여 하나의 디스크를 여러 독립적인 영역(파티션)으로 나눌 수 있도록 합니다.
 
-•kbd.c, kbd.h
+•`kbd.c`, `kbd.h`
+
 키보드 드라이버. 키 입력을 처리하고 이를 입력 계층(아래 참조)으로 전달합니다.
 
-•input.c, input.h
+•`input.c`, `input.h`
+
 입력 계층. 키보드나 직렬 드라이버에서 전달된 입력 문자를 큐에 저장합니다.
 
-•intq.c, intq.h
+•`intq.c`, `intq.h`
+
 인터럽트 큐로, 커널 스레드와 인터럽트 핸들러가 모두 접근하고자 하는 순환 큐를 관리합니다. 키보드와 직렬 드라이버에서 사용됩니다.
 
-•rtc.c, rtc.h
+•`rtc.c`, `rtc.h`
+
 실시간 시계 드라이버로, 커널이 현재 날짜와 시간을 확인할 수 있도록 합니다. 기본적으로, 이는 thread/init.c에서 난수 생성기의 초기 시드를 선택하기 위해 사용됩니다.
 
-•speaker.c, speaker.h
+•`speaker.c`, `speaker.h`
+
 PC 스피커에서 톤을 생성할 수 있는 드라이버입니다.
 
-•pit.c, pit.h
+•`pit.c`, `pit.h`
+
 8254 프로그래밍 가능 인터럽트 타이머(PIT)를 구성하는 코드입니다. 이 코드는 각 디바이스가 PIT의 출력 채널 중 하나를 사용하기 때문에 `devices/timer.c`와 `devices/speaker.c` 모두에서 사용됩니다.
 
 ### lib 코드
 
 마지막으로 `lib`와 `lib/kernel`에는 유용한 라이브러리 루틴이 들어 있습니다. (`lib/user`는 프로젝트 2부터 사용자 프로그램에서 사용되지만 커널의 일부는 아닙니다.) 다음은 몇 가지 자세한 내용 입니다:
 
-•ctype.h, inttypes.h, limits.h, stdarg.h, stdbool.h, stddef.h, stdint.h, stdio.c, stdio.h, stdlib.c, stdlib.h, string.c, string.h
+•`ctype.h`, `inttypes.h`, `limits.h`, `stdarg.h`, `stdbool.h`, `stddef.h`, `stdint.h`, `stdio.c`, `stdio.h`, `stdlib.c`, `stdlib.h`, `string.c`, `string.h`
+
 표준 C 라이브러리의 하위 집합입니다.
 
-•debug.c, debug.h
+•`debug.c`, `debug.h`
+
 디버깅을 돕는 함수와 매크로입니다. 자세한 내용은 `Debugging Tools`을을 참조하세요.
 
-•random.c, random.h
+•`random.c`, `random.h`
+
 의사난수 생성기(pseudorandom number generator, PRNG)입니다. 실제 난수 값의 시퀀스는 Pintos 실행마다 다르지 않습니다.
 
-•round.h
+•`round.h`
+
 반올림을 위한 매크로입니다.
 
-•syscall-nr.h
+•`syscall-nr.h`
+
 시스템 호출 번호입니다. 프로젝트 2까지는 사용되지 않습니다.
 
-•kernel/list.c, kernel/list.h
+•`kernel/list.c`, `kernel/list.h`
+
 이중 연결 리스트 구현입니다. Pintos 코드 전반에 사용되며, 프로젝트 1에서 직접 사용하게 될 것입니다. 시작하기 전에 이 코드를 훑어보는 것이 좋습니다(특히 헤더 파일의 주석).
 
-•kernel/bitmap.c, kernel/bitmap.h
+•`kernel/bitmap.c`, `kernel/bitmap.h`
+
 비트맵 구현. 원한다면 코드에서 사용할 수 있지만, 프로젝트 1에서는 필요하지 않을 것입니다.
 
-•kernel/hash.c, kernel/hash.h
-해시 테이블 구현. 프로젝트 3에 유용할 것 같습니다.
+•`kernel/hash.c`, `kernel/hash.h`
+
+해시 테이블 구현. 프로젝트 3에서서 유용할 것 같습니다.
+
+•`kernel/console.c`, `kernel/console.h`, `kernel/stdio.h`
 
-•kernel/console.c, kernel/console.h, kernel/stdio.h
 `printf()` 및 몇 가지 다른 함수를 구현합니다.
 
 ## 동기화