코딩 이야기

[2022-2] 운영체제 - 221124 본문

University Study/운영체제

[2022-2] 운영체제 - 221124

always7767 2022. 11. 24. 15:36

① 파일 시스템
1) 운영체제가 사용자에게 제공하는 가장 직접적인 서비스 형태


2) 두 부분으로 구성

  (1) 파일 : 각종 정보의 논리적 저장단위를 파일로 추상화 → 실제 기억장치에 연결
                  프로그램과 데이터 저장
                  상호 관련있는 레코드들의 집합
  (2) 디렉터리 : 파일에 관한 정보를 제공 

3) 파일
    논리적 구조 : 레코드 → 필드 (레코드 키)_primary key / 필드 / ....
    물리적 구조 : 블록 → 기억매체에 입출력되는 단위 / 물리적 레코드 (physical record)

4) 파일 시스템의 기능
- 사용자가 생성, 수정, 삭제 가능
- 파일 공유 및 제어 관리 기능
- 백업 (backup) 및 복구 (recovery) 기능
- 사용자-장치 간의 독립성 유지
     → 물리적 장치명 대신 논리적 이름 사용
- 안전 보호 및 비밀 보장 기능
     → 암호화 및 복호화 기능

- 친절하고 사용하기 쉬운 I/F (인터페이스)

5) 파일 구조
   (1) 순차 파일 (sequential file)
      - 논리적 순서에 따라 물리적 순서도 같이 차례대로 저장
      - 순차적 접근 특성의 매체에 적합
           → 디스크, 자기 테이프, 프린터 등
      - 일괄 처리에 주로 사용

   (2) 색인된 순차 파일 (indexed sequential file)
      - 색인 정보 관리, 순차 및 직접 접근 결합 형태
      - 일괄 처리, 대화처리 모두 가능
      - 주로 디스크 활용

    (3) 직접 파일 (direct file)
       - 임의의 레코드에 직접 접근 가능
       - 특정 레코드의 저장된 위치를 신속하게 찾을 수(또는 계산) 있는 방법 
       - 주로 디스크 활용

6) 파일 공간 할당 및 회수
       - 다중 프로그래밍 시스템에서의 주기억장치 할당 문제와 비슷
           → 할당 및 회수의 반복에 따라 단편화 발생
           → 단편화 문제 해결 방법 → 합병, 집약
       
       - 비트 벡터 (bit vector)
              → 기록 매체 블록의 할당 사용 여부를 블록당 1비트로 관리
                     →  0 : 사용 중  / 1 : 빈 블록 (사용 / 할당 가능)

           - 연속 할당 (contiguous allocation)
              → 물리적으로 연속된 공간에 논리적 블록들을 기록하는 것
              → 분산 저장된 경우에 비해 빠른 접근 가능
              → 단편화가 발생할 경우 파일 저장 공간을 할당 받지 못하는 경우도 발생
              → 파일 크기의 변화가 지속적으로 발생 시 대응이 어려움
              → [ 그림 5-9 ] 연속 할당 참고

           - 불연속 할당 (연결 리스트)
              → 시간이 지남에 따라 파일이 커지거나 작아져도 충분히 대응 가능
              → 파일이 저장되는 블록들은 포인터로 서로 연결하여 분산 저장
              → 파일 접근에 시간이 많이 걸림
              → [ 그림 5-10 ] 연결 리스트를 이용한 불연속 할당 참고

      - 불연속 할당 (색인블록)
              →  파일의 블럭들은 흩어져 저장되며, 각 블록의 포인터(색인)을 모아서 저장한 색인 블록
              → [ 그림 5-11 ] 색인블록을 이용한 불연속 할당


7) 파일의 보호
       - 권한이 없는 사용자가 무단으로 팡리에 접근할 수 없도록 하는 것
       - 물리적 손상으로부터의 보호도 포함됨
       - 파일명 : 파일명을 알아야 파일에 접근할 수 있도록
       - 암호
       - 접근제어 : UNIX(linux) → rwx (read write execute) / ugo (user group others)

