분류 전체보기

이번 포스팅에서는 Page table에 대해 좀 더 구체적으로 살펴보겠습니다. 1. Memory Protection 이전 포스팅에서 Page Table에는 Entry와 물리적 주소 정보로 구성된다고 했습니다. 그런데 이 두 가지뿐 아니라 Valid-Invalid bit와 Protection bit이라는 부가적인 bit가 페이지 테이블의 Entry마다 존재합니다. (1) Valid - Invalid Bit in a Page Table  Valid-Invalid bit은 정말 엔트리가 사용되는지 여부를 나타내기 위한 것입니다. 테이블이라는 자료 구조상 인덱스로 접근하기 때문에 프로그램에 주소 공간이 가질 수 있는 최대 크기만큼 페이지 테이블 Entry가 있어야 합니다.  위 그림에서는 논리적 메모리가 Pa..
· Java/BOJ
문제 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 소스코드 import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; public class Main { static int N,M,X; static int INF = Integer.MAX_VALUE; static int[] ..
이전 포스팅에서 연속 할당에 대해 살펴보았습니다. 연속 할당 방법은 프로그램이 메모리에 올라갈 때 통째로 메모리에 올라가는 방식입니다. 각각의 프로세스가 메모리의 연속적인 공간에 적재됩니다.   반면 불연속 할당은 프로그램을 구성하는 주소 공간을 같은 크기의 단위(페이지)로 잘개 쪼개서 페이지 단위로 메모리에 올리는 방식입니다. 즉 하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있습니다.  불연속 할당에는 Paging 기법과 Segmentation기법, Page Segmentation기법 등이 있습니다.    이번 포스팅에서는 불연속 할당의 Paging 기법에 대해 살펴보겠습니다.   1. Paging (1) Paging 기법이란? Paging 기법은 프로그램을 구성하는 논리적 메모리(가상 ..
이번 포스팅부터는 물리적인 메모리를 어떻게 관리할 것인가에 대해 살펴보겠습니다. 물리적 메모리는 일반적으로 두 영역으로 나뉘어 사용됩니다.낮은 주소 영역에는 운영체제 커널이 항상 상주해있고, 높은 주소 영역에는 사용자 프로그램이 있습니다.   사용자 프로그램이 올라간 영역을 관리하는 방법은 크게 두 가지로 나누어 볼 수 있습니다.  첫 번째는 연속 할당(Contiguous allocation)으로 프로그램이 메모리에 올라갈 때 통째로 메모리에 올라가는 방식입니다. 즉 각각의 프로세스가 메모리의 연속적인 공간에 적재되는 것입니다.  두 번째는 불연속 할당(Noncontiguous allocation)으로 프로그램을 구성하는 주소 공간을 같은 크기의 페이지 단위로 쪼개서 페이지 단위로 메모리에 올리는 방식입..
1. 동적 로딩(Dynamic loading) 프로그램을 메모리에 동적으로 올린다는 것은 프로그램 전체를 메모리에 미리 다 올리는 것이 아니라, 필요할 때마다 해당하는 루틴을 메모리에 올리는 것을 말합니다.  프로그램이 실행될 때 프로그램 전체가 균일하게 사용되는 것이 아니라, 자주 사용되는 부분은 한정적이고, 오류 처리 루틴과 같이 가끔씩 사용되는 많은 양의 코드가 있습니다. 그래서 프로그램이 실행될 때마다 이것을 전부 메모리에 올리는 것은 비효율적이기 때문에, 미리 올려놓는 것이 아닌 필요할 때마다 메모리에 올리는 방식을 동적 로딩이라고 합니다.    여기서 주의해야할 개념이 한 가지 있습니다. 이후에 다룰 Paging 기법인데, Paging은 물리적인 메모리를 고정 크기의 페이지로 나누어 프로그램 ..
메모리는 주소를 통해 접근하는 매체입니다. 그렇기 때문에 메모리를 찾아가기 위해서 메모리별로 주소가 매겨집니다. 이 주소는 크게 2가지로 나뉩니다. 1.  논리적(Logical) 주소  vs 물리적(Physical) 주소 논리적 주소 프로그램이 실행되면 프로그램 별로 독자적인 주소 공간이 형성됩니다. 이처럼 프로그램마다 가지고 있는 주소를 논리적 주소(가상 주소)라고 합니다. 프로세스마다 0번지부터 시작하는 독자적인 주소 공간입니다.  물리적 주소 물리적인 주소는 말 그대로 실제 물리적인 메모리의 주소를 말합니다. 메모리에 실제 올라가는 위치를 의미합니다. 물리적인 메모리는 하나임으로 모든 프로그램 주소를 0번지부터 통으로 관리합니다. 그래서 물리적인 메모리 주소의 아랫부분에는 운영체제 커널, 상위에는 ..
동구름이
'분류 전체보기' 카테고리의 글 목록 (21 Page)