시스템의 메모리
※메모리의 기본 구조
※스택
-후입선출 (LIFO) 방식에 의해 정보를 관리
-Top이라고 불리는 스택의 끝부분에서 데이터의 삽입과 삭제가 발생
-가장 나중에 삽입된 정보가 가장 먼저 읽힘
※힙(Heap)
-프로그램의 실행 중 필요한 기억장소를 할당하기 위해 운영체제에 예약되어 있는 기억장소 영역
-데이터를 저장하기 위해 기억 장소를 요청하면 운영체제는 힙에 존재하는 기억장소를 프로그램에 할당
-기억 장치가 더 이상 필요 없으면 할당 받앗던 기억장소를 운영체제에 반납, 운영체제는 반납된 기억장소를 다시 힙에 돌려준다.
-힙에 대한 기억 장소는 포인터를 통해 동적으로 할당되거나 반환
-연결 리스트, 트리, 그래프처럼 동적인 특성이 있는 데이터 구조에서 널리 사용
※데이터 세그먼트
-초기화된 외부 변수나 static 변수 등이 저장되는 영역
※BSS 세그먼트
-초기화 되지 않은 데이터 세그먼트
-프로그램이 실행될 때 0이나 NULL 포인터로 초기화
-외부 변수나 static 변수 중 초기화 되지 않은 변수들이 정의될 때 저장
※텍스트 세그먼트
-CPU에 의해 실행되는 머신 코드가 있는 영역
-> 프로그램 = 텍스트 세그먼트 + 데이터세그 먼트
※실제모드 (Real mode)
-8086 CPU에서 사용되던 동작 모드
-20비트 주소 버스를 사용 위해 16비트 레지스터 사용
-총 1MB(220 = 1,048,567)의 메모리 사용 가능
-20비트 주소를 나타내기 위해 세그먼트 레지스터를 도입
※보호 모드
-80286부터 도입된 보호 모드는 32비트 CPU 80386에 완성
-32비트 주소 버스를 통해 4GB의 메모리를 사용 가능
-세그먼테이션과 페이징 이용 메모리 관리