Skip to content

Latest commit

 

History

History
54 lines (50 loc) · 4.06 KB

week13_0814.md

File metadata and controls

54 lines (50 loc) · 4.06 KB
  • 블록 장치캐릭터 장치에 대해 설명하시오.

    • 모든 것은 파일이다 라는 유닉스의 설계 철학에 따라, 모든 장치들은 특수 파일을 통해 접근한다.
      • 블록 장치

        • 장치 별로 정의된 블록 단위로 데이터를 읽고 쓴다.
        • 위치에 상관 없이 접근할 수 있는 탐색 기능 을 제공한다.
        • 블록 장치 노드라는 특수 파일을 이용해서 접근한다.
        • 캐릭터 장치와 다르게, 파일시스템에 마운트되어 사용된다.
          • 장점
            • 애플리케이션과 장치 사이에 파일시스템이 존재하므로 장치 노드의 관리가 간편하다.
          • 단점
            • 파일시스템의 버퍼링 단계가 추가되므로 성능이 저하된다.
        • 블록 장치의 예시로 하드 드라이브, 블루레이 디스크, 플래시 메모리 장치 를 들 수 있다.
      • 캐릭터 장치

        • 스트림 형태로 데이터를 읽는다.
        • 데이터를 스트림으로 받으므로, 앞에서부터 읽어야 한다.
        • 캐릭터 장치 노드라는 특수 파일을 이용해서 접근한다.
        • 블록 장치와 다르게, 애플리케이션에서 장치 노드를 직접 사용한다.
          • 장점
            • 애플리케이션에서 직접 장치 노드를 사용하므로 성능이 향상된다.
          • 단점
            • 장치 노드 관리 측면에서 파일시스템의 도움을 받을 수 없으므로 애플리케이션이 직접 파일을 관리해야 하는 책임을 떠맡는다.
        • 캐릭터 장치의 예시로 키보드, 마우스, 프린터 등의 장치들이 있다.
  • 리눅스에서 모듈을 사용하여 얻을 수 있는 장점에 대해 설명하시오.

    • 리눅스가 장치 드라이버들을 모듈 형태로 분리한 것은 마이크로 커널의 형태를 차용한 것이라고 볼 수 있다.
      • 리눅스는 기본적으로 모노리딕 커널이다.
    • 커널 이미지를 모듈로 분리하면 다음과 같은 장점이 있다.
      • 모듈을 필요에 따라 추가하고 제거할 수 있다.
        • 디버깅에 유리하다.
        • 부팅 시 기본 커널 이미지만 사용하므로 오버헤드가 적다.
      • 새로운 장치 드라이버를 추가하는 것이 용이하다.
  • 통합 장치 모델 을 추가함으로써 얻을 수 있는 이점에 대해 설명하시오.

    • 통합 장치 모델 은 장치와 장치 간 관계를 표현하는 단일 체계를 제공한다.
    • 통합 장치 모델 의 초기 도입 의도는 전원을 관리하기 위한 장치 트리 를 제공하는 것이었다.
    • 통합 장치 모델 을 사용하면 다음과 같은 이점을 얻을 수 있다.
      • 시스템 모든 장치들의 상태를 확인할 수 있고, 서로가 어떻게 연결되어 있는지 파악할 수 있다.
      • 장치와 장치 드라이버를 연결해준다.
      • 물리적 장치 구조를 추상화하여 장치를 적절히 분류할 수 있게 해준다.
      • 올바른 장치 전원 차단 순서를 알 수 있게 해준다.
  • kobject, ktypes, kset의 상관관계에 대해 설명하시오.

    • kobject

      • 장치 트리를 이루는 장치를 추상화하여 해당 장치의 정보들을 담고있는 구조체다.
    • ktypes

      • kobject 객체 군 의 기본 동작 을 정의하는 구조체다.
      • 동일한 유형의 kobject들은 같은 ktypes을 가리킨다.
      • 같은 ktypes을 가리키고 있는 kobject들은 같은 동작을 사용한다.
    • ksets

      • 서로 관련된 kobject들을 모아놓은 kobject의 집합이다.
      • 연결리스트로 kobject들을 연결한다.
    • ktypes vs kset

      • ktype동작 을 정의하고, kset은 객체를 묶는 역할을 한다.