-
[운영체제] 10. 입출력 시스템과 저장장치운영체제 2020. 1. 5. 19:28
입출력 버스의 구조
- 현대의 컴퓨터는 CPU와 메모리를 연결하는 메인버스, CPU와 그래픽카드를 연결하는 그래픽 버스, 고속 입출력 버스와 저속 입출력 버스를 사용한다.
- 저속 주변장치 : 키보드 같은 메모리와 주변장치 사이에 오고 가는 데이터의 양이 적어 데이터 전송량이 낮은 장치
- 고속 주변장치 : 그래픽카드나 하드디스크 같은 메모리와
입출력 방법
● 프로세서 제어 입출력
- 프로세서 내부의 입출력 데이터와 주소 레지스터를 입출력 모듈과 연결한 형태
- 데이터 입력 : 입출력 모듈을 거쳐 한 번에 한 워드 씩만 데이터 레지스터로 전송, 입출력 데이터 레지스터에서는 프로그램을 이용해 산술 논리연산장치로 전송
- 데이터 출력 : 산술 논리연산장치에서 입출력 데이터 레지스터로 이동, 프로그램을 이용해 입출력 모듈로 전송
- 폴링 방법 : 상태 비트를 주기적으로 검사해 프로세서보다 상대적으로 느린 입출력장치의 상태를 확인
- 인터럽트 기반 입출력 방법 : 입출력장치가 작업을 완료한 후에 작업과 관련된 상태와 결과를 메모리에 저장하고 인터럽트를 발생시켜 프로세서에 알림
- 인터럽트를 받은 프로세서는 입출력 명령을 전송하고 입출력 작업 중에 다른 명령 시작
● DMA 입출력 (직접 메모리 접근)
- 프로세서의 도움 없이도 메인 메모리를 직접 제어해 데이터를 전송하는 형태
- CPU의 도움 없이도 메모리에 접근할 수 있도록 입출력 제어기에 부여한 권한으로, 입출력 제어기에는 직접 메모리에 접근하기 위한 DMA 제어기가 마련되어 있다.
- 입출력 제어기는 여러 채널에 연결된 주변 장치로부터 전송된 데이터를 적절히 배분해 하나의 데이터 흐름을 만든다.
- 채널 선택기는 여러 채널에서 전송된 데이터 중 어떤 것을 메모리로 보낼지 결정한다.
- 이렇게 주변장치에서 전송된 데이터는 DMA 제어기를 거쳐 메모리에 올라간다.
● 입출력 채널 이용 입출력
- 입출력 채널 : 프로세서와 메인 메모리를 입출력장치에 결합해 프로세서의 명령으로 입출력 제어
- 채널 서브시스템은 여러 개로 구성 가능, 프로세서와 메인 메모리의 액세스 조정
- 제어장치는 채널과 통신하고 장치를 제어하는 기능을 수행.
- 유사한 장치에서는 제어 장치를 하나만 사용하므로 한순간에는 장치 하나만 활성화.
하드웨어 인터럽트
- 주변장치의 입출력 요구나 하드웨어의 이상 현상을 CPU에 알려주는 역할을 하는 신호
- CPU가 요청한 작업을 완료했을 떄, 키보드로 데이터를 입력받았을 때, 네트워크 카드에 새로운 데이터가 도착했을 때, 하드웨어에 이상이 발생했을 때 등 인터럽트 발생
디스크 시스템
- 디스크 드라이버 : 구동 모터, 액세스 암 이동장치, 입출력 헤드 부분의 기계적인 부분 담당
- 프로세서 : 컴퓨터의 논리적인 상호작용, 즉 데이터의 위치(디스크 주소)와 버퍼, 판독, 기록 등 관리
- 디스크 제어기 : 디스크 드라이버의 인터페이스 역할로 프로세서에서 명령을 받아 디스크 드라이버 동작, 디스크 드라이버는 탐색seek, 기록, 판독 등 명령 수행
디스크 장치의 전송 시간
- 하드디스크에서 데이터를 가져오는 데 걸리는 총시간은 탐색 시간, 회전 지연 시간, 전송시간의 총합
디스크 관리 장치
● 파티션
- 디스크를 논리적으로 분리하는 방식
● 포메팅
- 디스크 표면을 초기화하는 작업
● 조각모음
- 디스크에 파일을 저장했다 지우기를 반복함으로써 중간중간에 생긴 빈공간을 하나로 모으는 작업
네트워크 저장장치
- DAS : 서버와 같은 컴퓨터에 직접 연결된 저장장치
- NAS : 기존의 저장장치를 LAN이나 WLAN에 붙여서 사용하는 방식
- SAN : 데이터 서버, 백업 서버, RAID 등의 장치를 네트워크로 묶고 데이터 접근을 위한 서버를 두는 형태
디스크 스케줄링 기법
● FCFS 디스크 스케줄링
- 가장 단순한 디스크 스케줄링 방식으로, 트랙 요청이 들어온 순서대로 서비스
● SSTF 디스크 스케줄링
- 현재 헤드가 있는 위치에서 가장 가까운 트랙부터 서비스
- 만약 다음에 서비스할 두 트랙의 거리가 같다면 먼저 요청받은 트랙을 서비스
● 블록 SSTF 디스크 스케줄링
- SSTF 디스크 스케줄링에 에이징을 적용한 것
● SCAN 디스크 스케줄링
- 헤드가 움직이기 시작하면 맨 마지막 트랙에 도착할 때까지 뒤돌아가지 않고 계속 앞으로만 전진하면서 요청받은 트랙을 서비스
● C-SCAN 디스크 스케줄링
- 스캔 스케줄링처럼 헤드는 한쪽 방향으로 이동하면서 요청을 처리 하지만, 한쪽 끝에 다다르면 역방향으로 헤드를 이동하는 것이 아니라 다시 처음부터 요청 처리
● LOOK 디스크 스케줄링
- 진행 방향으로 움직이기 전에 먼저 요청이 있는지 검사한다는 의미로 더 이상 서비스할 트랙이 없으면 헤드가 끝까지 가지 않고 중간에 방향을 바꾼다.
● C-LOOK 디스크 스케줄링
- C-SCAN 디스크 스케줄링의 LOOK 버전
- 더 이상 서비스할 트랙이 없으면 헤드가 중간에서 방향을 바꾼다.
● SLTF 디스크 스케줄링
- 헤드가 고정된 저장장치에서 사용하는 스케줄링 기법으로 탐색 시간이 없음
- 모든 요청 중 회전 지연시간이 가장 짧은 요청 먼저 처리
- 디스크 헤드가 특정 실린더에 도달했을 때 해당 실린더의 트랙 요청들이 대기하고 있다면, 헤드는 더 이상 움직이지 않고 도착 순서와 관계없이 모든 요청 우선 처리
- 작업 요청이 들어온 섹터의 순서를 디스크가 회전하는 방향에 맞춰 다시 정렬한 후 서비스
● SPTF 디스크 스케줄링
- 가장 짧은 위치 결정 시간, 즉 탐색 시간과 회전 지연시간의 합이 가장 짧은 요청을 다음 서비스 대상으로 선택
- 최소 탐색 시간 우선 스케줄링처럼 처리량이 많고 평균 반응시간 짧음
- 가장 안쪽과 바깥쪽 실린더 요청이 무기한 연기될 가능성
RAID
- 자동으로 백업을 하고 장애가 발생하면 이를 복구 하는 시스템
- 동일한 규격의 디스크를 여러 개 모아 구성하며 장애가 발생했을 때 데이터를 복구하는 데 사용
- 여러 대의 물리적 디스크를 하나의 논리적 디스크로 인식하는 기술
'운영체제' 카테고리의 다른 글
[운영체제] 11. 파일 시스템 (0) 2020.01.05 [운영체제] 9. 가상메모리 관리 (0) 2020.01.05 [운영체제] 8. 가상메모리 기초 (0) 2020.01.05 [운영체제] 7. 메모리 관리 (0) 2019.12.22 [운영체제] 6. CPU 스케줄링 (0) 2019.12.22