본문 바로가기
CS/Operating System

[ OS 기초 ] 11. File System

by IM조이 2021. 7. 22.

1. 디스크 시스템(disk system) - 파일이 저장되는 곳
2. 파일 시스템(file system) - 파일에 대한 이해와 디렉토리, 파티션
3. 디렉토리 시스템(directory structure) - 다양한 디렉토리 구조
4. 파일 보호(file protection) - 파일 보호/접근 제어 방법 (다음 차시)
5. allocation methods - 할당 기법 (다음 차시)

 

00 개요

OS는 프로세스, 프로세서, 메모리뿐 아니라 파일 시스템과도 깊은 관련이 있다. 파일 시스템에 대해 살펴보기 전에 파일이란 무엇이며 파일이 컴퓨터 상 어디에 저장되는지(디스크), 우리가 파일을 읽을 때 내부에서는 어떤 작업이 진행되는지 파악한 뒤 파일과 디렉토리 시스템, 파일 보호 및 할당 기법에 대해 알아보았다.

 

01 디스크 시스템

디스크 : 파일이 저장되는 공간 (ex. 하드디스크, SSD 등)
디스크 팩 : 파일(데이터, 정보)이 저장되어 있는 공간
디스크 드라이브 : 파일을 읽어오는 장치
디스크 주소 : 데이터가 저장되는 물리적, 논리적(상대적) 공간

01-1 디스크 팩

  • Sector : 0,1과 같은 데이터를 저장하는 장소, 공간으로 데이터 저장과 판독의 물리적인 단위
  • Track : 판(플래터)에서 중심으로부터 같은 거리에 위치한 섹터들을 연결한 집합
  • Cylinder : 디스크(여러 플래터)에서 같은 반지름을 갖는 트랙들의 집합
  • Platter : 원판, 디스크의 양면에 자성 물질을 입혀 데이터를 기록하고 판독하는 금속 판
  • Surface : 플래터의 윗, 아랫면

 

01-2 디스크 드라이브

  • Head : 트랙의 정보를 읽는 장치. Arm에 붙어 있음
  • Arm : 헤드와 연결되어 있고, 플래터의 앞뒷면에 붙어 있음
  • Positioner : Arm을 잡고 있는 기둥으로 boom 이라고도 함. 헤드를 원하는 방향으로 이동시킴.
  • Spindle : 디스크 축을 기준으로 원하는 정보(섹터)로 이동하기 위해 회전시키는 것
    • RPM : 분당 회전 수 - revolutions per minute
    • spindle이 회전하는 속도, 횟수가 성능에 영향을 미침

 

01-3 디스크 주소
디스크 드라이브에서 원하는 정보를 읽기 위해서는 해당 정보가 어디 섹터에 저장되어 있는지에 대한 정보가 필요하다. 즉 데이터가 위치해있는 주소가 필요한데 이때 디스크의 어떤 실린더, 어떤 서페이스, 어떤 섹터에 있는지에 대한 주소 정보를 물리적 주소라고 한다. 이 주소들의 정보를 우리가 기억하는 것엔 어려움이 있기 때문에 블록으로 단순하게 추상화해서 os가 디스크를 블록들의 집합으로 생각해 주소를 할당해주는데, 이렇게 디스크 시스템을 블록의 집합으로 나누는 것을 논리적 주소라고 한다.

  • 물리적 주소 : Cylinder number, Surface number, Sector number
  • 논리적 주소 : 상대적 주소
    • OS가 디스크 시스템을 블록들의 나열로 파악함
    • 파일을 특정 블록에 저장함(파일의 상대 주소 = 블록 번호)
    • OS가 저장한 블록 번호를 드라이버가 물리적 주소로 변환해줌
      • 하드 디스크마다 파일 저장 방식이나 주소 활용 방식이 다를 수 있어서 OS 가 바로 물리적 주소로 파일을 저장시키는 것은 어렵기 때문에 추상화된 형태인 블록 주소에 저장시키는 것
      • 드라이버의 역할: 블록 주소와 실제 디스크 상의 물리적 주소를 연결 (드라이버는 하드디스크 제작 벤더, 제조사 등에 의해 제공)

 

01-4 디스크를 통한 데이터 접근
우리가 모니터 화면에 보이는 어떤 파일을 클릭해 접근하려고 하면 내부적으로는 디스크에 접근에 해당 데이터를 읽어오게 된다. 이때 디스크 접근 시간은 다음 세 가지의 합으로 구할 수 있다.

  • Seek time : 데이터가 위치한 실린더로 헤드를 이동시키는 시간
  • Rotational delay : 데이터가 위치한 섹터로 헤드를 위치시키는 시간
  • data transmission time : 데이터를 읽거나 쓰는 시간

 

02 파일 시스템

파일 시스템은 파일을 관리하는 시스템으로 이 파일 시스템 관리 또한 운영체제의 기능 중 하나이며 파일 시스템은 우리가 평소 가장 자주 사용하는 기능 중 하나다. 파일 시스템은 크게 다음 세 가지로 구성되어 있다.

  • 파일 : 연관된 정보들의 집합
  • 디렉토리 : 폴더. 시스템 내 파일들의 정보를 구성
  • 파티션 : 디렉토리의 집합. ex) c드라이브, d드라이브

 

