Computer Science/운영체제

운영체제 11강 :: 장치, 입출력 처리, 입출력 관리

HJPlumtree 2023. 5. 3. 18:32

운영체제에서 기억하고 싶은 내용

 

 

장치

CPU, 메모리: 프로세스에 필요한 장치

나머지 장치: 전용장치, 공용장치, 가상장치

 

 

1. 전용 장치

한 번에 하나의 프로세스에만 할당

프린터 같은 장치는 한 번에 하나의 프로세스만 있어야겠지

 

단점

  • 대기시간이 길어질 수 있다

 

 

2. 공용 장치

여러 프로세스 동시 할당 가능

하드 디스크 같은 것이 직접 접근 저장 장치

스케줄링 기법이 필요하다

 

 

3. 가상 장치

전용 장치을 공용 장치처럼 보이게 한다

 

방법

  • 디스크 같은 공용 장치를 활용한다
  • 공용 장치가 중간에서 교통 정리 해주는 느낌이네

 

 

장치의 구성

논리적 구성

장치 제어기

장치를 직접적으로 다루는 전자 장치

운영체제가 보내는 출력을 장치에 맞게 변형

 

장치 드라이버

입출력 요청을 해당 장치에 맞도록 변환

보통 장치 제조사에서 드라이버도 같이 제공한다

 

 

물리적 구성

버스에 CPU나 메모리, 장치제어기, 장치 등 붙을 수 있다

버스는 이 들의 길이다

 

CPU의 장치 사용법

장치제어기의 레지스터 이용

장치의 상태 확인 혹은 명령

 

 

입출력의 처리 유형 3가지

프로세스가 진행하며 입출력 발생할 때

 

1. 프로그램 방법

CPU만 이용하는 폴링을 이용하는 입출력 처리

 

폴링 방법
입출력장치의 상태를 지속적으로 확인
CPU가 원하는 상태가 될 때 까지 기다림

 

2. 인터럽트 방법

다른 장치의 작업을 중단하고 자신의 상태를 알린다

대기상태로 보내고 인터럽트가 발생할 때까지 CPU는 다른 프로세스 처리 가능

 

인터럽트 처리과정

  1. 입출력 장치가 가용한 상태라는 신호를 인터럽트 제어기에 보낸다
  2. 인터럽트 제어기는 인터럽트 신호를 CPU에 보낸다
  3. CPU는 현재 실행 중이던 명령을 마치고 인터럽트에 응답한다
  4. 인터럽트 제어기는 이벤트 대상의 정보를 CPU에 보낸다
  5. CPU는 현재 상태를 보관하고 필요한 입출력 처리한다

 

3. DMA(Direct Memory Access) 방법

DMA 제어기 이용해서 CPU 통하지 않고 메모리에 직접 접근 데이터 전송

원래 메모리는 CPU가 건드릴 수 있는 것

인터럽트 발생 횟수를 한 번으로 줄여서 효율 증대

 

DMA 처리 과정

  1. CPU는 입출력에 필요한 정보를 DMA 제어기로 넘긴다
  2. DMA 제어기는 CPU가 지시한 양만큼 소스에서 목적지로 데이터를 보내도록 장치제어기에 요청
  3. 입출력이 끝나면 DMA 제어기는 인터럽트 제어기한테 신호 보낸다
  4. 인터럽트 제어기는 CPU에 인터럽트 보낸다

 

사이클 스틸링(cycle stealing)
CPU와 DMA 제어기 동시에 메모리 액세스 시도시 DMA 제어기에 우선권을 준다

 

 

입출력 관리 2가지 방법

입출력 장치와 독립적인 입출력 관리 방법

버퍼링과 스풀링

 

 

버퍼링

빠른 CPU 데이터 처리속도와 비교적 느린 I/O 장치 데이터 전송 속도의 차이를 버퍼로 해결

메모리를 일시적인 데이터 저장 장소인 버퍼로 이동

 

단일 버퍼링

버퍼 하나

저장과 처리 동시에 할 수 없다

 

이중 버퍼링

버퍼 2개

버퍼 1에 데이터 가득 차면

버퍼 2에 데이터 사용

번갈아가면 지속적으로 사용 가능

 

순환 버퍼링

버퍼 여러개

이중 버퍼링과 같은 동작

 

 

스풀링

버퍼 같은 효과를 내는 것

입출력 프로세스와 저속 입출력 장치의 데이터 전송 속도를 처리

자기 디스크와 같은 고속 장치를 통하도록 하는 것

 

입출력 작업이 빨리 끝난다

자기 디스크 같은 전용장치를 가상장치로 변환시킴