본문 바로가기
IT Auditor Study/운영체제

[Part2-공룡책] 10. 입출력 시스템(1/2) - Operating System(OS)

by latteart 2024. 6. 9.
반응형

Operating System(OS)에 이어서 Part2에는  다음과 같은 순서*로 알아보겠습니다. 

*공룡책 기반

 [프로세스 관리]

 1. 프로세스 

2. 스레드와 병행성 

3. CPU 스케줄링

 [프로세스 동기화] 

4. 프로세스동기화 

5. 동기화 예제 

6. 교착상태

 [메모리 관리] 

7. 메인 메모리 

8. 가상 메모리

[저장장치 관리]

9. 대용량 저장장치 구조

10. 입출력 시스템

[파일시스템]

11. 파일시스템 인터페이스

12. 파일시스템 구현

 
Operating System(OS) Part2 -  10. 입출력 시스템 (1/2)

 

 

1. 운영체제와 입출력 시스템 개요
1.1 운영체제의 역할과 기능
운영체제는 컴퓨터 시스템의 하드웨어와 소프트웨어 자원을 관리하고 사용자와 시스템 간의 인터페이스를 제공합니다. 

주요 역할에는 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 시스템 관리 등이 포함됩니다. 운영체제는 하드웨어와 사용자가 실행하는 소프트웨어 간의 중개자로서 시스템 자원을 효율적으로 배분하고, 시스템의 안정성과 보안을 유지하는 역할을 합니다.

1.2 입출력 시스템의 중요성
입출력 시스템은 컴퓨터와 외부 장치 간의 데이터 교환을 관리하는 핵심 구성 요소입니다. 현대 컴퓨터 시스템에서 입출력 작업은 매우 중요하며, 전체 시스템 성능에 큰 영향을 미칩니다. 효율적인 입출력 시스템은 사용자 응답 시간을 단축시키고, 데이터 전송 속도를 최적화하며, 시스템의 신뢰성과 안정성을 높이는 데 기여합니다.

1.3 입출력 시스템의 기본 구성 요소
입출력 시스템은 다음과 같은 기본 구성 요소로 이루어져 있습니다.

- 입출력 장치: 데이터 입력 및 출력을 담당하는 하드웨어 장치
- 장치 드라이버: 운영체제와 입출력 장치 간의 인터페이스를 제공하는 소프트웨어
- 버스: 데이터 전송을 위한 통로 역할을 하는 하드웨어 구성 요소
- 입출력 소프트웨어: 입출력 작업을 관리하고 조정하는 운영체제의 소프트웨어 구성 요소

 

2. 입출력 하드웨어
2.1 입출력 장치의 종류

입출력 장치는 크게 네 가지 유형으로 분류할 수 있습니다.


- 저장 장치: 하드 디스크, SSD, CD/DVD 등 데이터를 영구적으로 저장하는 장치
- 입력 장치: 키보드, 마우스, 스캐너 등 데이터를 컴퓨터로 입력하는 장치
- 출력 장치: 모니터, 프린터, 스피커 등 컴퓨터로부터 데이터를 출력하는 장치
- 네트워크 장치: 네트워크 인터페이스 카드(NIC), 라우터 등 네트워크 통신을 위한 장치

 

에이투 키5 기계식 게이밍 유선 텐키리스 키보드

COUPANG

www.coupang.com

 

 

LG전자 FHD 울트라기어 게이밍모니터

COUPANG

www.coupang.com

* 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

 


2.2 입출력 하드웨어 인터페이스
입출력 하드웨어 인터페이스는 컴퓨터 시스템과 입출력 장치 간의 통신을 가능하게 하는 하드웨어 및 소프트웨어 구성 요소입니다. 인터페이스는 데이터 전송 속도, 전송 방식, 프로토콜 등을 규정하며, 주요 인터페이스로는 USB, SATA, PCI 등이 있습니다.

2.3 버스 구조와 데이터 전송
버스 구조는 컴퓨터 시스템 내에서 데이터가 전송되는 통로를 의미합니다. 주요 버스 종류로는 데이터 버스, 주소 버스, 제어 버스가 있으며, 이들 버스는 프로세서, 메모리, 입출력 장치 간의 데이터를 교환합니다. 효율적인 버스 구조는 데이터 전송 속도와 시스템 성능에 중요한 영향을 미칩니다.

3. 입출력 소프트웨어
3.1 입출력 소프트웨어의 개요
입출력 소프트웨어는 하드웨어 장치와 운영체제 간의 원활한 통신을 지원하며, 입출력 작업의 효율적인 수행을 보장합니다. 주요 기능으로는 장치 드라이버 관리, 데이터 버퍼링, 인터럽트 처리 등이 포함됩니다.

3.2 장치 드라이버의 역할과 구조
장치 드라이버는 특정 하드웨어 장치와 운영체제 간의 인터페이스를 제공하는 소프트웨어 모듈입니다. 드라이버는 하드웨어 장치의 기능을 제어하고, 데이터를 주고받으며, 하드웨어의 상태를 모니터링합니다. 장치 드라이버는 운영체제의 커널 모드에서 실행되며, 장치에 대한 저수준 접근을 관리합니다.

3.3 장치 독립적 입출력 소프트웨어
장치 독립적 입출력 소프트웨어는 다양한 입출력 장치에 대해 공통된 인터페이스를 제공하여, 특정 장치에 구애받지 않고 일관된 입출력 작업을 수행할 수 있게 합니다. 이 소프트웨어는 운영체제의 상위 계층에서 작동하며, 버퍼링, 캐싱, 스풀링 등의 기능을 제공합니다.

3.4 입출력 소프트웨어 계층
입출력 소프트웨어는 계층 구조를 가지고 있으며, 각 계층은 특정 기능을 담당합니다. 주요 계층으로는 사용자 수준의 입출력 라이브러리, 운영체제의 시스템 호출 인터페이스, 장치 드라이버 계층 등이 있습니다. 이 계층 구조는 입출력 작업의 모듈화와 관리의 효율성을 높입니다.

 

4. 입출력 버스의 구조

초기에는 주변장치가 많지 않아 모든 장치가 하나의 버스로 연결되었다.

폴링: CPU가 작업을 진행하다가 입출력 명령을 만나면 직접 입출력 장치에서 데이터를 가져오는 방식

 

폴링 방식을 적용하면 입출력이 끝날 때까지 다른 작업을 할 수 없다.

                                                           1.초기 입출력 버스

 

폴링 방식의 단점을 개선하기 위해 입출력 제어기를 사용한 구조가 나타났다.

                                                               2.입출력 제어기

 

 

입출력 제어기를 사용하면 느린 입출력 장치로 인해 CPU와 메모리의 작업이 느려지는 것을 막을 수 있어 전체 작업 효율이 향상된다. 그렇지만 저속 주변 장치 때문에 고속 주변장치의 데이터 전송이 느려지는 문제가 생겼다. 이를 해결하기 위하여 입출력 버스를 고속 입출력 버스와 저속 입출력 버스로 분리하였다.

 

                                                                     3.입출력 버스 분리
반응형