[혼공컴운_6주]chapter15 파일 시스템

study_record·2024년 2월 6일
0

혼공컴운

목록 보기
16/17

파일

  • 파일 : 하드디스크, 보조기억장치에 저장된 관련 정보의 집합
  • 파일은 이름과 부가정보(속성, 메타데이터)로 이루어져있음
  • 파일속성의 종류
    • 유형 : 운영체제가 인지하는 파일의 종류
    • 크기 : 현재크기와 허영가능한 최대 크기
    • 보호 : 어떠 사용자가 파일을 읽고, 쓰고, 실행했는가
    • 생성날짜
    • 마지막 접근 날짜
    • 마지막 수정 날짜
    • 생성자
    • 소유자
    • 위치 : 보조기억장치상 현재위치
  • 파일 유형
    • 운영체제가 인식하는 파일 종류
    • 확장자를 붙여서 이용함
    • 실행파일 : exe,com,bin
    • 목적파일 : obj,o
    • 소스코드파일 : c,cpp,cc,java,py
    • 워드 파일 : xml,doc
    • 라이브러리파일 : lib,a,so,dll
    • 백업보관파일 :rar,zip
  • 파일 연산을 위한 시스템 호출 : 파일을 조작하는것은 운영체제에 의해 조작되는데 이를위헤 시스템호출을 제공함

디렉터리

  • 파일을 일목요연하게 관리하기 위해서 디렉터리를 사용함
  • 윈도우체제에서 디렉터리=파일
  • 1단계 디렉터리 : 옛날 운영체제의 방법. 하나의 디렉터리에 모든 파일이 있음
  • 트리 구족 디렉터리 : 여러계층을 가진 구조. 최상위 디렉터리아래 서브 디렉터리가있음. 최상위 디렉터리(루트디렉터리)는 슬래시로 표시
  • 경로
    • 절대 경로 : 모든 파일을 루트디렉터리에 자기까지의 고유 경로
    • 상대 경로 : 현재 디렉터리부터 시작하는 경로
  • 디렉터리 연산을 위한 시스템 호출 : 운영체제는 디렉터리 연산을 위한 시스템 호출을 가지고 있음

디렉터리 엔트리

  • 대부분의 운옃체제에서 디렉터리를 특별한 형태의 파일로 간주함
  • 디렉터리는 내부에 해당 디렉터리 대상과 연관된 정보를 표 형식으로 가지고 있다 → 보조기억장치에 테이블 형태의 정보를 가지고 있음
  • 디렉터리에 포함된 대상의 이름, 보조기억장치에 저장된 위치 정보를 가지고 있음

상대경로 나타내는 방법

  • "." 현재작업 디렉터리
  • ".." 현재작업 디렉터리의 상위 디렉터리
  • 루트 디렉터리의 ".."은 자기 자신을 의미함

파티셔닝과 포매팅

  • 파티셔닝(partitioning) : 저장장치의 논리적인 영역을 구획하는 작업
  • 파티션(partition) : 파티셔닝 작업을 통해 나누어진 영역 하나
    • 파티션마다 다른 파일시스템을 사용할수 있음
  • 포매팅 : 파일시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할지 정하고 새로운 데이터르 쓸 준비를 하는작업
    • 저수준 포매팅 : 저장장치 생성시 공장에서 수행되는 물리적인 포매팅
    • 논리적 포매팅 : 파일시스템을 생성하는 포매팅

파일 할당 방법

  • 블록 : 운영체제가 파일과 디렉터리를 읽고 쓰는 단위
  • 운영체제는 섹터(하드디스크 가장 작은 단위)를 블록으로 묶은후 블럭 단위로 파일과 디렉터리를 관리함
  • 보조기억장치의 파일 할당 방법
    • 연속 할당
    • 불연속 할당
      • 연결 할당
      • 색인 할당

