UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현

Slides:



Advertisements
Similar presentations
다양한 종류의 문서를 언제든지 보고 바로 편집하세요. 여러 앱을 이용할 필요 없이 MS Office, HWP, PDF, TXT 의 문서를 한 곳에서 확인하고 어디서든 쉽게 편집해 보세요 ! *PDF 문서는 ‘ 보기 모드 ’ 만 지원합니다.
Advertisements

리눅스 커널의 이해 중에서 14장. 디스크 캐시 남재준 네트워크 실험실.
컴퓨터와 인터넷.
2.6 탐색(Search) 1. 순차검색 (Sequential Search, Linear Search)
Linux Seminar Cahpter 10. Linux File System
T-tree 엄종진 강원대학교 컴퓨터과학과.
제14장 동적 메모리.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
연결리스트(linked list).
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
운영체제 4장 요약정리(CPU 스케줄링) 2A 박훈.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
10장 함수.
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Dynamic Memory and Linked List
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
WinCE Device Driver 실습 #2
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
Sungkyunkwan University OS Project Dongkun Shin
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
프로그래밍 랩 – 7주 리스트.
MicroC/OS-II 3. Memory Management ITISN Technical Lab.
11장. 1차원 배열.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
Introduction To Data Structures Using C
11.텍스트를 위한 화일.
CHAP 10:그래프 (2) 순천향대학교 하상호.
자바 5.0 프로그래밍.
인터넷응용프로그래밍 JavaScript(Intro).
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
메모리 관리 & 동적 할당.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
DK-128 FND 실습 아이티즌 기술연구소
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
리스트(List)를 이용한 자료 관리 이점숙 /
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
알고리즘 알고리즘이란 무엇인가?.
데이터 동적 할당 Collection class.
OpenCV 설정 2.21 만든이 딩딩.
뇌를 자극하는 Solaris bible.
소리 편집 안 재 형.
STS 또는 Eclipse 에서 프로젝트를 Export 하고 Import 하는 방법
기초 C언어 제14주 실습 전처리 및 비트필드, 스트림과 파일 입출력, 동적메모리와 연결 리스트
05. General Linear List – Homework
3. 모듈 (5장. 모듈).
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
System Security Operating System.
임베디드 시스템 개론 3주차.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제 4 장 Record.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
06. 디바이스의 등록과 해제 김진홍
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
C++ Espresso 제15장 STL 알고리즘.
7 생성자 함수.
6 객체.
ARP.
Presentation transcript:

UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현 안 재 윤 09. 07. 25

목차 Ⅰ 슈퍼 블럭 Ⅱ 새로운 파일의 i-node 할당과 반환 Ⅲ 디스크 블록의 할당과 반환

Ⅰ 슈퍼 블럭 Ⅱ 새로운 파일의 i-node 할당과 반환 Ⅲ 디스크 블록의 할당과 반환

슈퍼 블럭 File System File System File System Super Block Super Block 파일 시스템의 크기 파일 시스템 내의 프리 블럭의 수 파일 시스템 내에서 사용 사능한 프리블럭 리스트 프리 블럭 리스트 중의 다음 프리 블럭에 관한 인덱스 i-node 리스트의 크기 파일 시스템 내에서 사용 가능한 프리 i-node의 수 파일 시스템 중의 프리 i-node 리스트 프리 i-node 중에서 다음 프리 i-node에 관한 인덱스 프리 블럭과 프리 i-node의 리스트를 위한 잠금 필드 슈퍼 블럭이 수정 되었음을 표시하는 플래그

슈퍼 블럭 File System File System File System Super Block Super Block 슈퍼 블록은 파일에 i-node를 할당 할 때나, 새로운 블록을 할당할 때 적절한 블록을 찾아서 할당할 수 있도록 해준다. 슈퍼 블록이 수정 되어 지면 커널은 슈퍼 블록을 주기적으로 디스크에 저장 함으로써, 실제 데이터와의 일관성을 유지한다.

Ⅰ 슈퍼 블럭 Ⅱ 새로운 파일의 i-node 할당과 반환 Ⅲ 디스크 블록의 할당

새로운 파일의 i-node 할당과 반환 슈퍼 블럭 . . . . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 프로세스간의 동시 접근을 막기 위한 필드이다. 프리 i-node 리스트 프리 i-node 총 갯수 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . . .

