달력

3

« 2025/3 »

  • 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
  • 31

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

  1. 2011.11.01 하위시스템
2011. 11. 1. 20:57

하위시스템 OS이야기2011. 11. 1. 20:57

하위시스템(subsystem)이란 커널에 있는 추상화 개념 중의 하나로 하나 이상의 kset들의 모임을 말한다. kset은 kobject를 포함하고 하위 시스템은 kset을 포함하지만, kset과 하위시스템의 관계는 kobject와 kset의 관계보다는 덜 밀접하다. 즉 하위시스템에 있는 kset들은 아주 일반적인 의미로만 공통부분을 갖는다.
 하위시스템은 상당히 중요한 역할을 하는 데 비해서는 매우 간단한 struct subsystem 구조체로 표현한다.

struct subsystem
{
     struct kset kset;
     struct rw_semaphore rwsem;


struct kset{
        struct subsystem *subsys;
       ...
}

subsystem 구조체는 오직 하나의 kset만을 가리키지만, 여러 개의 kset들의 자신의 subsys 포인터를 통해 하나의 하위시스템을 가리킬 수 잇다. 이러한 단방향성 관계로 인해 subsystem구조체만 가지고서는 이 하위시스템에 속하는 모든 kset을 찾아낼 수 없다.

subsystem의 멤버인 rwsem은 하위시슽메과 여기에 포함된 kset들로의 동시 접근을 막기 위한 읽기/쓰기 세마포어이다. 모든 kset들은 반드시 어떤 하위시스템에 속해야 하는데, 왜냐하면 내부 데이터로의 동시 접근을 막기 위해 하위시스템의 읽기/쓰기 세마포어를 사용하기 때문이다.

int a:1;
 

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

물리 메모리관리  (0) 2011.11.29
리눅스 커널 소스 디렉토리구조  (0) 2011.11.02
kobject  (1) 2011.11.01
익스포트된 심볼들  (0) 2011.11.01
모듈 매개변수  (0) 2011.11.01
:
Posted by НooпeУ


Code Start Code End