8) 디렉터리 구조
       (1) 개요
               - 초기의 파일 관리 → 장치 디렉터리(device directory) 또는 VTOC (Volume Table Of Contents)로 관리

                      → 제한된 (작은 용량) 기억장소와 단일 사용자 시스템에 적합
                      → 다중 사용자, 대용량 기억장치에는 적합하지 않고, 디렉터리 구조 필요

               - 디렉터리 요구 사항 : 탐색, 파일 생성, 파일 삭제, 디렉터리 리스트, 백업

               - 디렉터리 내의 각 파일에 대한 정보 : 파일명, 파일 타입, 위치, 크기, 보호, 사용 횟수, 시간, 날짜 등...

       (2) 일단계 구조 디렉터리
                - 가장 간단한 구조
                - 모든 파일이 하나의 디렉터리에 위치
                     - 파일 수가 많아지면 관리에 어려움
                           - 서로 다른 파일명을 부여해야 하는 부담
                           - 사용자별 파일 구분 등
                - [그림 5 - 12] 일단계 구조 디렉터리 참고 

       (3) 이단계 구조 디렉터리
                - 사용자별 디렉터리가 완전히 서로 독립
                     → 장점이자 단점
                - 사용자별 서브 디렉터리 작성 불가
                - [그림 5 - 13] 이단계 구조 디렉터리 참고 

       (4) 트리 구조 디렉터리
                - 현재 디렉토리 (current directory) 개념
                - 절대경로, 상대경로 개념
                - 디렉토리 삭제시 고려할 내용
                - 파일 공유는 허용되지 않음
                - [그림 5 - 14] 트리 구조 디렉터리 참고


       (5) 비순환 구조 디렉터리
                - 서브 디렉토리, 파일 공유 허용하나 순환구조는 허용되지 않음
                     → 팀원들이 공유하는 디렉터리를 각자의 서브 디렉터리로 표현 가능 
                - 공유 방법 두 가지
                - 트리 구조에 비해 융통성은 좋으나 너무 복잡
                     → 파일 삭제 시 발생하는 문제 (dangling pointer..)

                - [그림 5 - 15] 비순환 구조 디렉터리 참고


       (6) 일반적 그래프 구조 디렉터리
                - 순환 구조 허용
                - 전역 탐색 시, 무한 순환 (infinite loop) 문제 발생 가능

                - [그림 5 - 16] 일반적 그래프 구조 디렉터리 참고

9) 파일 시스템 예
          - FAT (File Allocation Table)
                  →  Microsoft, MS-DOS (FAT12), FAT16(for HDD), FAT32(for 16TB)로 발전
          - NTFS (New Technology File System)
                  →  Microsoft, FAT에 비해 데이터 보호, 파일 복구 기능 개선
                  → for Windows NT, Windows 2000, Windows 10, ...
          - UFS (Unix File System)
          - Ext (Extended File Sytstem)
                  →  linux의 기본 파일 시스템

          - GTS (Google File System)
                  →  대규모의 클라우드 서비스를 제공하기 위한 파일 시스템
                  →  [그림 5-17] 구글 파일 시스템 구조 참고

          - HDFS (Hadoop Distributed File System)
                  →  빅 데이터 기술로 대용량 데이터 분석 처리를 위한 오픈소스 프레임워크
                  →  HDFS : 대용량 데이터 분석 저장 관리하는 분산 파일 시스템
                  →  맵리듀스 (Mapreduce), 대용량 데이터 분산 병렬 처리 


'University Study > 운영체제' 카테고리의 다른 글

[2022-2] 운영체제 - 221117  (0) 2022.11.17
[2022-2] 운영체제 - 221110  (0) 2022.11.10
[2022-2] 운영체제 - 221103  (0) 2022.11.03
[2022-2] 운영체제 - 221020  (0) 2022.10.20
[2022-2] 운영체제 - 221013  (0) 2022.10.13
Comments