달력

4

« 2024/4 »

  • 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

'OS이야기'에 해당되는 글 86

  1. 2012.01.05 슈퍼블록과 마운트
2012. 1. 5. 22:28

슈퍼블록과 마운트 OS이야기2012. 1. 5. 22:28

나는 왜 슈퍼블록이랑 마운트가 있어야 하는지 이해가 되질 않았다.
하지만 오늘은 조금 이해한 것 같다.

슈퍼블록은 말 그대로 파일시스템의 실체이다. 즉, 데이터들은 슈퍼블록이 다 관리한다고 생각하면 된다.
그렇다면 이렇게 한번 생각해보자.
/tmp에 있는 모든 하위디렉토리를 /root/tmp에서 똑같이 보고 싶다고 할 때, 슈퍼블록만 존재한다면 똑같은 슈퍼블록을 하나 더 만들어서 이를 해결해야 한다.
이때, 마운트가 있다면 쉽게 문제를 해결할 수 있다.
즉, 파일시스템을 /tmp에 마운트 시키고, /root/tmp에 마운트 시키면 되는 것이다.

이렇게도 생각해보자.
'/'파일시스템에 데이터블록을 다 사용하였다고 가정해보자. 그렇다면 파일을 '/'에 추가할 때 어떻게 되겠는가? 아마도 블록 그룹에 사용할 수 있는 데이터블록이 없으므로 추가하지 못할 것이다.
마운트는 새로운 블록그룹을 생성하고 자신의 부모 블록그룹과 연결하여 트리구조를 만든다.
 

 
이름공간(Namespace)
vfsmount구조체는 어느 하나의 namespace구조체에 속해 있다. 프로세스는 어느 하나의 namespace에서 동작
근데 왜 이게 필요????
init 프로세스가 생성될 때, 최초의 namespace 구조체가 작성되고, 이후의 모든 프로세스에서 동일한 namespace 구조체를 가리킨다. 모든 프로세스가 동일한 namespace를 가리킨다. .. 그렇다면 이미 마운트된놈을 재사용하기 위해 namespace라는 구조체를 만든건가? 

'OS이야기' 카테고리의 다른 글

O(1) 스케줄러  (0) 2012.01.05
프로세스 종료  (0) 2012.01.04
프로세스 생성 (2.4)  (0) 2012.01.04
프로세스 관리 - execv() fork()  (0) 2012.01.04
프로세스 관리 - 파일시스템 & 파일  (0) 2012.01.04
:
Posted by НooпeУ


Code Start Code End