1. 파일 시스템
논리적인 저장 단위이 파일을 정의, 메모리에 매핑
파일은 데이터를 실제로 저장하는 파일, 이를 계층적으로 연결하는 디렉터리로 구성
파일을 생성, 수정, 삭제할 수 있도록 지원
2. 파일 시스템의 목적
다양한 형태의 저장 장치에 입출력을 지원, 성능 최적화
3. 파일 시스템의 구분
논리적 파일 + 디스크 논리 파일 매핑
논리적 파일 : 파일의 개념, 구조, 연산 등을 정의한 것
블록 : 메모리와 디스크 간 전송단위
운영체제에 따라 다름
운영체제는 파일에 속하는 정보를 블록에 저장.
논리적 파일을 물리적 파일로 매핑하는 과정
4. 메타데이터
임의의 특정 파일과 연관되지 않는 데이터
가용 블록, 위피, 루트데이터, 파일 소유자 등등의 정보를 담고 있음
5. 마운팅
물리적 장치를 특정한 위치에 연결시켜주는 과정
마운트 테이블을 사용하여 마운트된 디렉터리들을 관리(장치 정보 포함)
6. 파일의 개념
프로그램과 데이터 등 정보음 집합체
운영체제가 물리적 장치에 저장함
사용자 관점에서 파일은 논리적으로 저장되는 기본단위
필드 -> 레코드 -> 블록 -> 파일 형태로 세분화됨
7. 파일의 이름
디렉토리 부터 루트까지 경로를 포함함
상대경로 참조 가능
8. 파일의 속성
시스템이 파일을 관리하는데 필요한 정보
대부분의 속성을 포함하는 파일 제어 블록은 디스크에 저장, 파일 정보는 메인 메모리에 유지 탐색시간 줄임
9. 파일 디스크럽터
프로세스가 파일을 엑세스 하는 동안 운영체제에 필요한 정보를 모아둔 자료구조
파일에 접근하기 편하도록 도와주는 역할
생성 날짜, 저장장치 정보, 파일이름 등을 파일을 열떄 생성해줌
10. 순차 엑세스
파일에 있는 정보는 레코드 단위의 순서로 처리하는 것이 일반적
읽기 동작 - 다음 부분을 읽은 후 자동으로 파일 포인터 증가
쓰기 동작 - 파일 끝에 내용을 추가하고 포인터를 쓴내용 뒤로 이동
11. 직접 엑세스
모든 블록을 직접읽거나 쓸 수 있음, 순서 없음
읽기 쓰기 순서가 따로 없디
대규모 데이터베이스에 적합
12. 인덱스 순차 액세스
직접액세스를 기반으로 물리적 특성에 따라 참색, 포인터를 사용새 액세스함
큰 파일도 적은 입출력으로 탐색 가능
먼저 인덱스에서 탐색 후 포인터로 직접 액세스
13. 디렉터리의 개념
디렉터리를 유지하고 관리해 디스크에 저장된 파일들을 관리함
장치 디렉터리 : 장치에 있는 파일들의 정보를 나타냄
파일 디렉터리 : 파일들을 논리적으로 구성, 정보를 저장
다른 파일들의 이름, 위치 정보등을 저장하고 데이터를 저장하지는 않는다
14. 선형 리스트를 이용한 디렉터리 구현
선형적 리스트를 구성하여 파일 생성, 삭제 등을 싱행함
오버헤드가 증가한다는 단점
캐시를 구현해 문제를 해결 할 수 있음
리스트 정렬 이진 탐색
평균 탐색시간을 줄임, 복잡한 과정이 단점
15. 해시테이블로 디렉토리 구현
파일 이름에 대한 해시갑을 얻어 직접 액세스 가능함
탐색시간을 줄이며 성능 개선
충돌 가능성 있음
해시테이블의 크기에 따라 기능을 제한 받음
chain overflow hash table
각 해시항목을 하나의 값이 아닌 연결리스트로 생성
다소 느려지나 전체를 선형 리스트 찾는 것보다 훨신 빠름
16. 디렉터리 구조
single level directiry
가장 간단함
모든 파일이 동일한 디렉터리에 있어 유지와 이해 용의
모두 고유이름 가져야하는 문제, 파일 수가 많아지면 문제
17. 2단계 directory
서브 디렉터리를 하나 추가한 구조
유일한 경로를 가짐
각 사용자가 자신의 사용자 파일을 가지는 형태
18. 트리구조 directory
연속되는 트리구조로 이루어진 디렉터리
2단게 디렉터리는 2층의 트리구조라 보면됨
19. 비순환 그래프 구조
트리구조 디렉터리를 확장
트리구조에서는 파일이나 디렉터리의 공유를 금지했으나 이것을 허용한 형태
융통성은 좋으나 다소 복잡
20. 일반 그래프 디렉터리
츠리구조 디렉터리에 링크(어떤 디렉토리(상위포함)으로 이동 가능)을 추가한형태
21. 파일의 디스크 할당
파일을 디스크의 연속적인 주소에 할당하는 방법(그냥 디스크에 쭉 넣는다고 생각하면 간단)
헤드 이동 없이 바로 다음 값 엑세스 -> 디스크 탐색횟수 최소화
연속 할당은 시작 블록, 길이로 정의된다.
문제점 : 외부 단편화
파일을 할당하고 삭제하면서 디스크를 작은 조각들로 나눔
파일 공간 크기를 결정하는 것이 문제
작은 파일에 효율적, 평균 성능 좋음
22. 연결 할당
각 파일을 디스크 블록들의 리스트에 연결, 블록즐은 디스크 내에 흩어져도 되는 방법
디렉터리는 파일들의 첫 번째 블록 포인터를 가짐
시작 블록 포인터를 가지고 엑세스해 파일 내용들을 찾아오는 것
파일생성 용의
확장 쉬움, 구현 쉬움, 외부단편화 없음
포인터공간 필요, 신뢰성 유지 없음, 탐색시간 증가
파일 할당표를 사용함
첫 번째 블록번호 부터 EOF까지 연결 계속
23. 인덱스 할당
연결 할당은 외부단편화를 해결했으나 직접엑세스를 못하고 블록포인터가 디스크 전반에 흩어져 있음
모든 포인터를 인덱스 블록이라는 하나의 장소에서 관리하고 직접 액세스를 지원하는 방법
각 파일은 인덱스 블록 하나만 가져야 하므로 인덱스 블록 크기는 가능한 작은것이 좋음
구현 쉬움, 외부단편화 없음
파일 크가가 블록인덱스를 초과할때가 문제임
메모리를 차지함
24. 디스크 빈공간 관리법
비트맵 : 빈 공간 리스트는 비트맵 또는 백터로 표현
연결 리스트 : 빈블록끼리 연결 리스트로 구현함
리스트를 모두 읽어야해서 비효율적
인덱스 블록(그룹핑)
빈 블록의 포인터를 인덱스 블록에 보관, 서로 연결
사용가능한 주소 여러개를 빠르게 찾을 수 있음
15. 파일 보호
파일 명명 : 액세스 하려는 파일을 명명할 수 없는 사용자를 액세스 대상에서 제외하면 파일 보호
암호 : 각 파일에 암호를 걸정하여 보호
액세스 제어 : 사용자에 따라 액세스 할 수 있는 파일아나 디렉토리를 제한하여 권한 부여
액세스 그룹지정
파일을 보호하는 그룹별 제어비트
- rwx rwx rwx
파일 종류 소유자 그룹사용자 기타사용자
사용자 권한 지정
사용자가 계정을 받을 떄 특정한 디렉토리나 파일만 액세스할 수 있도록 시스템관리자가 하락함
'운영체제' 카테고리의 다른 글
| 운영체제 가상 메모리 (1) | 2024.06.15 |
|---|---|
| 운영체제 메모리관리 (1) | 2024.06.14 |
| 운영체제 스케줄링 (0) | 2024.06.14 |
| 운영체제 6. 프로세스 스케줄링 (1) | 2024.04.18 |
| 운영체제 5. 교착과 기아 (0) | 2024.04.18 |