11. 입출력 시스템과 저장장치

수진·2021년 12월 7일
0

컴퓨터시스템

목록 보기
8/10

01 입출력 시스템

1-1 입출력장치와 채널

주변장치
저속 주변장치: 키보드, 마우스
고속 주변장치: 그래픽 카드, 하드 디스크
하나의 버스로 주변장치를 묶으면 저속장치가 고속장치의 데이터 이동 방해

채널: 데이터가 지나다니는 하나의 통로
전송속도가 비슷한 장치끼리 채널 할당 -> 전체 데이터 전송 속도 향상

1-2 입출력 버스의 구조

  1. 초기의 구조
    모든 장치 하나의 버스
    입출력 명령 -> CPU가 작업 진행하다가 직접 입출력장치에서 데이터를 가져옴(폴링)

  2. 입출력 제어기를 사용한 구조
    2개 채널
    메인 버스: 고속
    입출력 버스: 주변장치
    CPU와 메모리의 작업이 느려지는 것을 막음 -> 전체 효율 향상

  3. 입출력 버스의 분리
    3개 채널
    메인 버스(+그래픽 카드), 고속 입출력 버스, 저속 입출력 버스
    두 버스 사이의 데이터 전송 -> 채널 선택기가 관리

    현대의 컴퓨터: 메인 버스, 그래픽 버스, 고속 입출력, 저속 입출력

1-3 직접 메모리 접근

  • 직접 메모리 접근
    입출력제어기가 CPU 없이 DMA 제어기를 통해 메모리에 접근
    채널 선택기는 여러 채널에서 전송된 데이터 중 어떤 것을 메모리로 보낼 지 결정

  • 메모리 공간 분할
    메모리 맵 입출력:
    메모리를 CPU 작업 공간과 DMA 제어기가 쓰는 공간을 분리하여 메인 메모리를 운영하는 것

1-4 인터럽트

주변 장치의 입출력 요구나 하드웨어의 이상을 알려주는 역할을 하는 신호

  • IRQ: 각 장치에게 부여된 고유의 인터럽트 번호
  • 종류:
    -외부 인터럽트: 입출력장치, 기계적 오류
    -내부 인터럽트: 프로세스의 잘못, 문제
    -시그널: 사용자가 직접 발생
  • 인터럽트 벡터: 어떤 인터럽트? 자료구조. 1이면 인터럽트 발생
  • 인터럽트 핸들러: 인터럽트의 처리 방법을 함수 형태로 만들어 놓은 것

1-5 버퍼

  • 데이터를 담는 용도
  • 속도가 다른 두 장치의 속도 차이를 완화
  • 버퍼에 담아 한번에 전송
  • 이중 버퍼: 데이터를 담는 용도, 데이터를 가져가는 용도

하드웨어 안전제거
버퍼가 다 찰 때까지 입출력 장치에 자료가 전송 X.
이 상태에서 장치제거 -> 버퍼 안의 데이터가 저장 X

  • 하드웨어 안전 제거 => 버퍼가 덜 차도 강제로 옮김(플러시)

02 디스크 장치

2-1 디스크 장치의 종류

  1. 플래터
  2. 섹터 : 하드디스크의 가장 작은 저장 단위
  3. 블록 : 운영체제 입장에서 가장 작은 저장 단위(하드 디스크와 컴퓨터 사이에 데이터를 전송하는 논리적인 저장단위), 여러 개의 섹터(데이터 연관성, 소설책 읽을 때 읽은 부분에서 이어서 읽는 원리)
  4. 트랙 : 데이터 기록 동심원
  5. 실린더 : 트랙의 집합
  6. 헤드
  7. CD : 휴대할 수 있는 소형 원반
  • 각속도 일정 방식 : 하드 디스크 플래터
    플래터->항상 일정한 속도로 회전
    트랙마다 속도가 다름 -> 섹터의 크기 다름
    장점: 단순하고 조용하게 작동
    단점: 트랙의 섹터 수 동일, 바깥쪽 트랙에 낭비 공간

  • 선속도 일정 방식 : CD
    헤드->어느 트랙에서나 단위 시간당 디스크 이동거리 같음 (안쪽 빠름, 바깥 느림)
    섹터 크기 같음 -> 모든 트랙의 섹터 수 다름
    장점: 많은 데이터 저장, 낭비 공간 X
    단점: 모터 제어 복잡, 소음

2-2 디스크 장치의 데이터 전송 시간

데이터 전송 시간 = 탐색 시간 + 회전 지연 시간 + 전송 시간

2-3 디스크 장치 관리

  1. 파티션
    디스크를 논리적으로 분할하는 작업
    1 파티션, 1 파일 시스템
    대용량 하드디스크-> 여러 개로 나눠 사용하면 관리가 편함
    여러 개의 하드 디스크를 하나의 파티션으로 통합해 사용하기도 함

  2. 마운트
    유닉스 운영체제에서 여러 개의 파티션을 하나로 통합하는 기능

  3. 포매팅
    사용할 수 있는 형태로 만드는 작업(디스크에 파일 시스템 탑재하고 디스크 표면 초기화)
    빈 저장장치에 파일 태이블 탑재
    빠른 포매팅: 데이터 그대로, 파일 테이블 초기화(사용하다가 다시 포매팅)
    느린 포매팅: 디스크에 파일 시스템 탑재, 디스크 표면 초기화(하드 디스크 처음 사용)

  4. 조각모음
    조각 많이 생김 -> 큰 파일 여러 조각으로 -> 읽을 때 여러 곳을 돌아다녀야 함 -> 성능 저하
    주기적으로 조각 모음 필요

2-4 네트워크 저장장치

  1. DAS(HAS): 서버와 같은 컴퓨터에 직접 연결된 저장장치를 사용하는 방식
  2. NAS: 네트워크로 연결
  3. SAS: 서버로 연결

03 디스크 스케줄링

목적: 트랙의 이동을 최소화 -> 탐색 시간을 줄이는 것
1. FCFS
first come first serve
요청이 들어온 순서대로

  1. SSTF
    Shortest Seek Time First
    현재 헤드가 있는 위치에서 가장 가까운 트랙부터
    효율성 좋지만 아사현상(멀다는 이유로 우선순위 낮음)

  2. 블록 SSTF
    큐를 블록 형태로 묶음, 블록 내에서 SSTF 알고리즘
    공평성 보장(에이징 사용), 성능은 FCFS가 더 좋음

  3. SCAN
    헤드가 마지막 트랙에 도착할 때까지 한 방향으로만 이동
    동일 트랙이나 실린더 요청이 연속적으로 발생 -> 아사현상

  4. C-SCAN
    Circular SCAN
    헤드가 한쪽 방향으로 움직임, 반대방향으로 돌아올 때는 서비스 X
    작업 없이 헤드 이동 -> 비효율적
    동일 트랙 요청 연속적 발생 -> 아사현상

  5. LOOK
    한 방향으로 이동하다가 더이상 서비스할 트랙이 없으면 방향을 바꿈(SCAN과 차이)

  6. C-LOOK
    C-SCAN + LOOK

  7. SLTF
    Shortest Latency Time First
    큐에 들어온 요청을 디스크의 회전 방향에 맞춰 재정렬하고 서비스

04 RAID

05 하드웨어의 규격과 발전

메인보드의 포트
CPU 포트, 램 포트, 그래픽 포트, SATA, PCI

직렬포트 병렬포트
직렬: 데이터 한 줄로 이동
병렬: 데이터 여러 줄로 이동

USB 포트

profile
끄적끄적

0개의 댓글