02-1 파일이란

  • 파일 : 보조 기억 장치에 저장된 연관된 정보들의 집합 (=보조 기억 장치 할당의 최소 단위)
  • 또 다른 정의로는 바이트들의 집합(sequence of bytes)
  • 분류 방법 : 내용에 따른 분류(프로그램 파일, 데이터 파일), 형태에 따른 분류(텍스트 파일, 바이너리 파일)
  • 파일 속성 : 우클릭> 속성에 들어가면 확인할 수 있는 다양한 정보들
  • 관련 작업(operations) : 파일 생성, 삭제, 수정, 조회, 탐색 등의 작업이 가능
    • 이러한 file operation 연산을 가능하게 해주는 게 OS
    • 이렇게 사용자가 쓸 수 있는 파일 operations은 시스템 콜 인터페이스를 통해 제공
  • 파일 접근
    • sequential access (순차 접근) : 파일을 위에서부터 순서대로 레코드(바이트)를 읽는 방식
    • directed access (직접 접근) : 필요한 부분을 점프하듯 찾아가서 읽는 방식
    • indexed access : 인덱스를 참고해 원하는 블록에 접근하는 방식

 

02-2 파일과 디렉토리
- 파일들의 저장 공간으로, 파일을 분류해 보관하고 사용하기 위한 개념.
- 디렉토리도 다양한 operation 이 가능 ex. 생성, 삭제, 수정, 탐색, 조회
- 마찬가지로 이러한 사용자 operation은 시스템 콜을 통해서 제공

02-3 파일과 파티션
- 컴퓨터의 하드디스크를 나누어 또는 병합해서 사용해 만든 논리적 공간
- virtual disk, minidisks, volumes 등으로 불림
- 하나의 하드디스크를 여러 파티션으로 나눌 수도 있지만, 여러 디스크를 하나로 병합해 쓰는 것도 포함

02-4 마운팅
- 어떤 파일 시스템 전체를 다른 파일 시스템에 가져다 붙이는 것
ex. 안드로이드 핸드폰에 SD카드를 장착해 하나의 디스크처럼 사용하는 것

 

03 디렉토리 구조

앞서 간단히 살펴보았던 것처럼 디렉토리는 파일을 분류해서 보관하기 위해 사용하는 것으로, 다음과 같은 다양한 논리적 구조의 디렉토리 구조를 활용할 수 있다.

  • Flat directory structure (하나의 디렉토리)
  • 2-level directory structure (두 계층의 디렉토리)
  • Hierarchical directory structure (여러 계층적 디렉토리)
  • Acyclic graph directory structure (사이클이 불가능한 디렉토리)
  • General graph directory structure (사이클이 가능한 디렉토리)

(참고로 사이클은 바로가기 버튼을 통해 두 파일이 서로를 참조하는 느낌으로 이해하면 됨)

03-1 Flat directory structure
- 계층이 없는, 하나의 디렉토리로만 구성된 시스템
- 시스템의 디렉토리 레벨 = 1
- 다양한 이슈 발생 가능 : 파일명 중복으로 인한 naming 이슈, 공유 시스템일 경우 실수로 파일을 덮어쓰는 이슈, 파일 보호 및 관리 이슈 등
- ex. 초기의 mp3 플레이어 : 그냥 모든 파일을 한 곳에 넣어 들을 수 있는 방식
- 단점 : 위의 여러 이슈들로 인해 사용하기 불편한 구조

03-2 2-level directory structure
- 2 계층으로 이뤄진 디렉토리
- 루트 디렉토리가 있고, 그 아래 다양한 디렉토리를 두고 사용할 수 있는 구조로 사용자마다 하나의 디렉토리를 배정
- 사용자마다 디렉토리를 보유하고 있기 때문에 파일 보호 이슈는 다소 해소되었지만, 내부에 디렉토리를 추가로 생성할 수 없어 여전히 다양한 이슈가 발생했음
- 추가적으로 사용자 간 파일 공유가 어려운 구조

03-3 Hierarchical directory structure
- 트리 구조의 디렉토리로 현재 우리가 자주 사용하고 있는 디렉토리 구조
- 디렉토리 안에 디렉토리를 계속 만들 수 있고, 이들을 관리하기 위해 os가 시스템 콜 인터페이스를 제공함
- 디렉토리 레벨이 커짐에 따라 파일에 접근하기 위한 방법이나 주소명이 다양해짐

  • Home Directory : 루트 디렉토리
  • Current Directory : 현재 위치한 디렉토리
  • Absolute Pathname : 절대 경로 - 루트 디렉토리에서부터 파일 위치까지의 모든 경로를 나타냄(~)
  • Relative Pathname : 상대 경로 - 현대 디렉토리에서부터 파일 위치까지의 경로를 나타냄(./../)

 

03-4 Acyclic graph directory structure
- 계층 디렉토리 구조의 확장 개념
- 사이클이 존재할 수 없는 그래프 디렉토리 구조
- 그래프 디렉토리 구조는 Link를 통해, 바로가기 파일처럼 실제 파일을 위치시키지 않고도 해당 파일의 주소를 참조해 바로 이동시켜주는 기능이 있음. 즉 어떤 파일 자체가 아니라 그 파일로 이동시켜주는 방식인데 (ex Unix system - symbolic link) Acyclic의 경우 이러한 link는 가능하지만, 두 파일 간 서로 참조하지는 못하게 하는 방식

03-5 General graph directory structure
- Acyclic 과 달리 두 파일 간 서로 참조하는 것을 허용하는 디렉토리 구조
- 파일 탐색 시 무한 루프에 빠질 수 있어 주의해야 함

 

 

**  KOREATECH 무료 OS강의(클릭) 학습 후 나름대로 이해한 뒤 정리한 내용입니다. **

 

[Course] Operating System (CPA310) - 운영체제 강의

o Operating System (운영체제), CPA310, KOREATECH o Instructor: Duksu Kim (김덕수) o Course homepage: https://sites.google.com/view/hpclab/courses/operating-system 운...

www.youtube.com

댓글