[운영체제(OS)] 11장. File System(2)

kothe·2022년 12월 6일
0

운영체제

목록 보기
15/17

File system Mounting


Mounting : 실제론 떨어져있는 두 개의 파일을 하나의 file system으로 보이게한다.block seqeunce로만 접근할 수 있었던 dsk1를 mount해서 접근이 가능해진다.

  • Mac OS / MS Windows : usb를 자동 mount
  • Unix / Linux : 수동 mount 해야함

Consistency semantics

file system에 들어있는 file data들이 결함없게 정상적인 content를 갖게끔 만들어주는 방법으로, 한 user에 의해 modify된 data가 다른 유저에게 언제 보여지게 할까 결정하는 방식이다. 개념이 조금 이해가 안가는데 아래 예시를 보자.

sharing file system의 consistency를 평가할 때도 사용된다.

  • Unix semantics : 한 유저가 open file에 write하면 다른 사용자들에게도 즉시(system call 직후) 보여야한다.실행 순서가 1->a->b->2... 등등 뒤죽박죽으로 꼬일 수 있다. 실행 순서에 따라 파일 결과가 달라질수도 있지만 하나의 system call 실행 도중에 lock을 걸어서 Pa가 write하는 동안 Pb가 같이 write만 하지 않도록 막는 방법을 사용한다.

  • Session semantics : 한 유저가 open file에 write하면 다른 사용자들에게도 즉시(system call 직후) 보이지 않는다. file이 closed돼야 lock이 풀리고 변경된 내용이 다른 사용자에게 보인다.
    한 프로세스가 시작돼서 끝날때까지 다른 프로세스의 접근을 막는 방법으로 1 -> A 또는 A -> 1 두 가지의 실행순서만 일어날 수 있다.

  • Immutable-shared-file semantics : file을 read only로만 관리하고 write시에 새로운 version의 파일을 만들어 관리하는 기법


File Protection

file access type을 제한함으로써 access를 control한다.
Read, Write, Execute 세가지 operation을 기반으로 생각하면된다.

  • File protection mechanisms
    가장 쉬운 방법은 password를 거는 것이지만 모든 파일을 이렇게 관리하기엔 파일 숫자가 너무 많다.
    -> access matrix사용

  • Access matrix
    Domains(user,app,process)와 objects(files, devices)사이의 접근권한을 테이블에 저장한다.모든 파일은 가로축에, 모든 domain은 세로축에 모두 놓은 후에 각각의 cell에 접근권한을 적어둔다. 이 방식에서 실제 OS는 약간씩 변형해서 사용한다.

    • 변형1) Switch
      가로축에 file 다음에 switch가 들어갈 수 있는 Domain x Domain영역을 만들어준다.D1이 print하고싶은데 D2가 print가 가능한 상태다. D1/D2가 switch 가능하므로 print 접근권한을 얻을 수 있다.

    • 변형2) Copy rights
      Copy권한을 갖는지 *로 표시해준다.D2가 카피권한이 있어서 D3로 F2에 대한 R 권한을 copy해줬다.

    • 변형3) owner rights
      자기가 owner인 object에 대해선 어떤 권한이든지 다른 domain에게 만들어줄 수 있다.F2에 대해 owner 권한이 있는 D2가 W*를 추가하고 D3에게도 W권한을 줬다.

    • 변형4) Control rights
      Domain * Domain 영역을 만들어주고 control할수 있는 권한을 부여한다.

  • Access table의 구현
    access table이 대부분 비어있는 sparse matrix이기 때문에 낭비를 줄이기 위한 구현방법이 있다.

    • Global table : Null이 아닌 것들만 모음하지만 이렇게 해도 크기는 크다.

    • Access list

      Object별로 null이 아닌 Domain의 접근 권한을 모아서 관리하는 기법이다.이 정보들을 FCB에 저장해준다. Unix의 access list다.

    • Capability list
      Domain별로 object에 대한 권한을 모아서 관리한다.
      Open system call부분에 있던 그림인데, file-table 부분에서 접근권한만 모아두면 P1에 대한 capability list가 된다. P1이 file을 close하면 사라진다.
      반면에 Access list는 PCB에 저장되기 때문에 permenent하게 유지된다.

profile
천천히 꾸준히

0개의 댓글