본문 바로가기
반응형

{ Computer Science }/Operating System16

가비지 컬렉션(Garbage Collection, GC) 알아보기 GC란? Java의 경우, 유효하지 않은 메모리인 가비지를 JVM의 가비지 컬렉터가 자동으로 메모리에서 해제시켜준다. GC 기본 동작 과정 1. Stop the world 가비지 컬렉션 실행을 위해 어플리케이션이 일시 정지가 되는 상태. GC를 수행하는 스레드를 제외한 모든 스레드는 동작을 멈춘다. 2. Mark and Sweep 사용되는 메모리와 사용되지 않는 메모리를 식별(Mark)하고 사용하지 않는 메모리를 힙으로부터 해제(Sweep) Minor GC와 Major GC 힙영역을 물리적으로 Young 영역과 Old 영역으로 나눈다. - Young 영역(Young Generation) 새롭게 생성된 객체가 할당되는 영역 대부분의 객체가 금방 Unreachable 상태가 되기 때문에, 많은 객체가 You.. 2022. 4. 14.
[운영체제] 2단계 페이징 테이블 기법 알아보기 페이징 기법 일반적인 페이징 기법에서의 주소 변환은 아래 그림과 같다. 논리적 주소에서 p는 페이지번호, d는 페이지 오프셋을 의미한다. 하지만 페이징 기법은 물리적 메모리 낭비가 심하다는 단점을 가지고 있다. 32비트 주소 체계 = 2의 32승 = 4G의 주소 공간을 가진 프로그램 지원 가능 이때 총 필요 용량 = 4G * 1바이트 = 4GB 프로그램의 필요 용량 4GB 1개 페이지가 약 4KB일 때, 4GB / 4KB = 1M개의 페이지가 필요. 즉 페이지 테이블에는 1M개 엔트리가 필요. 엔트리 하나 당 4B를 차지한다면, 페이지 테이블의 용량은 4MB가 됨. 헉 4MB나?? => 페이지 테이블이 메모리의 상당 부분을 차지하게 된다. 그래서 2단계 페이징 테이블 기법이 고안되었다. 2단계 페이징 테.. 2022. 4. 1.
[주제 별 탐구] 프로세스와 스레드 [프로세스의 의미] 프로세스가 가지는 의미는 다양하지만 일반적인 프로세스의 정의는 '실행중인 프로그램'이다. 프로그램은 컴파일한 코드와 초기화 전역변수, 문자열과 문자열 상수 등 정적인 데이터를 포함하는 정적 개체다. 디스크에 있던 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태가 되면 프로세스가 되는 것이다. 이는 자신만의 메모리 공간이 있다는 뜻이 된다. 프로세스는 프로그램 카운터나 레지스터처럼 현재 어떤 자원을 사용하는지 관련 정보가 들어 있는 동적 개체이다. [프로세스의 일반적인 메모리 구조] - 스택 데이터를 일시적으로 저장하는 영역. 지역 변수에 사용하고, 변수가 범위 밖으로 이동하면 공간을 해제한다. 호출한 함수의 반환 주소, 반환 값, 매개변수 등에 사용하고, 함수를 호출할 수록 .. 2022. 2. 21.
[운영체제OS]9(完). 디스크 관리(구조, 스케줄링, 저전력 관리) ******************************** ##이 글은 제가 공부하고 있는 책을 요약해놓은 것이므로 본문 내용만 봐선 이해가 어려울 수 있습니다. 목차 1. 디스크의 구조 2. 디스크 스케줄링 3. 다중 디스크 환경에서의 스케줄링 4. 디스크의 저전력 관리 ******************************** 디스크: 컴퓨터 시스템의 대표적인 2차 저장장치. 메모리는 휘발성 저장장치이므로 전원이 나가면 내용이 모두 사라지기 때문에 작업의 결과를 영구히 보관하기 위해서는 디스크 같은 2차 저장장치를 이용해야 한다. 1. 디스크의 구조 디스크 외부에서는 디스크를 일정한 크기의 저장공간들로 이루어진 1차원 배열처럼 취급하게 됨. 이 일정크기의 저장공간을 논리블록(logical block).. 2021. 3. 15.
[운영체제OS]8. 가상메모리(페이징, 페이지 교체, 스레싱) ******************************** ##이 글은 제가 공부하고 있는 책을 요약해놓은 것이므로 본문 내용만 봐선 이해가 어려울 수 있습니다. 목차 1. 요구 페이징 2. 페이지 교체 3. 페이지 프레임의 할당 4. 전역교체와 지역교체 5. 스레싱 ******************************** 메모리의 연장 공간으로 디스크의 스왑 영역이 사용될 수 있기 때문에 프로그램 입장에서는 물리적 메모리 크기에 대한 제약을 생각할 필요가 없어진다. 나아가 운영체제는 프로그램이 물리적 메모리를 고려할 필요 없이 자기 자신만이 메모리를 사용하는 것처럼 가정해 프로그램하는 것을 지원. 이렇게 되면 프로그램은 0번지부터 시작하는 자기 자신만의 메모리 주소 공간을 가정할 수 있는데, 이 메모.. 2021. 3. 12.
[운영체제OS]7. 메모리 관리 -2(페이징 기법, 세그먼테이션) ******************************** ##이 글은 제가 공부하고 있는 책을 요약해놓은 것이므로 본문 내용만 봐선 이해가 어려울 수 있습니다. 목차 4. 페이징 기법 5. 세그먼테이션 6. 페이지드 세그먼테이션 ******************************** 4. 페이징 기법 페이징(paging) 기법: 프로세스의 주소 공간을 동일한 크기의 페이지 단위로 나누어 물리적 메모리의 서로 다른 위치에 페이지들을 저장. 각 프로세스 주소 공간 전체를 메모리에 한꺼번에 올리지 않고 일부를 백킹스토어(스왑영역), 일부를 물리적 메모리에 혼재시키는 것이 가능. 물리적 메모리를 페이지와 동일한 크기의 프레임(frame)으로 미리 나누어둠. 빈 프레임이 있으면 어느 위치든 사용될 수 있기때.. 2021. 3. 6.
반응형