CS/운영체제

파일 시스템은 실제로 정말 많은 종류가 있습니다. 사용자가 파일 시스템에 접근할 때 각 파일 시스템의 특정한 시스템 콜 인터페이스를 전부 알아야 한다면 매우 불편할 것입니다. 이를 해결하기 위해 운영 체제는 개별 파일 시스템 위에 가상 파일 시스템(VFS)이라는 추상화 계층을 두고 있습니다. 1. VFS(가상 파일 시스템) VFS는 각 파일 시스템의 특성을 추상화하여 동일한 시스템 콜 인터페이스(API)를 제공합니다. 이를 통해 다양한 파일 시스템에 상관없이 사용자는 VFS 인터페이스를 통해 파일 시스템에 접근할 수 있어 편리합니다. 2. NFS (네트워크 파일 시스템) 파일 시스템이 Local Storage에 저장될 수도 있지만, 원격에 저장되어 있는 파일 시스템에 접근할 수 있습니다. 이때 클라이언트..
1. Directory Implementation (디렉터리 구현) 디렉터리는 파일 시스템에서 파일의 메타데이터를 저장하고 관리하는 요소입니다. 디렉터리를 구현하는 방법에는 Linear List(연결 리스트)와 Hash Table(해시 테이블) 2가지 방법이 있습니다. 각 방법의 특징과 장단점을 살펴보겠습니다. (1) Linear List (연결 리스트) Linear List 방식은 파일의 이름과 메타데이터를 순차적으로 저장합니다. 각 엔트리는 파일의 이름, 크기, 소유자 등의 정보로 구성됩니다. 이 메타데이터는 일정한 크기로 관리되며, 디렉터리 내에서 순차적으로 저장됩니다. 장점으로는 구현이 간단하고 이해하기 쉽습니다. 그리고 파일 이름의 구성을 알고 있다면 순차적으로 엔트리를 찾을 수 있습니다. 단..
이번 포스팅은, 실제 파일 시스템에서 어떤 할당 방법을 어떻게 사용하는지에 대해 알아보겠습니다. 1. UNIX 파일 시스템 구조 UNIX는 역사가 오래된 OS 입니다. 아래의 그림은 가장 기본적인 파일 시스템 구조입니다. UNIX나 Linux의 파일 시스템이 기본적인 파일 시스템에서 발전해 FAT, Ext 등이 생겨났습니다. 그림은 하나의 논리적 디스크(파티션)에 파일 시스템을 설치해놓은 모습입니다. 유닉스의 파일 시스템은 저장되는 구조가 크게 네 가지로 Boot, Super, Inode, Data block 순서대로 저장됩니다. Boot Block 우선 Boot Block을 살펴보겠습니다. UNIX 뿐 아니라, 어떤 파일 시스템이건 Boot Block이 가장 맨 처음에 있습니다. 컴퓨터를 부팅하면 어떤..
이전 포스팅에서 Storage에 접근하는 방식에는 순차 접근과 직접 접근의 두 가지 방식이 있는 것을 살펴보았습니다. 다시 정리하자면 순차 접근은 파일을 처음부터 끝까지 순서대로 읽거나 쓰는 방식입니다. 직접 접근은 파일을 임의의 순서로 접근할 수 있는 방식입니다. 파일 내의 특정 위치로 직접 이동하여 읽거나 쓸 수 있는 방식입니다. 그리고 tape와 같은 매체는 순차 접근만 가능하고, 하드 디스크나 플래시 메모리 같은 매체들은 직접 접근이 가능합니다. 하지만 직접 접근이 가능한 매체라고 하더라도, 데이터를 어떻게 관리하는지에 따라 순차 접근만 허용하는 경우도, 직접 접근이 가능현 경우도 있습니다. 디스크에 파일을 저장하는 방법은 크게 세 가지로 나누어 볼 수 있습니다. 연속 할당 (Contiguous ..
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를 보장해 주어 프로그..
동구름이
'CS/운영체제' 카테고리의 글 목록 (2 Page)