#15. 컴퓨터 구조 및 운영체제

Maengkkong·2024년 1월 16일
0

스터디

목록 보기
14/14

파일과 디렉터리

파일 (file)

하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미합니다.
파일은 의미 있고 관련 있는 정보를 모은 논리적 단위를 의미

모든 파일에는 이름과 파일을 실행하기 위한 정보, 그리고 파일 관련 부가 정보가 있다. 이 부가 정보를 속성 (attribute) 또는 메타데이터 (metadata)라고 한다.

파일 속성과 유형

1. 파일 속성

  • 유형 : 운영체제가 인지하는 파일의 종류
  • 크기 : 파일의 현재 큭와 허용 가능한 최대 크기
  • 보호 : 어떠 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지를 나타냄
  • 생성 날짜 : 파일이 생성된 날짜
  • 마지막 접근 날짜 : 파일에 마지막으로 접근한 날짜
  • 마지막 수정 날짜 : 파일이 마지막으로 수정된 날짜
  • 생성자 : 파일을 생성한 사용자
  • 소유자 : 파일을 소유한 사용자
  • 위치 : 파일의 보조기억장치상의 현재 위치

파일 유형을 알리기 위한 방식은 파일 이름 뒤에 붙는 확장자 (extension)를 이용하는 것이다.

2. 파일 유형

  • 실행 파일 : 없는 경우, exe, com, bin
  • 목적 파일 : obj, o
  • 소스 코드 파일 : c, cpp, cc, java, asm, py
  • 워드 프로세서 파일 : xml, rtf, doc, docx
  • 라이브러리 파일 : lib, a, so, dll
  • 멀티미디어 파일 : mpeg, mov, mp3, mp4, avi
  • 백업/보관 파일 : rar, aip, tar

파일 연산을 위한 시스템 호출

파일을 다루는 모든 작업은 운영체제에 의해 이루어진다.
운영체제는 파일 연산을 위한 시스템 호출을 제공한다.

  1. 파일 생성
  2. 파일 삭제
  3. 파일 열기
  4. 파일 닫기
  5. 파일 읽기
  6. 파일 쓰기

디렉터리 (directory)

파일을 관리하기 위해 디렉터리를 이용한다.
윈도우 운영체제에서는 폴더 (folder)라고 한다.

  • 1단계 디렉터리 (Single-level directory)
    : 모든 파일이 하나의 디렉터리에 있는 경우

  • 트리 구조 디렉터리 (tree-structured directory)
    : 루트 디렉터리( / 로 표현 | root directory : 최상위 데릭터리) + 여러 서브 디렉터리(자식 디렉터리)

경로 (path) : 디렉터리를 이용해 파일 위치, 파일 이름을 특정 짓는 정보


절대 경로와 상대 경로

  1. 절대 경로 (absolute path)
    : 모든 파일은 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로

  2. 상대 경로 (relative path)
    : 현재 디렉터리부터 시작하는 경로


디렉터리 연상을 위한 시스템 호출

운영체제는 디렉터리 연산을 위한 시스템 호출을 제공

  1. 디렉터리 생성
  2. 디렉터리 삭제
  3. 디렉터리 열기
  4. 디렉터리 닫기
  5. 디렉터리 읽기

디렉터리 엔트리(행)

운영체제에서는 디렉터리를 '특별한 형태의 파일'로 간주한다.
즉, 디렉터리도 파일이다. 또한 디렉터리는 보조기억장치에 테이블 형태의 정보로 저장

디렉터리 엔트리에는 디렉터리에 속한 파일들의 이름과 위치를 알 수 있는 정보 등이 포함되어 있기 때문에 이 파일들이 저장된 위치를 알 수 있다.


상대 경로를 나타내는 또 다른 방법

운영체제는

  • 현재 작업 디렉터리를 마침표(.)로 표현
  • 현재 작업 디렉터리의 상위 디렉터리 (부모 디렉터리)를 마침표 두 번(..)으로 표현

파일 시스템

  • FAT 파일 시스템
  • 유닉스 파일 시스템

파티셔닝과 포매팅

  • 파티셔닝 (partitioning)
    : 파티션을 나누는 작업
    : 저장 장치의 논리적인 영역을 구획하는 작업
    : 파티셔닝 작업을 통해 나누어진 영역을 파티션 (partition)이라고 한다.

  • 포매팅(formating)
    : 포맷 작업
    : 어떤 종류의 파일 시스템을 사용할지 결정
    : 저수준 포매팅은 저장 장치를 생성할 당시 공장에서 수애되는 물리적인 포매팅
    : 논리적 포매팅은 파일 시스템을 생성하는 포매팅


파일 할당 방법

