ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 실무로 배우는 시스템 성능 최적화 - 파일 시스템 , 메모리
    카테고리 없음 2017. 3. 18. 14:19

    IPC

    : 프로세스간에 데이터를 공유하거나 통신할 때 사용하는 여러 방식을 통칭하는 용어다. 

     

     

    페이징 스페이스

    : 디스크의 일정 공간을 할당해 보조 메모리 용도로 사용하는것을 의미한다.

     

     

     

    가상 메모리

    : 메인 메모리(주 기억장치)와 디시크의 페이징 스페이스(보조기억장칠)를 묶어 하나의 메모리 처럼 동작하게

    함으로써 메인 메모리 한계를 넘는 메모리 사용을 가능하게 하는것

     

     

     

    페이지

    : 운영체제에서 관린하는 메모리 액세스 단위를 의미한다.

     

     

     

    페이징

    : 메인 메모리로부터 한 페이지의 데이터를 보조기억 장치로 복사하거나 보조 기억장치로부터 메인 메모리로 로드하는것을 뜻한다.

     

     

     

     

    스와핑

    : 프로세스 가 사용하는 메모리 일부를 페이징 스페이스로 옮기거나 페이징 스페이스로 부터 메모리로 로드하는것을 의미한다.

     

     

     

     

     

    페이지 부재

    : 페이징 방식의 가상 메모리에서 CPU가 사용하려는 페이지가 메인 메모리에 없는 경우다.

     

     

     

     

    페이지 부재가 발생하는 원인

    : 사용하려는 가상 메모리 주소에 해당하는 페이지를 매핑 테이블에서 주소 변환할때 해당 페이지가 메인 메모리에 없다고 표시될때 페이지 부재가 발생한다.

     

     

     

     

    페이지 인

    : 가상 메모리에서 페이지 부재가 일어났을때 디스크에 있는 프로그램이나 데이터를 메모리로 로드하는 것이다.

     

     

     

    페이지 아웃

    : 가상 메모리에서 부재가 발생했을때 메모리가 부족하면 페이지 스틸러는 기존 메모리를 디스크로 기록하는 페이지 아웃이라는 것을

    수행한다. 기록 대상 메모리가 프로세스의 작업세그먼트 영역에 있는 메모리면 페이징스페이스로 기록하고, 파일에서 읽어들인 내용인 경우

    페이지의 내용이 변경됐으면 디스크의 해당 파일에 기록하고 그렇지 않으면 소멸시킨다.

     

     

     

     프로세스 메모리 영역 분류

     

    텍스트

    : 실행코드 적재 영역. 프로그램 실행 코드, 즉 기계어가 올라가는 영역으로서 애플리케이션 수행 시 임의로 이영역에 데이터를 쓰려고 하면 메모리 액세스 위반 에러가 발생한다

     

     

    데이터

    : 상수와 printf와 같은 곳에서 사용하는 포맷 문자열 같은 것들이 저장되는 읽기 전용 영역과 초기화된 전역변수가 저장되는 읽기/쓰기 가능한 영역으로 나뉜다.

     

     

    BSS

    : 초기화 되지 않은 전역변수나 정적 변수가 저장되는 영역으로 main함수을 실행하기 전에 null(0)로 초기화 된다.

     

     

    네이티브 코드

    : os에 의해 직접적으로 컴파일 되는 코드이다. 메모리 할당시 개발자가 초기화 시켜야 한다.

     

     

     

     JVM GC 관련

     

    Mark

    : 살아있는 객체를 찾아 표시하는 단계

     

     

    Sweep

    : 더는 사용하지 않는 객체를 지우는 단계

     

     

    Compact

    : 마지막으로 메모리 공간을 효율적으로 사용할 수 있도록 살아있는 객체를 모아서 정리하는 단계

     

     

    Minor GC

    : yong 영역에서 발생하는 GC를 의미한다.

     

    Serial GC

    : 1개의 GC스레드로 Mark/Sweep/Compact 작업을 순차적으로 수행한다.

     

    Incremental GC

    : Full GC 동안 애플리케이션이 멈추는 시간을 줄이기 위해 고안된 GC지만 현재는 거의 사용하지 않는 방식이다.

    Incremental GC는 Minor GC 수행 시 Yong영역만 정리하는 것이 아니라 Old영역을 추가로 조금씩 정리함으로써 Full GC가 발생하는

    빈도를 낮춘다. 하지만 Minor GC 수행 빈도가 높고 자원 사용률이 많으면서도 Full GC가 획기적으로 감소하는것도 아니어서 실제 사용빈도는 거의 없다.

     

    Parallel GC

    : Serial GC와 동일한 알고리즘으로 동작하지만 여러개의 스레드로 병렬처리가 이뤄져 성능이 Serial에 비해 우수하다 단 CPU가 여러개일때 효과가 있다.

     

    Parallel old GC

    : parallel GC가 Yong영역에서 적용되는 반면 Parallel old GC는 old영역을 GC할때 병렬로 이뤄지도록 하는것이다.

Designed by Tistory.