새로운 파일의 i-node 할당과 반환 슈퍼 블럭 . . . . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 프로세스간의 동시 접근을 막기 위한 필드이다. 프리 i-node 리스트 프리 i-node 총 갯수 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . 프로세스가 i-node가 필요하면, 비어있는 i-node의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node 할당. . .

i-node의 할당

새로운 파일의 i-node 할당 슈퍼 블럭 . . . . . 프리 i-node 리스트가 공백이 아닐 경우 프리 i-node 커널은 슈퍼블럭의 잠금필드를 확인하여 슈퍼 블록이 선점되어 있는지를 확인 프리 i-node 총 갯수 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . . .

새로운 파일의 i-node 할당 슈퍼 블럭 . . . . . 프리 i-node 리스트가 공백이 아닐 경우 프리 i-node 커널은 슈퍼블럭의 잠금필드를 확인하여 슈퍼 블록이 선점되어 있는지를 확인 프리 i-node 총 갯수 프리 i-node 리스트 중 다음 i-node의 인덱스 번호를 얻어 오고, 리스트에서 해당 i-node를 제거한다. 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . . .

새로운 파일의 i-node 할당 슈퍼 블럭 . . . . . 프리 i-node 리스트가 공백이 아닐 경우 프리 i-node 커널은 슈퍼블럭의 잠금필드를 확인하여 슈퍼 블록이 선점되어 있는지를 확인 프리 i-node 총 갯수 프리 i-node 리스트 중 다음 i-node의 인덱스 번호를 얻어 오고, 리스트에서 해당 i-node를 제거한다. 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . 3. 얻어온 i-node의 세팅하고 ialloc 알고리즘을 이용하여 해당 프로세스에 할당한다. 또 프리 i-node의 총 개수를 1만큼 감소시킨다. . .

프리 i-node 리스트가 공백이 아닐 경우의 예제 282 230 228 215 . . . . . . . . . . . . . . . . . . . . . . 49 50 인덱스 인덱스 이동 요청한 프로세스에 할당

새로운 파일의 i-node 할당 슈퍼 블럭 . . . . . 프리 i-node 리스트가 공백일 경우 프리 i-node 리스트 커널은 슈퍼블럭의 잠금필드를 확인하여 슈퍼 블록이 선점되어 있는지를 확인 프리 i-node 총 갯수 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . . .

새로운 파일의 i-node 할당 슈퍼 블럭 슈퍼 블록의 i-node 리스트를 다시 채워야 함 . . . . . 커널은 슈퍼블럭의 잠금필드를 확인하여 슈퍼 블록이 선점되어 있는지를 확인 프리 i-node 총 갯수 프리 i-node 리스트가 비어 있다!!! 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . . 슈퍼 블록의 i-node 리스트를 다시 채워야 함 .

새로운 파일의 i-node 할당 프리 i-node 리스트 업데이트 비어 있는 슈퍼 블록 i-node 리스트 삽입 공백 인덱스 삽입 디스크 검색으로 찾아낸 프리 i-node 들 215 228 230 282 . . . . . .

새로운 파일의 i-node 할당 프리 i-node 리스트 업데이트 업데이트된 슈퍼 블록 i-node 리스트 282 230 228 215 . . . . . . . . . . . . . . . . . . . . . . 50 인덱스 숫자 순으로 i-node 들을 넣고 인덱스를 초기화한다. 이 때, 가장 큰 수는 기억 i-node로 설정 된다.

새로운 파일의 i-node 할당 프리 i-node 리스트 업데이트 업데이트된 슈퍼 블록 i-node 리스트 282 230 228 215 . . . . . . . . . . . . . . . . . . . . . . 50 “기억 i-node” 란? 인덱스 커널은 슈퍼 블록의 프리 i-node 리스트가 빌 때마다 디스크 i-node 를 검색하여 프리 i-node 들을 찾아서 리스트를 채운다. 이때 리스트에서 가장 숫자가 큰 i-node 의 번호를 “기억 i-node”로 저장해 두었다가, 차후에 다시 검색을 할 때 해당 번호를 검색의 출발점으로 삼아 효율성을 높인다.

<디스크 내 프리 i-node 탐색을 통한 프리 i-node 리스트 업데이트> 할당되지 않은 i-node 기억 i-node 할당된 i-node 디스크 i-node 214 186 178 175 . . . . . . . . . . . . . . . . . . . . . . 284 282 248 215 . . . . . . . . . . . . . . . . . . . . . . 302 290 288 285 . . . . . . . . . . . . . . . . . . . . . . <디스크 내 프리 i-node 탐색을 통한 프리 i-node 리스트 업데이트>

