프로세스는 컴퓨터 내에서 실행중인 프로그램을 말한다. 프로그램은 저장공간에 저장되어 있는 코드와 리소스 등이 집합되어 있는 파일을 말하며, 실행하면 프로세스로서 동작하게 된다. 이때 실행을 위해 메모리 할당이 이루어지며 할당된 메모리 공간으로 바이너리 코드가 올라간다. 또한 하나의 프로세스는 최소 1개의 레드를 가진다.
스레드는 어떠한 프로그램 내에서 실행되는 흐름의 단위를 말한다. 하나의 프로세스에서 여러개의 스레드가 메모리를 공유하여 작동할 수 있다. 또한 프로세스 내의 데이터를 스레드끼리 공유하면서 작업을 수행할 수도 있다.
네임 맹글링은 프로그램에서 함수나 변수를 선언했을 때 컴파일러가 선언한 이름을 일정한 규칙으로 변형하는 것을 말하며, 이는 링커가 다른 범위에 있는 같은 이름의 함수와 변수를 구분할 수 있게 해준다.
페이징 기법은 메모리 관리 기법의 일종으로, 가상 메모리를 블럭으로 쪼개어 나누는 방법을 사용한다. 이때 일정한 크기를 가진 블록을 페이지라고 한다. 페이지와 비슷한 프레임과 페이지가 있는데 프레임은 물리 메모리를 일정한 크기로 나눈 블록이고, 페이지는 가상 메모리를 일정한 크기로 나눈 블록이다.
프로ㅗ세스가 실행되면 운영체제는 해당 프로세스의 페이지 테이블을 생성한다. 이때 페이지 테이블은 논리적 주소를 물리적 주소로 변환하는 정보를 가지고 있다. 프로세스가 특정 논리적 주소로 접근하려고 할 때, 페이지 테이블을 참조하여 해당 주소가 어떤 페이지에 있는지 확인하고, 그 페이지가 물리적 메모리 어디에 있는지 확인한다.
세그먼테이션 기법은 메모리를 서로 크기가 다른 논리적인 블록 단위인 세그먼트로 분할하고 메모리를 할당하여 물리 주소를 논리 주소로 변환하는 것을 말한다.
각 세그먼트는 서로 다른 크기를 가질 수 있으며, 논리적 주소에서 세그먼트 식별자와 오프셋을 사용하여 실제 메모리 위치를 찾는다. 프로세스가 세그먼트를 요청하면 운영체제는 해당 세그먼트의 크기에 맞게 메모리 공간을 할당하고, 세그먼트 식별자와 오프셋 정보를 기반으로 실제 물리적 주소를 계산해 프로세스가 접근하고자 하는 데이터에 접근한다.
vector는 표준 라이브러리에 있는 컨테이너로, 사용자가 쉽게 사용하기 위해 정의된 클래스이다. 동적 배열로 구성이 되어 있으며, 각 원소들이 선형적으로 배열되어 있다. 동적으로 원소 추가, 자동 크기 증가 등의 편의성이 높아 많이 쓰인다.
덱은 양쪽 끝에서 삽입과 삭제가 가능한 자료 구조의 한 형태로, 두 개의 포인터를 사용하여 이를 구현한다. 이는 큐와 스택을 합친 형태로 볼 수 있다