티스토리 뷰

Directory Structure

Logical directory structure

  • Flat (single-level) directory structure
  • 2-level directory structure
  • Hierarchical (tree-structure) directory structure
  • Acyclic graph directory structure
  • General graph directory structure

 

Flat Directory Structure

  • FS내에 하나의 directory만 존재
    • Single-level directory structure
  • Issues
    • File naming 
    • File protection 
    • File management
    • * 다중 사용자 환경에서 문제가 더욱 커짐

 

 

2-Level Directory Structure

  • 사용자 마다 하나의 directory 배정
  • 구조
    • MFD (Master File Directory)
    • UFD (User File Directory)
  • Problems
    • Sub-directory 생성 불가능
      • File naming issue
    • 사용자간 파일 공유 불가

 

Hierarchical Directory Structure

  • Tree 형태의 계층적 directory 사용 가능
  • 사용자가 하부 directory 생성/관리 가능
    • System call이 제공되어 야 함
    • Terminologies
      • Home directory, Current directory
      • Absolute pathname, Relative pathname
  • 대부분의 OS가 사용

 

Acyclic Graph Directory Structure

  • Hierarchical directory structure 확장
  • Directory안에 shared directory, shared file를 담을 수 있음
  • Link의 개념 사용
    • E.g., Unix system의 symbolic link

 

 

General Graph Directory Structure

  • Acyclic Graph Directory Structure의 일반화
    • Cycle을 허용
  • Problems
    • File 탐색 시, Infinite loop를 고려해야 함


File Protection

  • File에 대한 부적절한 접근 방지
    • 다중 사용자 시스템에서 더욱 필요
  • 접근 제어가 필요한 연산들
    • Read (R)
    • Write (W)
    • Execute (X)
    • Append (A)

 

File Protection Mechanism

  • 파일 보호 기법은 system size 및 응용 분야에 따라 다를 수 있음
  1. Password 기법
    • 각 file들에 PW 부여
    • 비현실적
      • 사용자들이 파일 각각에 대한 PW를 기억해야 함
      • 접근 권한 별로 서로 다른 PW를 부여 해야 함
  2. Access Matrix 기법

 

Access Matrix

  • 범위(domain)와 개체(object)사이의 접근 권한을 명시
  • Terminologies
    • Object
      • 접근 대상 (file, device 등 HW/SW objects)
    • Domain (protection domain)
      • 접근 권한의 집합
      • 같은 권한을 가지는 그룹 (사용자, 프로세스)
    • Access right
      • <object-name, rights-set>

 

Example

  • 각각의 파일(Object)에 대한 권한(Domain)을 명시한 Table

 

Implementation

  • Global table
  • Access list
  • Capability list
  • Lock-key mechanism

 

Global Table

  • 시스템 전체 file들에 대한 권한을 Table로 유지
    • <domain-name, object-name, right-set>

단점

  • 빈 공간에 대해서도 저장이 필요 -> Large table size -> overhead

 

 

Access List

  • Access matrix의 열(column)을 list로 표현
    • 각 object에 대한 접근 권한을 나열
    • Alist(Fk) = { <D1, R1>, <D2, R2>, ..., <Dm, Rm> }
  • Object 생성 시, 각 domain에 대한 권한 부여
  • Object 접근 시 권한을 검사
  • 실제 OS에서 많이 사용됨
    • UNIX의 예

  • 파일에 접근 할 때마다 체크해야 한다 -> overhead

 

Capability List

  • Access matrix의 행(row)을 list로 표현
    • 각 domain에 대한 접근 권한 나열
    • Clist(D1) = { <F1, R1>, <F2, R2>, ...., <Fp, Rp> }
  • Capability를 가짐이 권한을 가짐을 의미
    • 프로세스가 권한을 제시 , 시스템이 검증 승인
  • 시스템이 capability list 자체를 보호 해야 함
    • Kernel안에 저장

 

Lock-key Mechanism

  • Access list와 Capability list를 혼합한 개념
  • Object는 Lock을, Domain은 Key를 가짐
    • Lock/key : unique bit patterns
  • Domain 내 프로세스가 object에 접근 시,
    • 자시의 key와 object의 lock 짝이 맞아야 함
  • 시스템은 key list를 관리해야 함

 

Comparison of Implementations

  • Global table
    • Simple, but can be large
  • Access list
    • Object 별 권한 관리가 용이함
    • 모든 접근 마다 권한을 검사해야 함
      • Object 많이 접근하는 경우 → 느림
  • Capability list
    • List내 object들(localized Info.)에 대한 접근에 유리
    • Object 별 권한 관리(권한 취소 등)가 어려움
  • 많은 OS가 Access list와 Capability list 개념을 함께 사용
    • Object에 대한 첫 접근 → access list 탐색
      • 접근 허용 시, Capability 생성 후 해당 프로세스에게 전달
        • 이후 접근 시에는 권한 검사 불필요
    • 마지막 접근 후 → Capability 삭제

 

 


강의

www.youtube.com/watch?v=3VOqyi-wbJU&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=40

www.youtube.com/watch?v=zrzbETkxljM&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=41

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함