티스토리 뷰
파일 할당(File Allocation)
- 파일을 디스크 공간에 어덯게 저장시킬 것인가.
- 디스크 상 빈 공간들은 어떻게 관리할 것인가.
|
연속 할당 (Contiguous Allocation)
디스크 상에서 연속된 다수개의 블록들을 동원해 파일을 저장하는 방법

< 장 점 >
- 간단함
- 순차처리에 좋은 성능을 보임
< 단 점 >
- 외부 단편화: 디스크 빈 공간 활용에 비효율적 -> 빈 공간의 통합 작업 요구
체인 할당 (Chained Allocation)
블록 크기만큼 나누어진 파일의 내용이 체인을 따라 차례로 저장되는 방법

< 장 점 >
- 비연속 할당: 블록들이 연속적일 필요가 없음
- 외부 단편화 X -> 공간 활용도가 우수함
< 단 점 >
- 흩어져 있는 각 블록에 대해 매번 접근해야 함 -> 시간 지연
인덱스 할당(Indexed Allocation)
- 비연속 할당
- 가장 많이 사용되는 방식

빈 블록을 관리하는 자료구조 종류
비트 벡터 (Bit Vector)
디스크 블록당 벡터를 두어 각 블록에 대해 1이면 사용중, 0이면 빈 블록으로 판단한다.

리스트 (List)
디스크 상의 빈 블록들을 리스트로 연결하고, 첫 번째 빈 블록에 대한 포인터를 커널이 가지도록 하는 방법이다. 리스트의 각 빈 블록은 다음 빈 블록에 대한 포인터나 블록 번호를 가지도록 한다. 많은 개수의 빈 블록을 할당해 주어야 하는 경우 리스트의 변경에 걸리는 시간이 파일의 생성을 느리게 만드는 약점이 있다.

그룹화 (Grouping)
각 빈 블록은 n 개의 빈 블록 번호를 가지도록 한다. 이 중 n-1개는 빈 블록의 번호이며, 나머지 하나는 다음번 n 개의 빈 블록 번호를 가지고 있는 블록 번호이다. 연결되는 노드의 수가 1/n으로 줄어들게 된다.

인덱싱 (Indexing)
파일 할당에서 설명한 인덱스 테이블을 사용해 디스크 상의 연속된 빈 블록들 당 하나의 인덱스 항목이 설정되어 관리되는 기법이다. 빈 공간 전체가 하나의 파일로 취급된다고 볼 수 있으며, 파일 할당 방법이 어떤 것이든 효과적으로 사용되는 방법이다.
파일에 대한 접근 제어 기법
- 파일에 대한 접근 종류: 읽기(R), 쓰기(W), 실행(E), 첨부(A)
패스워드
파일마다 패스워드를 부여하고, 이것을 통과했을 때 접근을 허용하는 방식
→ 패스워드를 모두 기억하고, 접근 방식에 따라 패스워드를 붙여야 해 부담 백배!!
접근 행렬 (Access Matrix)
- 대부분의 시스템에서 채택하고 있는 제어 기법
- 객체 (Object): 제어가 요구되는 대상 (= 파일)
- 접근 권한 (Access Rights): 지정된 객체에 대해 가능한 접근 권한
- <F, RE> = 프로세스가 파일 F에 대해 읽기와 실행 권한을 가짐
- 도메인 (Domain): 같은 접근 권한을 갖는 프로세스들의 집합
→ 행렬 내에 빈 칸이 많을 수 밖에 없어서 비효율적

접근 행렬 구현 방법
전역 테이블
시스템 전체에 대한 도메인, 파일들, 접근 권한을 순서대로 세 개의 쌍으로 표현해 전역 테이블에 저장하고 사용하는 기법
→ 테이블의 크기가 커지면 표현하기 어려워짐

접근 리스트 (Access List)
각각의 파일에 대해 도메인 별로 접근권한을 리스트 형태로 표현한 것
- 쉽고 자연스러워 가장 많이 사용됨
- 특정 도메인에 속한 프로세스들이 접근 가능한 파일을 모두 찾기 위해서 전부 검색해야 함
- 파일 F1 = { <D1, R>, <D3, RW>}
ex) UNIX
(owner) r w x / (group) r w x / (other user) r w x → 총 3 bit로 표현 가능 |

권한 리스트 (Capability List)
도메인 별로 도메인에 속한 프로세스들이 접근 가능한 파일들과 접근 권한들을 리스트로 표현한 것
ex) 도메인 D1: (F1, R), (F2, W), (F4, WA)
락-키 (Lock-key) 방식
파일들은 각각 락(Lock) 비트 패턴을, 도메인들은 키(Key) 비트 패턴의 리스트를 가지도록 한 후, 임의의 도메인 D에 속하는 프로세스가 특정 파일 F에 접근할 때 F의 락들 중 하나와 D의 키들 중 하나가 반드시 일치되어야 접근을 허락하는 방식

'OS' 카테고리의 다른 글
VirtualBox 오류: E_FAIL (0x80004005) (0) | 2022.06.12 |
---|---|
[OS] 가상 메모리 관리를 위한 다양한 기법들 - 요구 페이징 (0) | 2022.05.01 |
[OS] 주기억장치 vs 보조기억장치, 메모리에 관하여 (0) | 2022.04.10 |
[OS] 교착 상태 : 교착 상태 해결 방법! (0) | 2022.04.07 |
[OS] 교착상태 : 교착상태의 원인 (0) | 2022.04.05 |
- Total
- Today
- Yesterday
- 백준27219
- GitHubAPIforJava
- linuxtouch
- OnActivityForResult
- atq
- linuxgedit
- 버추억박스에러
- linux파일
- linuxawk
- baekjoon
- 코테
- awk프로그램
- GithubAPI
- 리눅스cron
- api문서
- 리눅스
- Baekjoon27219
- cron시스템
- cat
- whatis
- 사용자ID
- 쇼미더코드
- Baekjoon27211
- Linux
- 버추억박스오류
- 백준27211
- 백준
- virtualbox
- SELECT #SELECTFROM #WHERE #ORDERBY #GROUPBY #HAVING #EXISTS #NOTEXISTS #UNION #MINUS #INTERSECTION #SQL #SQLPLUS
- E_FAIL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |