File Protection
파일에 대한 부적절한 접근 방지 → 다중 사용자 시스템에서 더욱 필요
접근 제어가 필요한 연산들 : Read, Write, Execute, Append
파일 보호 기법으론 password 기법과 access matrix 기법이 있는데 두 번째 방법에 집중할 것이다.
Password 기법
각 파일에 PW 부여
비현실적 : 접근 권한 별 서로 다른 PW 부여해야 함
Access Matrix 기법
범위(domain)와 개체(object) 사이의 접근 권한을 명시
*object : 접근 대상(file, device등)
*domain : 접근 권한의 집합, 같은 권한을 가지는 그룹(사용자, 프로세스)
Global Table
시스템 전체 file에 대한 권한을 가지는 table
⚠️ 테이블 사이즈 거대해짐, 빈공간 낭비
Access Control List
Access matrix의 column을 list로 표현
- 각 object에 대한 접근 권한을 나열
- object 생성 시, 각 도메인에 대한 권한 부여
실제 OS에서 사용
👍🏻 관리 쉬움
👎🏻 여분 공간 필요, 파일 접근할 때마다 권한 검사하는 오버헤드 발생
Capability List
Access matrix의 row를 list로 표현
- 각 domain에 대한 접근 권한을 나열
- domain이 권한을 제시, 시스템이 검증 승인
- 일종의 주민증 같은 것
👍🏻 효율적, 유연성, domain과 object 간 자연스러운 관계
👎🏻 오브젝트 별 권한 관리가 어려움(ex. 파일1에 대한 권한을 모두 취소하고 싶다), 전파되는 권한 컨트롤 복잡함
⚠️ 시스템이 capability list 자체를 보호해야 함 → 커널 안에 저장
Lock-key Mechanism
Access list와 Capability list를 혼합한 개념
object는 lock을, domain은 key를 가짐
domain 내 프로세스가 object에 접근 시, key와 lock이 짝이 맞는지를 검사
시스템은 key list를 관리해야 함
그래서 결론
많은 OS는 access list와 capability list 개념을 함께 사용
출입증 발급과 비슷!
- object에 대한 첫 접근 시 → access list 탐색 → 접근 허용 시 capability 생성 후 프로세스에게 전달 → 이후 접근 시 권한 검사 불필요 → 마지막 접근 후 capability 삭제
'컴퓨터공학 > 운영체제' 카테고리의 다른 글
[운영체제] 커널 영역 (0) | 2023.09.09 |
---|---|
[운영체제] 파일 시스템은 어떻게 구현되어 있는가? (0) | 2023.09.08 |
[운영체제] 파일 시스템과 디렉토리 구조 (0) | 2023.09.07 |
[운영체제] 페이징 교체 알고리즘 (0) | 2023.05.25 |
[운영체제] 페이징과 외부 단편화, 내부 단편화 (2) | 2023.05.02 |