본문 바로가기
컴퓨터 사이언스/운영체제

프로그램 메모리

by Chaein.P 2023. 7. 1.

프로그램 실행

  • 프로그램은 File System에 실행 파일 형태로 저장되어있다가 실행시 Physical memory에 load되어 프로세스가 됨
  • Physical memory에는 kernel이 상주하고 있음
  • 하나의 프로세스 데이터는 분산되어 위치한다. 당장 필요한 데이터들은 physical memory에, 필요하지 않은 데이터는 swap area에, code는 File system에 분산 되어있다.

virtual memory

  • 실행 파일은 Physical memory에 로드된 실제 주소와 달리 각각 가상의 Virtual memory address를 갖는다.
  • 프로세스가 실행 중 데이터 주소에 접근할 때 프로세스가 알고 있는 virtual memory 주소와 실제 위치한 physical memory 주소가 다르기 때문에 Address transiation 이라는 주소 변환이 필요하다.

virtual memory 메모리 구성

  • code: 실행 파일의 기계어가 저장된 곳
  • data: 전역 변수, 정적 변수, 프로세스가 종료될 때까지 사라지지 않는 데이터가 저장된 곳
  • stack: 함수 호출 정보, 실행 맥락을 저장하는 곳

커널의 주소 공간

  • 커널도 code, data, stack으로 구성되어 있다.
  • code: 커널 코드
    • 시스템 콜, 인터럽트 처리 코드
    • 자원 관리를 위한 코드
    • 편리한 서비스 제공을 위한 코드
  • data
    • 모든 하드웨어를 관리하는 자료 구조 (CPU, mem, disk)
    • 모든 프로세스를 관리하는 자료 구조 (각 프로세스의 PCB)
  • stack
    • 각 프로세스의 커널 스택 (각 프로세스가 커널을 호출했을 때의 맥락을 저장)

'컴퓨터 사이언스 > 운영체제' 카테고리의 다른 글

프로세스 동기화  (0) 2023.07.14
CPU 스케줄링  (0) 2023.07.10
프로세스와 스레드  (0) 2023.02.26
시스템 구조  (0) 2023.02.26
운영체제 개념  (0) 2023.02.26

댓글