추상화(abstraction)는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다.

ISA(Instruction Set Architecture)

ISA는 프로세서가 인식해서 기능을 이해하고 실행할 수 있는 명령어집합을 말한다. 하드웨어의 추상화로 하드웨어와 소프트웨어 사이의 인터페이스를 정의하며 프로세서의 제조회사마다 ISA가 다르다. 주로 다루게 될 ISA는 Intel사의 x86-64 아키텍쳐의 ISA이다.

 

추상화에 대한 이해가 필요한 이유

1. 수학의 일반적인 공리들이 맞지 않는 경우가 있다. 

 자료형의 범위를 넘어가는 값에서 overflow가 발생하여 잘못된 값이 저장된다.

예를 들어 int x,. x = 50000 * 50000 일때 overflow 가 발생한다.

 

2. 어셈블리에 대해 알아야 한다

- C, C++와 같은 고급언어들이 저수준에서 버그를 발생시킬수 있기때문

- 컴파일러에서 해결하지 못하는 프로그램의 최적화를 위해

- 시스템 소프트웨어를 실행시키기 위해

- 멀웨어를 방지하기위해

 

3. 메모리 referencing bug

 C, C++은 Memory Protection을 제공하지 않기 때문에 범위를 정확히 지정해 주지 않으면 Segmentation fault와 같은 버그가 발생할수 있다. 

 

4. 메모리 시스템에 대한 이해를 통해 성능을 향상시킬수 있다.

 

 

+ Recent posts