cpu와 메모리


공부한 내용을 복기하기 위해 짧게 정리해둔 요약본입니다 :)



CPU

  • 명령어를 해석하여 실행하는 장치
  • 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 장치
  • 구성요소
    • 산술논리연산장치: 산술 연산과 논리 연산을 계산하는 디지털 회로
    • 제어장치: 입출력 간 통신 제어, 명령어 읽고 해석하여 데이터 처리를 위한 순서 결정
    • 레지스터: cpu안에 있는 매우 빠른 임시기억장치
  • cpu 연산 처리 과정
    • 1.제어장치가 메모리에 계산할 값을 로드 또한 레지스터에도 로드
    • 2.제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령
    • 3.제어장치가 계산된 값을 다시 레지스터에서 메모리로 계산한 값을 저장



메모리

현대 컴퓨터는 폰 노이만 구조 를 가지고 있으며 가장 중요한 특징은 모든 프로그램은 메모리에 올라와야 실행할 수 있다 이다.

  • 작업에 필요한 프로그램과 데이터를 저장하는 저장 장소

메모리에 공간이 할당되는 과정

스크린샷 2024-05-02 오전 11 32 18

  1. code 영역
    • 실행되는 프로그램의 코드가 저장되는 영역이다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가 처리한다
  2. data 영역
    • 프로그램의 전역 번수와 정적 변수가 저장되는 영역이다. 데이터 영역은 프로그램의 시작 될 때 할당되고 프로그램이 종료 될 때 소멸한다
    • BSS, Data영역으로 나뉜다
    • BSS: 초기화 되지 않는 데이터 (RAM에 저장)
    • Data: 초기화 된 데이터 (ROM에 저장) - 전역 변수는 어떤 함수에서도 접근 할 수 있기 때문에 Data로 따로 관리를 해준다
  3. heap 영역
    사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다

  4. stack 영역
    함수의 지역 변수와 매개변수가 저장되는 영역이다. 함수의 호출 될 때 할당되고 함수의 호출이 완료 될 때 소멸한다




참고: https://hongong.hanbit.co.kr/os