diff --git a/README.md b/README.md
index b22b127fedff42d22fecf32262ed190e0b38351d..06a4dc68eb1eeb21c3e3811450dab7267ccf8d48 100644
--- a/README.md
+++ b/README.md
@@ -1518,8 +1518,126 @@ int main()
 
 ## **Lecture 10**
 
-###
-
+### Linux Command
+1. ulimit
+    * 프로세스의 자원 한도를 설정하는 명령
+    * Soft : 새로운 프로그램을 생성하면 기본으로 적용되는 한도
+    * hard : 소프트한도에서 최대로 늘릴 수 있는 한도
+    * 옵션
+        * -a : 모든 제한 사항을 보여줌
+        * -c : 최대 코어 파일 사이즈 설정
+        * -d : 프로세스 데이터 세그먼트의 최대 크기
+        * -f : shell에 의해 만들어질 수 있는 파일의 최대 크기
+        * -s : 최대 스택 크기
+        * -p : 파이프 크기
+        * -n : 오픈 파일의 최대수
+        * -u : 오픈파일의 최대수
+        * -v : 최대 가상메모리의 양
+        * -S : soft 한도
+        * -H : hard 한도
+
+### 숫자의 표현
+![float1](./image/float1.jpg)
+
+### 숫자의 표현 - 2's complement
+![float2](./image/float2.jpg)
+
+### 숫자의 표현 float (IEEE 754)
+* float
+    * sign 1 bit, exp 8 bits (bias = 127), mantissa or fraction 23 bits
+![float](./image/float.jpg)
+    * 의미하는 값은 (sign, exponent, fraction을 정수라고 하면)
+        * (sign * -2 + 1) * (1.0 + fraction * 2^(-23)) * 2^(exp-127)
+
+* Others
+    * half - sign 1, exp 5, fraction 11
+    * double - sign 1, exp 11, fraction 53
+    * quadruple - sign 1, exp 15, fraction 113
+
+### 숫자의 표현 - fixed FX_S03_04 (Q = 4)
+![float3](./image/float3.jpg)
+* floating point에 비해서 정밀도가 떨어짐
+
+### 사칙연산
+* 덧셈 / 뺄셈
+    * v = v_a + v_b = iv_a*2^(-q) + iv_b*2^(-q) = (iv_a + iv_b)*2^(-q)
+    * iv = iv_a + iv_b
+
+* 곱셈
+    * v = v_a * v_b = iv_a*2^(-q) * iv_b*2^(-q) = (iv_a * iv_b)*2^(-2q)
+    * iv = iv_a * iv_b * 2^(-q) = v * 2^(q)
+
+* 나눗셈
+    * v = v_a / v_b = iv_a*2^(-q) / iv_b*2^(-q) = (iv_a / iv_b)
+    * iv = iv_a / iv_b * 2^(-q)
+    * iv = iv_a * 2^(-q) / iv_b
+
+### Project S17.14
+* s : 부호 비트 -> signed
+* 17 : 소수점 위 비트 수
+* 14 : 소수점 아래 비트수
+* 실제 구현은 int 혹은 long long을 사용하여 구현
+* 실제 값은 val / 2^14
+
+* 예 : 
+```
+typedef int fx_s17_14;
+typedef fx_s17_14 fixed;
+```
+
+* ``` #define FX_S17_14 ((1<<16)|(17<<8)|(14)) //69902 ```
+
+### How to compile for 32bits in 64bits
+* 64 bits compile
+    * ``` gcc -pg test.c -m64 ```
+* 32 bits compile
+    * ``` gcc -pg test.c -m32 ``` 
+
+### What makes different performance
+* Golden Rule
+    * Speed - CPU > Memory > Storage > IO > Human
+    * Register > Cache(1st, 2nd) > Memory > ...
+    * Locality
+    * Pipeline
+        * 구성요소
+        1. 빌드(Build) - 애플리케이션을 컴파일하는 단계
+        2. 테스트(Test) - 코드를 테스트하는 단계
+        3. 릴리스(Release) - 애플리케이션을 리포지토리에 제공하는 단계
+        4. 배포(Deploy) - 코드를 프로덕션에 배포하는 단계
+        5. 검증 및 컴플라이언스(Validation & compliance)
+            * 빌드 검증 단계는 해당 조직의 필요에 따라 결정 
+            * Clair와 같은 이미지 보안 스캔 툴을 사용하여 알려진 취약점(CVE)과 비교하는 방법으로 이미지의 품질을 보장
+        * pipelining
+            * 한 functional unit을 사용하는 동안 다른 unit은 일하지 않음
+            * unit이 명령어를 처리하는 동안 다음 명령어를 받아와서 처리하는 방식
+            * 명령어 하나를 처리하는데 걸리는 시간은 그대로지만 throughput(유닛이 일정한 시간에 처리하는 일의 양)을 늘려 더 빨라보이게 만듦 + 실제로 빨라짐
+    * Error
+
+* FLOP(Floating Point Operation)
+    * 컴퓨터의 성능을 수치로 나타낼 때 주로 사용되는 단위
+    * 초당 부동소수점 연산이라는 의미로 컴퓨터가 1초동안 수행할 수 있는 부동소수점 연산의 횟수가 기준
+    * 연산식은 FLOPS = cores x clock x (FLOPS/cycle)
+
+### ARM Compile (optimization)
+![lec10-8](./Image/lec10-8.jpeg)
+* 숫자가 높아질수록 세부적인 최적화
+* 최적화 후 코드가 변경되기 때문에 디버깅 불가
+
+### gprof - GNU Profiling
+* gprof - display call graph profile data 
+* Compile with -pg option
+    * ``` cc -pg -Wall test.c -o test```
+* Execute program and generate gmon.out file
+    * ```test```
+* Execute gprof
+    * ```gprof test gmon.out```
+* 사진추가
+    * 첫번째 열을 보면 총 걸린 시간의 % 확인 가능
+    * self를 통해 함수 안에서 발생한 연산 시간 확인 가능
+    * gprof할 때 충분한 call이 필요하고 함수 호출은 굉장히 비쌈
+    * 10~20%의 오차가 항상 발생
+    * 사진추가
+        * diff를 통해 비교해 본 결과 64bit가 32bit 보다 빠르다는 것을 확인 가능(사진은 32bits)
 
 ## **Lecture 11**