분류 전체보기

1. File and File System(1) File 파일이라고 하면, 흔히 하드디스크에다 저장하는 단위를 말합니다. 메모리 시스템에 대해 메모리는 주소를 통해 접근했다면, 파일은 이름을 통해 접근하는 단위입니다.   그래서 파일의 정의를 보면, A named collection of related information으로 쉽게 말해 관련된 정보를 이름을 가지고 저장하는 것을 말합니다.  (운영체제에서는 특히 리눅스에서는 장치들도 관리하기 위해서 파일이라는 이름을 사용해 관리하는데 일반적으로 생각하는 데이터를 저장하는 목적이 아닌, 다양한 저장장치들을 운영체제는 다른 파일로 관리합니다. 이런 것은 Device Special File이라고 부르는데 일반적으로 생각하는 파일과는 다른 개념입니다.)  Fi..
1. Working-Set 프로그램이 메모리에서 원활하게 실행되기 위해서는 어느 정도의 Page Frame을 확보해야 합니다. 그리고 프로그램은 특정 시간에는 특정 메모리 위치만 집중적으로 참조하는 특징이 있습니다. 예를 들어 for문이 실행되고 있는 동안에는 그 루프를 구성하는 페이지만 집중적으로 참조됩니다. 이렇게 집중적으로 참조되는 해당 page 들의 집합을 Locality set이라고 합니다.  이것을 Working-Set 알고리즘에서는 working-set이라고 부릅니다. 정리하자면 Locality에 기반해서, 프로세스가 일정 시간 동안 원활하게 수행되기 위해 한꺼번에 메모리에 올라와있어야 하는 page의 집합을 working-set이라고 합니다. 이렇게 어느 정도 page를 보장해 주어 프로그..
지난 포스팅에서 가상 메모리 시스템에서 사용되는 Replacement 알고리즘에 대해 알아보았습니다.  이번 포스팅에서는 Replacement 알고리즘이 가상 메모리가 아닌 다양한 Caching 환경(cache memory, buffer caching, Web caching 등)에서 쓰이는 것을 살펴보겠습니다. 다양한 Caching 환경 Caching이란 한정된 빠른 공간(Cache)에 요청된 데이터를 저장해 두었다가, 다음에 똑같은 요청이 왔을 때 느린 저장 장치까지 가지 않고 Cache로부터 직접 서비스하는 방식입니다.  다양한 Caching 환경들을 살펴보겠습니다.  (1) Paging System 지난 포스팅까지 살펴본 개념입니다. Paging System에서는 한정된 빠른 공간이 메인 메모리이고..
지난 포스팅에 이어, 이번 포스팅에서는 페이지 교체(Page Replacement)에 대해 알아보겠습니다.  1. 페이지 교체 비어있는 페이지가 없는 경우에 어떤 페이지를 쫓아낸 후, 해당 메모리에 페이지를 올려야 합니다. 이를 페이지 교체라고 하며, 운영체제가 관리합니다. 어떤 페이지를 빼앗아올지 결정해야 하는데, 이때 사용하는 알고리즘을 Replacement Algorithm이라고 합니다. 지난 포스팅에서 언급했던 Effective Access Time을 보시면 page fault가 일어났을 때 오버헤드가 큰 것을 볼 수 있었습니다. 그래서 이 알고리즘은 가능하면 Page Fault가 일어나는 것이 아닌, 메모리에서 직접 처리할 수 있도록 하는 것이 목표입니다.   아래는 페이지 교체의 과정을 도식화..
이번 포스팅에서는 가상 메모리에 대해 살펴보겠습니다. 이전 포스팅까지 다루었던 물리적인 메모리의 주소 변환은 운영체제가 관여하지 않지만, 가상 메모리에서의 주소 변환은 전적으로 운영체제가 관리합니다.  앞으로 살펴볼 가상 메모리 챕터에서는 앞의 메모리 관리 기법 중에 페이징 기법을 사용하는 것으로 가정합니다. 실제로 대부분의 시스템은 페이징 기법을 사용합니다.  우선, 몇 가지 개념을 살펴보겠습니다. 1. Demand Paging Demand Paging은 프로그램이 실행될 때, 프로세스를 구성하는 주소 공간을 전부 물리적 메모리에 올리는 것이 아닌 Page 요청이 있을 때 메모리에 올리는 것입니다.  좋은 소프트웨어일수록 방어적으로 코드를 작성하기 때문에, 프로그램을 구성하는 코드 중 실제로 자주 사용..
1. Segmentation 기법 Paging 기법이 프로그램의 주소 공간을 같은 크기의 Page 단위로 쪼갠 것이라면, Segmentation 기법은 크기를 기준으로 자르는 것이 아닌 의미 있는 단위로 자르는 것을 말합니다.  프로그램이 의미 있는 단위인 Segment로 구성되고, 일반적으로는 하나 씩의 세그먼트가 code, data, stack으로 구성됩니다.   (1) Segmentation ArchitectureSegmentation에서의 주소 변환은 페이징 기법과 비슷한 측면이 있습니다.   우선 논리적 주소를 Segment-number와 segment table안에서 얼마만큼 떨어져있는지 나타내는 Offset으로 구성합니다. 각 세그먼트 별로 서로 다른 물리적 메모리 주소에 올라갈 수 있기에 ..
동구름이
'분류 전체보기' 카테고리의 글 목록 (20 Page)