연속 할당

  • 연속적인 블록에 파일을 할당하는 압법
  • 연속 할당에서 파일에 접근할때는 첫번째 블록 주소와 블록단위 길이로 접근한다
  • 디렉터리 엔트리에 파일 이름, 첫번째 블록 주소, 블록 단위 길이 정보가 있음
  • 장점은 구현이 단순함
  • 단점은 외부단편화가 발생됨

연결 할당

  • 블록 일부에 다음 블록의 주소를 저장하여 다음 블록을 알려주는 방법
  • 디렉터리 엔트리에 파일이음, 첫번째 블록주소, 블록 단위 길이 정보가 있음
  • 마지막 블록에는 다음블록이 없다는 표시자를 기록함
  • 단점
    • 반드시 첫번째 블록부터 하나씩 읽어야 함
      • 임의접근속도(파일내 임의의 위치에 접근하는 속도)가 매우 느려서 비효율적이다
    • 하드웨어고장, 오류발생시 해당블록 이후 블록 접근을 할수 없다

색인 할당

  • 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아서 관리하는 방식
  • 파일내 임의의 위치에 접근하기 쉽다
  • 색인블록만 알면 해당 파일데이터에 접근할 수 있다
  • 디렉터리 엔트리에 파일이름, 색인블록 주소 정보가 있음
  • 유닉스의 파일 시스템
연속 할당연결 할당색인 할당
장점구현이 단순외부 단편화를 해결함파일내 임의의 위치에 접근하기 쉽다
단점외부단편화가 발생함반드시 첫번째 블록부터 하나씩 읽어야 함
오류발생시 다음 블록으로 이동할수 없다
디렉터리 엔트리파일이름, 첫번째 블록주소, 길이파일이름, 첫번째 블록주소, 길이파일이름, 색인 블록

FAT 파일 시스템

  • 저용량 장치(USB메모리, SD카드)에 사용되는 파일 시스템

  • 연결 할당의 단점을 보완한 파일 시스템

  • 파일 할당 테이블(FAT:File Allocation Table) : 다음블록의 주소를 모아서 테이블 형태로 만든것

  • 디렉터리 엔트리에 파일이름과 첫번째 블록 주소 정보, 파일속성 정보가 있음

  • FAT12,FAT16,FAT32버전이 있음(숫자는 비트수를 의미함)

  • FAT 파일 시스템 파티션 구성

  • FAT 파일시스템 디렉터리 엔트리 중 파일 속성 정보

  • FAT 파일 시스템에서 파일을 읽는 과정
    → /home/minchul/a.sh파일을 FAT시스템에서 읽는 방법

    1) 루트디렉터리에서 home디렉터리 블록 찾기
    2) 3번의 home디렉터리에서 minchul디렉러터리 블록 찾기
    3) 15번 minchul디렉터리에서 a.sh파일 블록 찾기
    4) FAT에서 a.sh첫번째 파일 주소를 찾아서 접근

유닉스 파일 시스템

  • 색인 할당 기반의 시스템
  • 유닉스 파일시스템의 i-node = 색인할당 시스템의 색인블록
  • i-node에 파일속성, 15개의 블록 주소가 저장됨
  • 유닉스 파일 시스템 파티션
  • 블록주소가 15개 이상인 경우의 해결 방법
    1. 직접 블록 방법 사용
      저장할수 있는 15개의 블록주소중 12개에는 직접적으로 블럭 주소를 저장함
    2. 단일 간접 블록 방법 사용
      12개로 모두다 저장 못할때 13번째 블록주소에 단일 간접 블록의 주소를 저장함
    3. 이중 간접 블록
      13개의 블록주소로 모든 주소블록을 저장하지 못하면 14번째 블록주소는 이중 간접블록의 주소를 저장함
    4. 삼중 간섭 블럭
      14개의 블록 주소로 모든 주소블록을 저장 못하면15번째 블록주소는 삼중 간섭 블록의 주소를 저장함. 대부분 크기의 파일을 저장할수 있다

  • 유닉스 파일 시스템에서 파일을 읽는 과정

    1) 루트 i-node 루트리렉터리 위치 찾기
    2) home의 i-node영역에서 home디렉터리 블록 찾기
    3) minchul의 i-node에서 minchul디렉터리 블록 찾기
    4) a.sh파일의 i-node에 접근해서 파일 접근

