반효경

이전 포스팅에서 Storage에 접근하는 방식에는 순차 접근과 직접 접근의 두 가지 방식이 있는 것을 살펴보았습니다. 다시 정리하자면 순차 접근은 파일을 처음부터 끝까지 순서대로 읽거나 쓰는 방식입니다. 직접 접근은 파일을 임의의 순서로 접근할 수 있는 방식입니다. 파일 내의 특정 위치로 직접 이동하여 읽거나 쓸 수 있는 방식입니다. 그리고 tape와 같은 매체는 순차 접근만 가능하고, 하드 디스크나 플래시 메모리 같은 매체들은 직접 접근이 가능합니다. 하지만 직접 접근이 가능한 매체라고 하더라도, 데이터를 어떻게 관리하는지에 따라 순차 접근만 허용하는 경우도, 직접 접근이 가능현 경우도 있습니다. 디스크에 파일을 저장하는 방법은 크게 세 가지로 나누어 볼 수 있습니다. 연속 할당 (Contiguous ..
1. File and File System(1) File 파일이라고 하면, 흔히 하드디스크에다 저장하는 단위를 말합니다. 메모리 시스템에 대해 메모리는 주소를 통해 접근했다면, 파일은 이름을 통해 접근하는 단위입니다.   그래서 파일의 정의를 보면, A named collection of related information으로 쉽게 말해 관련된 정보를 이름을 가지고 저장하는 것을 말합니다.  (운영체제에서는 특히 리눅스에서는 장치들도 관리하기 위해서 파일이라는 이름을 사용해 관리하는데 일반적으로 생각하는 데이터를 저장하는 목적이 아닌, 다양한 저장장치들을 운영체제는 다른 파일로 관리합니다. 이런 것은 Device Special File이라고 부르는데 일반적으로 생각하는 파일과는 다른 개념입니다.)  Fi..
지난 포스팅에서 가상 메모리 시스템에서 사용되는 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 요청이 있을 때 메모리에 올리는 것입니다.  좋은 소프트웨어일수록 방어적으로 코드를 작성하기 때문에, 프로그램을 구성하는 코드 중 실제로 자주 사용..
이번 포스팅에서는 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..
동구름이
'반효경' 태그의 글 목록 (2 Page)