본문 바로가기

Operating system

메모리 관리와 소스코드의 번역 & 실행

  • 메모리 주소
    • 1B로 나뉜 메모리의 각 영역은 메모리 주소로 구분하는데 보통 0번지부터 시작
    • CPU는 메모리에 있는 내용을 가져오거나 작업 결과를 메모리에 저장하기 위해 메모리 주소 레지스터 MAR을 사용

 

  • 메모리 관리의 복잡성
    • 모든 프로그램은 메모리에 올라와야 실행 가능
    • 일괄처리 시스템은 메모리 관리가 단순
    • 시분할 시스템에서는 운영체제를 포함한 모든 응용 프로그램이 메모리에 올라와 실행되기 때문에 메모리 관리가 복잡

 

  • 메모리 관리의 이중성
    • 프로세스 입장에서는 메모리를 독차리하려 하고, 메모리 관리 입장에서는 되도록 관리를 효율적으로 하고 싶어함

 

소스코드의 번역과 실행

  • 컴파일러 : 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역한 후 한꺼번에 실행
  • 인터프리터 : 소스코드를 한 행씩 번역하여 실행 - 에러찾기가 어렵고 최적화 하기 힘듬

컴파일러의 목적

  • 오류 발견 : 소스코드에서 오류를 발견하여 실행 시 문제가 없도록 하는 것
  • 코드 최적화 : 소스코드를 간결하게 정리하여 실행 속도를 빠르게 하는 것

 

 

메모리 관리자

  • 메모리 관리를 담당하는 하드웨어

메모리 관리자의 작업

  • 가져오기 작업 : 프로세스와 데이터를 메모리로 가져옴
  • 배치 작업 : 가져온 프로세스와 데이터를 메모리의 어떤 부분에 올려놓을지 결정
  • 재배치 작업 : 꽉 차 있는 메모리에 새로운 프로세스를 가져오기 위해 오래된 프로세스를 내보냄

메모리 관리자의 정책

  • 가져오기 정책 : 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책
  • 배치 정책 : 가져온 프로세스를 메모리의 어떤 위치에 올려놓을지 결정하는 정책
  • 재배치 정책 : 메모리가 꽉 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 정책

 

'Operating system' 카테고리의 다른 글

스왑 swap  (0) 2023.09.18
절대 주소와 상대 주소  (0) 2023.09.18
System Calls  (0) 2023.07.31
교착 상태  (0) 2023.06.05
CPU 스케줄링  (0) 2023.06.04