Operating System : 운영체제

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

(1) OS as Coordinator (ii)

@ Modern OS(UNIX/Linux 등)는 I/O 장치를 크게 세가지로 나눕니다.

    // Char(actor) I/O Device

        > I/O의 단위가 Byte(charactor)인 장치

            .. Ex) 키보드, 마우스

    // Block I/O Device

        > I/O의 단위가 Block인 장치

            .. Ex) 하드디스크

    // Network I/O Device

        > Network를 제어하는 장치

            .. Ex)소켓

 

@  왜 위와 같이 3개로 나누었을까요?

    // I/O 관리를 어떻게 하는가에 따라서 성능에 굉장한 차이를 만들기 때문입니다.

 

@ 만약, 어떤 사람이 고가의 스트리밍 서비스를 요청하는데,

    // 서비스 제공자가 다른 서비스와 함께 한 큐에 모든 패킷을 같이 보내면

        > 당연히 고가의 사용자는 피해를 보게 됩니다. (느려지기 때문에)

            .. 그래서, 속도에 민감한 패킷들은 속도에 민감하지 않은 패킷과 나누어 Queue를 만들어야 합니다.

 

@ 이와 같이 Network은 패킷 스케쥴링을 어떻게 하느냐에 따라서 성능에 영향을 많이 줍니다.

    // OS는 이런 것들을 신경 써주어야 하게 되고

         > 이는 다른 I/O Device에서 하는 일과는 차이가 크기에 별도의 다른 서브 시스템을 두게 됩니다.

            .. 이런 것들을 모아둔 것이 Network System입니다. (related with Quetion)

 

@ 메모리 계층(Memory Hierarchy)를 생각할 필요도 있습니다.

    // 메모리를 필요에 따라 여러가지 종류로 나누어 둠을 의미합니다.

        > 이 때 우리가 기억할 점은 CPU 외부에 존재하는 HDD의 정보는 접근 속도가 느리다는 것 입니다.

 

@ ------------------------------------------> 스케일 차이가 엄청나다

    캐시        메인 메모리          디스크

 

@ 그래서 우리는 캐시에 자주 사용하는 HDD의 정보를 저장해두고 사용하기도 합니다.

    //  이는 H/W적으로 구현할 수 있지만, OS적으로도 구현할 수 있습니다.

        > HDD의 File의 일부를 main memory에 넣음으로서 구현하는 것이 가능합니다.

 

@ 결국 그런 디스크 캐시를 제공하느냐, 하지 않느냐는 성능에 있어서 큰 차이를 보이게 됩니다.

    // 이렇듯 성능에 민감한 OS 기능 이런 것들이 필요하게 됩니다.

        > 이런 것들이 Block I/O Device 위에 존재하게 되고

            .. 이러한 것들을 모아 둔 것이 File System입니다. (related with Quetion)

댓글

댓글 본문
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기