티스토리 뷰

반응형

입출력 시스템

주변장치는 데이터 전송 속도에 따라 저속 주변장치고속 주변장치로 구분할 수 있다.

 

  • 저속 주변장치

    메모리와 주변장치 사이에 오고 가는 데이터의 양이 적어 데이터 전송률이 낮은 장치를 말한다.

  • 고속 주변장치

    메모리와 주변장치 사이에 대용량의 데이터가 오고 가므로 데이터 전송률이 높은 장치를 말한다.

여러 주변장치는 메인보드 내의 버스로 연결된다.

 

 

➕채널

데이터가 지나다니는 하나의 통로


입출력 버스의 구조

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

 

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

 

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

초기 입출력 버스

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

 

입출력 제어기

 

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

 

입출력 버스 분리

 

 

📚 정리

폴링 -> 입출력 제어기 -> 입출력 버스의 분리

 


🎁 직접 메모리 접근

직접 메모리 접근(DMA)은 CPU의 도움 없이도 메모리에 접근할 수 있도록 입출력 제어기에 부여된 권한으로, 입출력 제어기에는 직접 메모리에 접근하기 위한 DMA 제어기가 마련되어 있다.

 

🎁 인터럽트

주변 장치의 입출력 요구나 하드웨어의 이상 현상을 CPU에 알려주는 역할을 하는 신호다. 각 장치에는 고유의 인터럽트 번호인 IRQ가 부여된다.

 

🎈인터럽트 종류

  1. 외부 인터럽트

    입출력 장치로부터 오는 인터럽트뿐 아니라 전원 이상이나 기계적인 오류 때문에 발생하는 인터럽트를 포함

  2. 내부 인터럽트

    프로세스의 잘못이나 예상치 못한 문제 때문에 발생하는 인터럽트

  3. 시그널

    사용자가 직접 발생시키는 인터럽트

🎈인터럽트 벡터

여러 인터럽트 중 어떤 인터럽트가 발생했는지 파악하기 위해 사용하는 자료 구조다.

 

*값이 1이면 발생, 0이면 미발생

 

🎈인터럽트 핸들러

인터럽트의 처리 방법을 함수 형태로 만들어놓은 것을 말한다. 운영체제는 인터럽트가 발생하면 인터럽트 핸들러를 호출하여 작업한다.

 

 

📣 버퍼속도가 다른 두 장치의 속도 차이를 완화하는 역할을 한다.

 


디스크 장치

하드디스크원반을 사용한 저장장치로, 맨 앞에 있는 데이터나 맨 뒤에 있는 데이터에 접근하는 속도가 거의 비슷하다.

 

💿하드디스크의 구조

  • 플래터

    표면에 자성체가 발려 있어 자기를 이용하여 0과 1의 데이터를 저장할 수 있다.

  • 섹터와 블록

    섹터 : 하드디스크의 가장 작은 저장 단위
    블록 : 하드디스크와 컴퓨터 사이에 데이터를 전송하는 논리적인 저장 단위 중 가장 작은 단위

  • 트랙과 실린더

    트랙 : 플래터에서 회전축을 중심으로 데이터가 기록되는 동심원
    실린더 : 개념적으로 여러 개의 플래터에 있는 같은 트랙의 집합

  • 헤드와 플래터

    - 하드디스크에서 데이터를 읽거나 쓸 때는 읽기/쓰기 헤드를 사용
    - 헤드는 플래터의 회전 바람에 의해 표면에서 약간 떠 있는 형태로 작동

 

CD휴대할 수 있는 소형 원반에 데이터를 저장한다.

 

💨 디스크의 데이터 전송 시간

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

 

📃 디스크 장치 관리

디스크 장치를 사용하는 데에는 관리 기법이 필요하다.

 

  1. 파티션 : 디스크를 논리적으로 분할하는 작업
  2. 포매팅 : 디스크 표면을 초기화하는 작업
  3. 조각 모음 : 디스크에 파일을 저장했다가 지우기를 반복함으로써 중간중간에 생긴 빈 공간을 하나로 모으는 작업

 

