파일 공유
다중사용자 시스템에서의 파일 공유 과정에서 나오는 이슈 -> 접근권한과 동시접근 관리
접근권한
특정 파일에 대해 특정 사용자에게 부여될 수 있는 대표적 접근권한
- 없음(none)
- 인지(knowledge)
- 실행(execution) -> 복사 X
- 읽기(reading) -> 복사 X
- 첨가(appending) -> 파일 내용을 수정 및 삭제 X. 끝 부분에만 추가
- 갱신(updating) -> 파일에 대한 초기 쓰기, 완전 혹은 부분 되쓰기, 데이터 전부나 일부 제거 등
- 권한변경(changing protection) -> 파일 소유자만 가짐
- 삭제(deletion)
계층 구조를 가지는 권한들 -> 권한에 따르는 부수적 권한
접근권한이 주어지는 사용자 부류의 구별
- 특정 사용자(Specific User)
- 사용자 ID로 지명
- 사용자 그룹(User Groups)
- 사용자 그룹의 구성원 전체
- 모든 사용자
- 공용 파일
동시접근 관리
- 파일 갱신 시 전체 파일 잠금 가능
- 세부적으로 개별 레코드 각각을 잠글 수 있도록 허용
레코드 블로킹
레코드 -> 구조화된 파일의 논리적 접근 단위
블록 -> 보조기억장치에 대한 입출력 단위
입출력의 실행 -> 레코드들이 블록 단위로 구성
입출력에 대한 고려사항
- 블록 -> 고정길이 / 가변길이
- 고정길이는 입출력과,
- 한 블록을 평균 레코드와 비교해 볼 때 상대적으로 지니는 크기
- 클수록 입출력 연산의 횟수가 줄어들어 처리속도가 높아지지만 큰 입출력 버퍼 필요 + 버퍼 관리 필요
특정 블록 크기에 대해 사용가능한 블로킹 방법
- 고정 블로킹
- 고정길이 레코드
- 한 블록에 정수 개의 레코드가 저장
- 내부단편화(각 블록 끝부분의 비사용 공간)
- 가변길이 신장 블로킹
- 가변길이 레코드들이 비사용 공간 없이 채워짐
- 두 블록 사이에 걸치게(span)되는 경우도 있음. 포인터로 연속성 표시
- 구현이 어려움
- 가변길이 비신장 블로킹
- 가변길이 레코드 사용
- 신장(spanning)안됨
- 다음 레코드가 남아있는 비사용 공간보다 더 크면 블록의 나머지 부분을 사용할 수 없어 낭비되는 공간이 생김