80 x 86 시스템 CPU와 레지스터
80 x 86 시스템 CPU의 구조
연산장치
- 연산장치는 CPU의 핵심 부분 중 하나
- 산술과 논리 연산을 수행하는 연산 회로 집합으로 구성
제어장치
- 제어장치는 입력, 출력, 기억, 연산 장치를 제어하고 감시
- 주기억 장치에 저장된 명령을 차례로 해독하여 연산 장치로 보내 처리되도록 지시
레지스터의 종류와 기능
레지스터란?
- 처리 중인 데이터나 처리 결과를 임시 보관하는 CPU내의 기억 장치
범용 레지스터
- 연산 장치가 수행한 계산 결과의 임시 저장, 산술 및 논리 연산, 주소 색인 등의 목적으로 사용될 수 있는 레지스터
- EAX, EBX, ECX, EDX
세그먼트 레지스터
- 프로그램에 정의된 메모리상의 특정 영역
- 코드, 데이터, 스택 등을 포함
- CS, DS, SS, ES, FS, GS
포인터 레지스터
- 프로그램 실행 과정에서 사용되는 주요 메모리 주소값을 저장
- EBP, ESP, EIP
인덱스 레지스터
- 메모리의 한 영역(Source)에서 다른 영역(Destination)으로 데이터를 연속적으로 복사할 때 사용
- EDI, ESI
플래그 레지스터
- 32비트로, 컴퓨터의 다양한 상태를 나타내는 비트 포함
- 상태 플래그, 제어 플래그, 시스템 플래그로 구성
- EFLAGS
80 x 86 시스템의 메모리
메모리의 기본 구조
스택
- 후입 선출 방식에 의해 정보를 관리
- Top이라고 불리는 스택의 끝 부분에서 데이터의 삽입과 삭제가 발생
- 가장 나중에 삽입된 정보가 가장 먼저 읽힘
- 함수 종료와 동시에 사라지는 자동 변수가 저장 됨
- 또한 함수가 호출될 때 함수 내 로컬 변수 등이 저장되는 곳임
힙
- 프로그램의 실행 중 필요한 기억 장소를 할당하기 위해 운영체제에 예약되어 있는 기억 장소 영역
- 데이터를 저장하기 위해 기억 장소를 요청하면 운영체제는 힙에 존재하는 기억 장소를 프로그램에 할당
- 기억 장치가 더 이상 필요 없으면 할당 받았던 기억 장소를 운영체제에 반납, 운영체제에서는 반납된 기억 장소를 다시 힙에 돌려줌
- 힙에 대한 기억 장소는 포인터를 통해 동적으로 할당되거나 반환
- 연결 리스트, 트리, 그래프처럼 동적인 특성이 있는 데이터 구조에서 널리 사용
데이터
데이터 세그먼트
- 초기화된 외부 변수나 static 변수 등이 저장되는 영역
- 보통 텍스트 세그먼트와 데이터 세그먼트 영역을 합쳐 프로그램이라 함
BSS 세그먼트
- 초기화 되지 않은 데이터 세그먼트라고 불림
- 프로그램이 실행될 때 0이나 NULL 포인터로 초기화
- 외부 변수나 static 변수 중 초기화 되지 않은 변수들이 정의될 때 저장
텍스트
- CPU에 의해 실행되는 머신 코드가 있는 영역
- EIP가 다음 실행하는 명령을 가리킴
'수업 > 시스템네트워크보안' 카테고리의 다른 글
[시스템네트워크보안] 기말고사정리(운영체제에 대한 이해) (0) | 2017.12.18 |
---|
댓글