본문 바로가기
지식 정리

운영체제에서의 입출력(I/O) 관리

by Hyeongjun_Ham 2024. 1. 22.

운영체제에서의 입출력(I/O) 관리란?

 

운영체제의 입출력 관리는 컴퓨터 시스템에서 외부 환경과의 상호작용을 담당하는 부분이다.

디스크, 네트워크, 터미널 등과 같은 다양한 입출력 장치와의 효율적인 통신을 관리하고, 프로세스가 입출력 작업을 수행할 때 시스템 자원을 효과적으로 활용하는 역할을 한다.

 

주요 내용들을 알아보자.


 

  • 1. 디바이스 드라이버 (Device Drivers)
    • 운영체제는 각종 하드웨어 디바이스와 통신하기 위한 디바이스 드라이버를 제공한다.
    • 특정 하드웨어와 통신하여 데이터를 주고받을 수 있게 해주는 소프트웨어이다.
  • 2. 버퍼링 (Buffering)
    • 운영체제는 입출력 작업의 성능을 향상시키기 위해 버퍼링을 사용한다.
    • 버퍼는 데이터를 일시적으로 저장하는 메모리 영역으로, 입출력 속도 차이나 효율적인 데이터 전송을 위해 사용된다.
    • 예를 들어 동영상 재생 시 버퍼에 데이터를 담지 않는다면 네트워크가 끊기는 순간 영상이 끊어진다. 일정량의 데이터를 받아놓은 경우 네트워크가 약해지더라도 다시 연결될 때까지 버퍼에 담긴 데이터를 계속해서 볼 수 있다.
  • 3. 스풀링 (Spooling)
    • 운영체제는 여러 프로세스 간의 입출력 작업 충돌을 피하기 위해 스풀링을 사용한다.
    • 스풀링은 여러 작업을 일시적으로 저장하고, 차례로 처리하는 기술로, 프린터와 같은 장치와의 효율적인 작업을 가능하게 한다.
    • 버퍼링의 한 종류로 디스크 공간을 매우 큰 버퍼처럼 사용한다고 볼 수 있다.
  • 4. 디바이스 스케줄링 (Device Scheduling)
    • 다수의 프로세스가 입출력 작업을 요청할 때, 운용체제는 디바이스의 효율적인 사용을 위해 디바이스 스케줄링을 수행한다.
    • 여러 프로세스의 입출력 작업을 관리하여 효율적인 디바이스 사용을 보장한다.
    • CPU 스케줄링과의 공통점으로는 둘 다 시스템 자원을 효과적으로 활용하고 성능을 최적화하기 위한 목적을 가지고 있다는 점이다.
    • 다만 목표 자원이 CPU냐 디바이스냐에 따라 각각의 스케줄링에서 강조되는 측면이 달라진다.
  • 5. 인터럽트 (Interrupt)
    • 입출력 장치는 종종 비동기적으로 데이터를 전달하므로, 운영체제는 인터럽트를 통해 디바이스로부터의 이벤트를 감지하고 처리한다.
    • 프로세스의 블록을 피하고, 실시간성을 확보하기 위한 중요한 메커니즘 중 하나이다.
    • 인터럽트란 프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행중인 작업으로 복귀하는 것이다.
    • 인터럽트 서비스 루틴(ISR, Interrupt Service Routine)은 다음과 같다.

  • 파일 시스템 관리
    • 파일 시스템은 디스크와 같은 저장 장치에 데이터를 저장하고 관리하는 역할을 한다.
    • 운영체제는 파일 시스템을 통해 입출력 작업을 처리하고, 프로세스 간에 데이터를 교환할 수 있게 한다.

 

운영체제의 입출력 관리는 위의 설명과 같이 다양한 디바이스와의 통신을 조율하고, 프로세스의 입출력 작업을 효율적으로 수행하기 위해 여러 기술을 가지고 있다.

 

 

Reference

https://velog.io/@pppp0722/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8Interrupt%EB%9E%80

 

인터럽트(Interrupt)란?

인터럽트 인터럽트란 프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것을 말한다. 주로 입출력 장치의 signal, data가 발생할 때까지 원

velog.io

'지식 정리' 카테고리의 다른 글

프로세스 간 통신  (0) 2024.01.19
스레드와 동시성  (0) 2024.01.17
프로세스란?  (0) 2024.01.15
OS의 일반적인 작동 원리  (0) 2024.01.12
호스팅이란?  (0) 2024.01.11