운영체제는 파일과 디렉터리를 블록 (block) 단위로 읽고 쓴다.

  • 연속 할당 (contiguous allocation)
    : 파일이 저장 장치 내 연속적인 파일을 할당하는 방식
    : 연속으로 할당된 파일에 접근하기 위해서는 파일의 첫 번째 블록 주소와 블록 단위의 길이만 알면 된다.
    : 연속 할당을 사용하는 파일 시스템에서는 다음과 같이 디렉터리 엔트리에 파일 이름과 첫 번째 블록 주소와 블록 단위의 길이를 명시
  • 장점
    : 파일을 연속적으로 저장하는 방식이기에 구현이 단순
  • 단점
    : 외부 단편화를 야기한다.
    (외부 단편화 : 삭제된 파일의 블록이 각 5개 6개로 총 11개가 남지만 7개의 크기를 가진 파일을 할당 할 수 없다.)
  • 불연속 할당
    1. 연결 할당 (linked allocation)
    : 각 블록 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당하는 방식
    : 파일을 이루는 데이터를 연결 리스트로 관리
    : 연결 할당은 불연속 할당의 일종이기에 파일이 여러 블록에 흩어져 저장되어도 무방하다.
  • 장점
    : 연속 할당의 문제인 외부 단편화를 해결한다.
  • 단점
    1. 반드시 첫 번째 블록부터 하나씩 차례대로 읽어야 한다.
    : 임의 접근 (random access) 속도가 매우 느리다.
    : 성능 면에서 비효율적
    2. 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없다.
    : 그래서 현재 연결 할당을 변형한 FAT 파일 시스템을 주로 사용한다.

2. 색인 할당 (indexed allocation)
: 파일의 모든 블록 주소를 색인 블록 (index block)이라는 하나의 블록에 모아 관리하는 방식
: 연결할당과 달리 파일 내 임의의 위치에 접근하기 쉽다.
: 색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 색인 블록 주소를 명시한다.


파일 시스템 살펴보기

  • FAT 파일 시스템 : USB 메모리, SD 카드 등 저용량 저장 장치에 사용되는 시스템
    : 연결 할당의 단점을 보완한 파일 시스템이다.
    : 각 블록에 포함된 다음 블록의 주소들을 한데 모아 테이블 형태로 관리하면 블록 안에 다음 블록 주소를 저장하여 문제를 야기하는 연결 할당의 단점을 해소할 수 있다. 이러한 테이블을 파일 할당 테이블 (FAT : File Allocation Table)이라고 한다.
    : FAT12, FAT16, FAT32가 있다. 숫자는 블록을 표현하는 비트 수이다.

위도우에서는 클러스터라는 용어를 사용

  • 유닉스 파일 시스템 : 유닉스 계열 운영체제에서 사용되는 시스템
    : 유닉스 파일 시스템에서는 색인 블록을 i-node(index-node)라고 한다.
    : i-node에는 파일 속성 정보와 15개의 블록 주소가 저장

유닉스 파일의 i-node크기는 15로 유한하다.

[해결방안]

1. 블록 주속 중 12개에는 직접 블록 주소를 저장
: i-node가 가리킬 수 있는 15개의 블록 주소 중 처음 12개에는 파일 데이터가 저장된 블록 주소가 직접적으로 명시된다. 파일 데이터가 저장된 블록을 직접 블록 (direct block)이라고 한다.
: i-node의 12개 주소는 직접 블록 주소를 저장

2. '1번' 내용으로 충분하지 않다면 13번째 주소에 단일 간접 블록 주소를 저장
: 단일 간접 블록 (single indirect block)이란 파일 데이터가 저장된 블록이 아닌 파일 데이터를 저장한 브록 주소가 저장된 블록을 의미

3. '2번' 내용으로 충분하지 않다면 14번째 주소에 이중 간접 블록 주소를 저장
: 이중 간접 블록 주소 (double indirect block)란 데이터 블록 주소를 저장하는 블록 주소를 저장하는 블록 주소가 저장된 블록을 의미
: 단일 간접 블록들의 주소를 저장하는 블록이 이중 간접 블록이다.

4. '3번' 내용으로 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소를 저장
: 삼중 간접 블록 (triple indirect block)이란 이중 간접 블록 주소가 저장된 블록이다.

i-node만 알면 파일 속성과 파일 크기가 크더라도 파일 데이터를 모두가리킬 수 있다.

위도우 운영체제에서 사용되는 NT 파일 시스템 (NTFS)
리눅스 운영체제에서 사용되는 ext 파일 시스템


저널링 파일 시스템

저널링 (journaling) 기법이란 작업 로그를 통해 시스템 크래시가 발생했을 때 빠르게 복구하기 위한 방법

  1. 작업 직전 파티션의 로그 영역에 수행하는 작업(변경 사항)에 대한 로그를 남긴다.
  2. 로그를 남긴 후 작업을 수행한다.
  3. 작업이 끝났다면 로그를 삭제한다.

시스템 크래시 : 파일 시스템 변경하는 도중에 컴퓨터가 강제로 종료되어 버리는 상황 > 파일 시스템이 훼손될 수 있다.


마운트

운영체제에서 '저장 장치를 마운트한다'라는 표현을 자주 사용한다.
이는 한 저장 장치의 파일 시스템에서 다른 저장 장치의 파일 시스템에 접근할 수 있도록 파일 시스템을 편입시키는 작업을 의미


혼자 공부하는 컴퓨터구조 + 운영체제
15. 파일 시스템 (440p - 477p)

0개의 댓글