다른 파일 시스템

  • NT 파일 시스템(NTFS) : 윈도우에서 사용함
  • ext 파일 시스템 : 리눅스에서 사용함

저널링 파일 시스템

  • 작업 로그를 통해서 시스템 크래시(오류로 컴퓨터를 강제 종료하는 상황)가 발생했을때 빠르게 복귀하는 방법
  • 파일 시스템 전체를 검사하지 않고 로그영역의 로그만 검사한다
  • 저널링 파일 시스템 순서
    1. 작업 직전 파티션 로그 영역에 수행하는 작업에대한 로그를 남긴다
    2. 로그를 남긴 후 작업을 수행한다
    3. 작업이 끝났으면 로그를 삭제한다

마운트

  • 저장장치를 마운트 한다 : 저장장치 파일시스템에서 다른 저장장치 파일시스템에 접근할수 있도록 파일 시스템을 편입시키는 작업을 의미함

📚마무리문제

P.450-451

1번 파일과 관련한 설명으로 옳지 않은 것을 골라라 (4)번
1) 파일은 보조기억장치에 저장된 관련정보의 집합을 의미함
2) 모든 파일에서 교유한 절대 경로가 있다
3) 운영체제는 파일을 다루기 위한 시스템 호출을 제공한다
4) 확장자는 파일이 마지막으로 수정된 날짜를 나타내기 위한 정보이다

2번 다음을 참고하여 질문에 답하라

1) 현재 작업 디렉터리가 /home일때 c.tar의 상대경로는 무엇인가? minchul/c.tar
2) 현재 작업 디렉터리가 /home일때 c.tar의 절대경로는 무엇인가? /home/minchul/c.tar

3번 디렉터리에 관한 설명중 옳지 않은것은? (1)번
1) 디렉터리는 보조기억장치에 저장되어 있지 않다
2) 디렉터리 엔트리에는 해당 디렉터리에 저장된 대상들에 대한 정보가 담긴다
3) 운영체제는 디렉터리를 다루는 다양한 시스템 호출을 제공한다
4) 최상위 디렉터리를 루트 티렉터라고 한다

P.478-479

1번 파일할당 방법에 대한 설명중 틀린것은? (2)번
1) 연속 할당은 외부단편화가 발생할수 있다
2) 연결 할당은 파일에 보조기억장치 내에 파일을 연속적인 블록으로 할당하는 방식이다
3) 색인 할당은 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식이다
4) 파일 시스템은 블록 단위로 파일을 읽고 쓴다

2번 FAT파일 시스템설명으로 틀린것은?(4)번
1) 연결 할당 기반 파일 시스템이다
2) FAT를 사용하는 파일 시스템이다
3) 파일의 속성은 디렉터리 엔트리에 명시된다
4) 블록마다 다음 블록의 주소를 저장한다

3번 유닉스 파일 시스템에 대한 설명으로 틀린것은? (1)번
1) 연속 할당 기반 파일 시스템이다
2) i-node는 파일의 데이터 블록 주소를 저장한다
3) 파일읠 크기가 크면 i-node는 단일 간접 블록, 이중 간접 블록, 삼중 간접 블록을 가리킨다
4) 파일의 속성은 i-node에 명시된다

4번 파티셔닝과 포매팅에 대한 설명을 틀린것은? (1)번
1) 파티셔닝과 포매팅 작업을 거치지 않고도 파일 시스템을 이용할수 있다
2) 파티셔닝은 보조기억장치에 논리적인 영역을 구획하는 작입입다
3) 포매팅 작업을 거치면 파일 시스템이 결정된다
4) 파티션마다 각기 다른 파일 시스템을 이용할수 있다

0개의 댓글