새로운 파일의 i-node 할당 슈퍼노드의 잠금 필드 확인 잠김 열림 프리 i-node의 총 개수로 리스트의 공백 여부 확인 즉시 복귀하여 경쟁 회피 i-node 존재 i-node 존재하지 않음 얻어온 i-node를 요청한 프로세스에 할당 디스크 검색으로 얻어온 i-node로 프리 i-node 리스트 업데이트 잠금 필드를 열고 복귀 얻어온 i-node를 요청한 프로세스에 할당 잠금 필드를 열고 복귀

i-node의 반환

파일의 i-node 반환 슈퍼 블럭 . . . . . 프리 i-node 커널은 슈퍼블럭의 잠금필드를 확인하여 리스트 슈퍼 블록이 선점되어 있는지를 확인 잠겨 있을 경우 즉시 복귀하여 경쟁상태 회피 한다. 프리 i-node 총 갯수 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . . .

파일의 i-node 반환 슈퍼 블럭 . . . . . 프리 i-node 커널은 슈퍼블럭의 잠금필드를 확인하여 리스트 슈퍼 블록이 선점되어 있는지를 확인 잠겨 있을 경우 즉시 복귀하여 경쟁상태 회피 프리 i-node 총 갯수 프리 i-node 리스트에 공간이 있으면 반환된 i-node를 리스트에 넣고 기존 기억 i-node와 비교하여 번호가 더 작은 노드를 새로운 기억 i-node로 저장한다. 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . . .

파일의 i-node 반환 슈퍼 블럭 . . . . . 프리 i-node 커널은 슈퍼블럭의 잠금필드를 확인하여 리스트 슈퍼 블록이 선점되어 있는지를 확인 잠겨 있을 경우 즉시 복귀하여 경쟁상태 회피 프리 i-node 총 갯수 프리 i-node 리스트에 공간이 있으면 반환된 i-node를 리스트에 넣고 기존 기억 i-node와 비교하여 번호가 더 작은 노드를 새로운 기억 i-node로 저장한다. 잠금 필드 . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 어떤 i-node의 형태 필드가 0이면 이는 미사용 상태를 의미한다. 프로세스가 i-node가 필요하면, iget 알고리즘을 이용하여 비어있는 아이노드의 번호를 찾고, ialloc 알고리즘을 이용하여 해당 프로세스에 i-node를 할당한다. 이론적으로는 비어있는 i-node를 찾기 위해 커널이 모든 i-node를 적어도 1회의 읽기 동작을 해야 하지만, 이러한 부담을 덜기 위해 슈퍼 블록에는 프리 i-node 번호를 캐쉬하고 있는 배열이 포함 되어 있다. . 3. 프리 i-node의 총 갯수를 증가 시킨다. . .

리스트에 빈 공간이 없을 때, i-node 반환하는 2가지 경우(1/2) 1. 반환하는 i-node 번호가 기존의 “기억 i-node”보다 큰 경우 282 230 228 224 . . . . . . . . . . . . . . . . . . . . . . . . 50 기억 i-node 인덱스 기존의 기억 i-node가 반환된 i-node의 번호보다 작으면 반환된 i-node를 리스트에 넣지 않는다. 294 반환 i-node

리스트에 빈 공간이 없을 때, i-node 반환하는 2가지 경우(1/2) 1. 반환하는 i-node 번호가 기존의 “기억 i-node”보다 큰 경우 282 230 228 224 . . . . . . . . . . . . . . . . . . . . . . 50 기억 i-node 인덱스 282 230 228 224 . . . . . . . . . . . . . . . . . . . . . . 50 기억 i-node의 변화가 없음 인덱스

리스트에 빈 공간이 없을 때, i-node 반환하는 2가지 경우(2/2) 2. 반환하는 i-node 번호가 기존의 “기억 i-node”보다 작은 경우 282 230 228 224 . . . . . . . . . . . . . . . . . . . . . . 50 기억 i-node 인덱스 기존의 기억 i-node가 반환된 i-node의 번호보다 크면 반환된 i-node를 새로운 기억 i-node로 설정한다. 271 반환 i-node

리스트에 빈 공간이 없을 때, i-node 반환하는 2가지 경우(2/2) 2. 반환하는 i-node 번호가 기존의 “기억 i-node”보다 작은 경우 282 230 228 224 . . . . . . . . . . . . . . . . . . . . . . 50 기억 i-node 인덱스 271 230 228 224 . . . . . . . . . . . . . . . . . . . . . . 50 새로운 기억 i-node 인덱스

