OS 스터디 - 입출력 관리, 프로세스간 통신

Ada·2023년 9월 22일

Jr.Dev Study

목록 보기
6/6

입출력(I/O) 관리

정의

컴퓨터와 외부 장치 간의 데이터 전송을 조율하는 OS의 기능.

목적

  • 장치의 최적 활용

  • 사용자와 시스템 간 빠르고 안정적인 통신

핵심 개념

  • 장치 드라이버: 특정 하드웨어 장치를 제어하는 소프트웨어.

  • 버퍼링: I/O 속도 차이를 줄이기 위해 데이터를 임시 저장.

  • 캐싱: 빠른 데이터 접근을 위해 자주 사용되는 데이터 저장.

  • 스풀링: I/O 요청을 임시 저장한 후 장치가 준비되면 전송.

장치 독립성

OS가 장치의 세부 사항을 사용자로부터 숨겨 일관된 인터페이스를 제공함.

동기 vs 비동기 I/O

  • 동기 I/O: 요청 완료까지 프로세스가 대기.

  • 비동기 I/O: 요청 후 즉시 반환, 완료 시 알림.

  • 직접 메모리 접근(DMA)

  • 장치와 메모리 간 데이터 전송을 CPU의 개입 없이 수행.

macOS VS Windows

macOS

  • I/O Kit: 객체 지향 디자인의 핵심 I/O 시스템, 드라이버 개발에는 C++ 사용.

  • UBC (Unified Buffer Cache): 파일 시스템과 메모리 사이의 데이터 캐싱.

Windows

  • WDM (Windows Driver Model): 기본 드라이버 모델.

  • WDF (Windows Driver Foundation): 드라이버 개발 단순화 프레임워크. UMDF 및 KMDF로 구성.

  • I/O Manager: I/O 요청 관리 및 드라이버와의 상호 작용 담당.

프로세스 간 통신 (IPC: Inter-Process Communication)

정의

두 개 이상의 프로세스 사이에서 데이터를 교환하는 방법.

목적

  • 데이터 공유

  • 효율적인 작업 분배

  • 시스템 성능 최적화

핵심 기술

  • 메시지 패싱: 메시지를 통한 데이터 교환.

  • 공유 메모리: 동일한 메모리 영역을 통한 데이터 공유.

  • 파이프: 한 프로세스의 출력이 다른 프로세스의 입력으로 연결.

  • 소켓 통신: 네트워크를 통한 데이터 교환.

  • 세마포어, 뮤텍스: 자원 접근 동기화 방법.

macOS VS Windows

macOS

  • Mach Ports: macOS는 Mach 마이크로커널 기반. Mach port를 사용하여 메시지 기반 통신 제공.

  • POSIX IPC: UNIX 계열인 macOS가 제공하는 메시지 큐, 세마포어, 공유 메모리.

  • 소켓: UNIX 도메인 소켓 및 네트워크 소켓 지원.

Windows:

  • Named Pipes: 데이터 스트림 지원, 네트워크 통신 가능.

  • Mailslots: 짧은 메시지 전송에 적합한 메시지 큐.

  • COM (Component Object Model): 윈도우 전용 프레임워크, DCOM으로 네트워크 통신 지원.

  • 소켓: 네트워크를 통한 데이터 교환.

profile
백엔드 프로그래머

0개의 댓글