추상화(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. 메모리 시스템에 대한 이해를 통해 성능을 향상시킬수 있다.
'CS' 카테고리의 다른 글
[DataStructure] Bloom filter (0) | 2022.08.22 |
---|---|
[DataStructure] B-tree vs LSM-tree (0) | 2022.08.22 |
[OS] 2Q - A low overhead high-performance buffer management replacement algorithm (0) | 2022.08.22 |
[Computer Architecture] - Compilation system (0) | 2022.08.22 |
[Computer Architecture] - Register (0) | 2022.08.22 |