왜 반환된 i-node로 기존의 기억 i-node를 대체 하는가?

파일의 i-node 반환 리스트에 빈 공간이 없을 때, i-node 반환하는 2가지 경우(2/2) 디스크 i-node 탐색 시에 바뀐 기억 i-node인 271를 출발점으로 탐색을 하므로 이전 기억 i-node 였던 282도 다시 검색할 수 있게 된다. 반환된 이전 기억 i-node 출발점이 되는 바뀐 기억 i-node 282 271 228 224 . . . . . . . . . . . . . . . . . . . . . . 301 290 284 283 . . . . . . . . . . . . . . . . . . . . . . < 디스크 내의 프리 i-node 탐색>

파일의 i-node 반환 슈퍼노드의 잠금 필드 확인 잠김 열림 프리 i-node의 총 개수로 리스트가 꽉 찼는지 여부 확인 즉시 복귀하여 경쟁 회피 공간 존재하지 않음 공간 존재 기존의 기억 i-node와 반환된 i-node의 숫자 비교 반환된 i-node를 리스트에 삽입하고 잠금 필드를 열고 복귀 반환된 i-node의 숫자가 더 작음 반환된 i-node의 숫자가 더 큼 반환된 i-node를 새로운 기억 i-node로 설정하고 복귀 기억 i-node의 변화 없이 잠금 필드를 열고 복귀

Ⅰ 슈퍼 블럭 Ⅱ 새로운 파일의 i-node 할당과 반환 Ⅲ 디스크 블록의 할당과 반환 32

디스크 블록의 할당 슈퍼 블럭 . . . . . 커널은 i-node 리스트를 선형 리스트 형태로 관리한다. 프로세스간의 동시 접근을 막기 위한 필드 프리 i-node 리스트 프리 i-node 총 갯수 잠금 필드 프리 디스크 블록 리스트 커널은 슈퍼 블럭 내의 프리 디스크 블록 리스트를 참조하여 프로세스에 디스크 블록을 할당한다. . . . . .

< 프리 디스크 블록 링크드 리스트> 디스크 블록의 할당 프리 디스크 블록 리스트의 형태 슈퍼 블록 리스트 109 106 103 100 . . . . . . . . . . . . . . . . . . . . . . 211 208 205 202 112 . . . . . . . . . . . . . . . . . . . . . . 310 307 304 301 214 . . . . . . . . . . . . . . . . . . . . . . < 프리 디스크 블록 링크드 리스트>

디스크 블록의 할당 디스크 블록 반환 예제 슈퍼 블록 리스트 109 . . . . . . . . . . . . 211 208 205 202 112 . . . . . . . . . . . . . . . . . . . . . . 102 < 디스크 블록 반환>

디스크 블록의 할당 디스크 블록 할당 예제 슈퍼 블록 리스트 109 102 . . . . . . . . . . . . 211 208 205 202 112 . . . . . . . . . . . . . . . . . . . . . . 디스크 블록 할당 < 디스크 블록 할당>

디스크 블록의 할당 디스크 블록 리스트 업데이트 예제(1/2) 슈퍼 블록 내의 디스크 블록 리스트 . . . . . . 211 208 205 202 112 . . . . . . . . . . . . . . . . . . . . . . 310 307 304 301 214 . . . . . . . . . . . . . . . . . . . . . . < 디스크 블록의 업데이트>

디스크 블록의 할당 디스크 블록 리스트 업데이트 예제(1/2) 슈퍼 블록 내의 디스크 블록 리스트 . . . . . . 복사 211 208 205 202 112 . . . . . . . . . . . . . . . . . . . . . . 복사 310 307 304 301 214 . . . . . . . . . . . . . . . . . . . . . . < 디스크 블록의 업데이트>

디스크 블록의 할당 디스크 블록 리스트 업데이트 예제(2/2) 슈퍼 블록 내의 디스크 블록 리스트 211 208 205 202 112 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 307 304 301 214 . . . . . . . . . . . . . . . . . . . . . . < 디스크 블록의 업데이트> 슈퍼 블록 내의 프리 디스크 블록 리스트가 비게 되면 커널은 프리 디스크 블록 리스트 다음에 링크되어 있는 블록을 리스트 내로 복사하여 리스트를 채운다.

Key Point i-node 블록의 할당과 반환 과정 기억 i-node 의 설정과 역할 디스크 블록의 구조, 할당과 반환 과정

Thank you for your attention!