
- 지금까지 배운거는 아래와 같다. 배치 정책 - 세그멘테이션, 페이징, 페이지드 세그멘테이션 가져오기 정책 - 디맨드 페이징 - 이번 글에서는 메모리가 꽉 찼을 때 어떤 페이지를 HDD 스왑 영역으로 보낼지 결정하는 페이지 교체정책을 알아보자 ● 기본 개념 - 프로세스는 데이터 접근을 위해 메모리를 참조하는데 이때 원하는 데이터가 메모리에 없으면 Page Fault가 발생한다. - Page Fault가 발생하면 해당 페이지를 스왑 영역에서 메모리로 불러와야 하는데 이때 메모리가 모두 차서 공간이 없다면 메모리에 있는 페이지 중 하나를 선택해서 스왑 영역으로 옮겨야 한다. ● 페이지 교체정책의 종류 - 메모리에 있는 페이지를 스왑 영역으로 옮길 때 어떤 페이지를 옮길지 결정하는 정책을 페이지 교체정책이라..

● 디맨드 페이징 - 프로세스가 실행될 때 프로세스를 이루고 있는 코드 영역, 데이터 영역, 힙 영역, 스택 영역 등과 같은 모듈들이 모두 메모리에 올라와 실행된다고 생각할 수 있다. - 그러나 실제로는 모든 모듈이 메모리에 올라오는 것은 아니고 필요한 모듈만 올라와서 실행된다. - 도널드 커누스는 프로그램이 실행될 때 90%의 시간이 10%의 코드에서 보내진다는 법칙을 얘기했다. - 이를 지역성 이론이라고 하는데 지역성에는 2가지가 있다. 1. 공간의 지역성 : 현재 위치에서 가까운 데이터에 접근할 확률이 높다. 2. 시간의 지역성 : 최근 접근했던 데이터가 오래 전에 접근했던 데이터보다 접근할 확률이 높다. - 지역성 이론은 조만간 쓰일 데이터만 메모리에 올리고 당분간 필요하지 않을 것 같은 데이터는..

● 페이징 - 고정 분할 방식을 이용한 페이징에 대해 알아보자 - 세그멘테이션 기법(가변 분할 방식, 연속 메모리 할당)은 외부단편화 문제가 있기 때문에 이를 해결하기 위해 페이징 기법이 고안되었다.(조각 모음은 오버헤드가 너무 크다.) - 페이징은 메모리를 할당할 때 미리 정해진 크기의 페이지로 나눈다. - 모든 페이지의 크기가 같기 때문에 관리가 쉬우며 일정한 크기로 나누었기 때문에 외부단편화 현상이 발생하지 않는다. (대신 내부단편화 발생 = 공간 낭비) - 논리주소공간은 사용자와 프로세스가 바라보는 주소공간이고 물리주소공간은 실제 메모리에서 사용되는 주소공간이다. - 페이징에서 논리주소공간은 일정한 크기로 균일하게 나뉘며 이를 페이지라고 부른다. - 물리주소공간도 페이지의 크기와 동일하게 나뉘는데..
- Total
- Today
- Yesterday
- 자료구조
- Phaser3
- 코테
- nosql
- node.js
- Phaser
- MongoDB
- SQL
- jpa
- Java8
- 프로세스
- 메모리
- db
- java
- DART
- 알고리즘
- Advanced Stream
- Stream
- MySQL
- 운영체제
- 빅데이터
- spring
- 프로그래머스
- OS
- SpringBoot
- Spring Boot
- API
- 빅데이터 분석기사
- git
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |