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