📃 네트워크 저장장치

네트워크를 사용하는 저장장치는 어떻게 구성하느냐에 따라 DAS, NAS, SAN으로 구분된다.

 

1️⃣ DAS : 서버와 같은 컴퓨터에 직접 연결된 저장장치

2️⃣ NAS : 기존의 저장 장치를 LAN이나 WAN에 붙여서 사용하는 방식

3️⃣ SAN : 데이터 서버, 백업 서버, RAID 등의 장치를 네트워크로 묶고 데이터 접근을 위한 서버를 두는 형태

 


디스크 스케줄링

디스크 스케줄링은 트랙의 이동을 최소화하여 이 탐색 시간을 줄이는 데 목적이 있다.

 

📀 디스크 스케줄링의 종류

  1. FCFS 디스크 스케줄링
  2. SSTF 디스크 스케줄링
  3. 블록 SSTF 디스크 스케줄링
  4. SCAN 디스크 스케줄링
  5. C-SCAN 디스크 스케줄링
  6. LOOK 디스크 스케줄링
  7. C-LOOK 디스크 스케줄링
  8. SLTF 디스크 스케줄링

 

1️⃣ FCFS 디스크 스케줄링

가장 단순한 디스크 스케줄링 방식으로, 요청이 들어온 트랙 순서대로 서비스한다.

 

2️⃣ SSTF 디스크 스케줄링

현재 헤드가 있는 위치에서 가장 가까운 트랙부터 서비스한다.

 

3️⃣ 블록 SSTF 디스크 스케줄링

SSTF 디스크 스케줄링 + 에이징

SSTF 디스크 스케줄링의 공평성 위배를 에이징을 사용하여 어느정도 해결하였다.

 

- 큐에 있는 트랙 요청을 일정한 블록 형태로 묶는다.

- 모든 트랙이 블록 안에서만 움직인다.

 

4️⃣ SCAN 디스크 스케줄링

헤드가 움직이기 시작하면 맨 마지막 트랙에 도착할 때까지 뒤돌아가지 않고 계속 앞으로만 전진하면서 요청받은 트랙을 서비스한다.

 

❗ 동일한 트랙이 실린더 요청이 연속으로 발생하면 헤드가 더 이상 나아가지 못하는 아사 현상 발생

 

5️⃣ C-SCAN 디스크 스케줄링

SCAN 디스크 스케줄 변형

헤드가 한쪽 방향으로 움직일 때는 요청받은 트랙을 서비스하고 반대 방향으로 돌아올 때는 서비스하지 않고 이동만 한다.

 

❗ 동일한 트랙 요청이 연속적으로 발생하면 아사 현상 발생

 

6️⃣ LOOK 디스크 스케줄링

더 이상 서비스할 트랙이 없으면 헤드가 끝까지 가지 않고 중간에서 방향을 바꾸는 서비스다.

 

7️⃣ C-LOOK 디스크 스케줄링

C-SCAN 디스크 스케줄링의 LOOK 버전

 

한쪽 방향으로만 서비스하는 C-SCAN 디스크 스케줄링에 더 이상 서비스할 트랙이 없으면 헤드가 중간에서 방향을 바꿀 수 있는 서비스다.

 

8️⃣ SLTF 디스크 스케줄링

작업 요청이 들어온 섹터의 순서를 디스크가 회전하는 방향에 맞추어 다시 정렬한다. 최소 지연 우선 기법이라고도 한다.

 


RAID

RAID는 자동으로 백업을 하고 장애가 발생하면 이를 복구하는 시스템이다.

 

디스크를 구성하는 방식에 따라 RAID 0, 1, 2, 3, 6, 0+1, 10, 50, 60 등이 있다.

 

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함