티스토리 뷰

반응형

입출력 시스템

입출력장치와 채널

주변장치

 - 주변장치는 저속 주변장치(키보드, 마우스 등)와 고속 주변장치(그래픽 카드, 하드 디스크 등)으로 나뉨

 - 하나의 버스로 주변장치를 묶으면 저속장치가 고속장치의 데이터 이동을 방해함

 

채널

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

 

채널 공유와 채널 분리

 - 채널은 모든 주변장치가 공유하면 전체적으로 데이터 전송 속도가 느려짐

 - 전송 속도가 비슷한 장치끼리 묶어서 장치별로 채널을 할당하면 전체 데이터 전송 속도를 향상할 수 있음

 

입출력 버스의 구조

초기의 구조

 - 모든 장치가 하나의 버스로 연결

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

 

입출력 제어기를 사용한 구조

 - 버스는 메인버스와 입출력 버스의 2개의 채널로 나뉨

   - 메인버스 : 고속으로 작동하는 CPU와 메모리가 사용

   - 입출력 버스 : 주변장치가 사용

 - 입출력 제어기를 사용하면 느린 입출력장치로 인해 CPU와 메모리의 작업이 느려지는 것을 막을 수 있어 전체 적업 효율 향상

 

입출력 버스의 분리

 - 입출력 제어기를 사용하면 작업 효율을 높일 수 있지만, 저속 주변장치 때문에 고속 주변장치의 데이터 전송이 느려지는 문제가 있음

 - 이를 해결하기 위해 입출력 버스를 고속 입출력 버스와 저속 입출력 버스로 분리하여 운영

 - 고속 입출력 버스에는 고속 주변장치를 연결하고 저속 입출력 버스에는 저속 입출력 장치를 연결

 - 두 버스 사이의 데이터 전송은 채널 선택기가 관리

 - 입출력 버스로 감당하기 어려워진 그래픽카드는 입출력 버스에서 분리하고 메인버스에 바로 연결하여 사용

 - 결론적으로 현대의 컴퓨터는 CPU와 메모리를 연결하는 메인버스, CPU와 그래픽카드를 연결하는 그래픽 버스, 고속 입출력 버스와 저속 입출력 버스를 사용함

 

직접 메모리 접근

직접 메모리 접근(DMA)

 - CPU의 도움 없이도 메모리에 접근할 수 있도록 입출력 제어기에 부여된 권한

 - 입출력 제어기에는 직접 메모리에 접근하기 위한 DMA 제어기가 마련되어 있음

 - 입출력 제어기는 여러 채널에 연결된 주변 장치로부터 전송된 데이터를 적절히 배분하여 하나의 데이터 흐름을 만듦

 - 채널 선택기는 여러 채널에서 전송된 데이터 중 어떤 것을 메모리로 보낼지 결정

 

메모리 공간 분할

 - CPU의 작업 공간과 DMA의 작업 공간이 겹치는 것을 방지하기 위해 과거에는 DMA 제어기가 전송하는 데이터를 '입출력 메모리'라는 별도의 메모리에 보관

 - 현재는 CPU가 작업하는 공간과 DMA 제어기가 데이터를 옮기는 공간을 분리하여 메인 메모리를 운영하는데, 이를 메모리 맵 입출력 이라고 부름

 

인터럽트

입출력과 인터럽트

 - 인터럽트는 주변장치의 입출력 요구나 하드웨어의 이상 현상을 CPU에 알려주는 역할을 하는 신호

 - 각 장치에는 IRQ라는 고유의 인터럽트 번호가 부여되어 있음

 - 인터러브가 발생하면 CPU는 IRQ를 보고 어떤 장치에서 인터럽트가 발생했는지 파악

 

인터럽트의 종류

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

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

 - 시그널 : 사용자가 직접 발생하는 인터럽트

 

인터럽트 벡터

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

 - 인터럽트 벡터의 값이 1이면 인터럽트가 발생했다는 의미

 

인터럽트 핸들러

 - 인터럽트의 처리 방법을 함수 형태로 만들어 놓은것

 - 운영체제는 인터럽트가 발생하면 인터럽트 핸들러를 호출하여 작업함

 - 사용자 인터럽트인 시그널의 경우 자신이 만든 인터럽트 핸들러를 등록할 수 있음

 

 

버퍼링

버퍼

 - 속도가 다른 두 장치 속도 차이를 완화하는 역할을 가진 저장공간

 - 이중 버퍼를 사용하면 한 버퍼는 데이터를 담는 용도로 쓰고 또 한 버퍼는 데이터를 가져가는 용도로 쓸 수 있어 유용

 

하드웨어 안전 제거

 - 버퍼가 다 차지 않으면 버퍼가 다 찰 때까지 입출력장치에 자료가 전송되지 않는데, 이 상태에서 저장장치를 제거하면 버퍼 안의 데이터가 저장되지 않는 문제가발생

 - 하드웨어 안전 제거를 사용하면 버퍼가 다 차지 않아도 강제로 버퍼의 내용이 저장장치로 옮겨짐(플러시)

 

디스크 장치

디스크 장치의 종류

하드디스크의 구조

 

플레터

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

 - 플래터의 표면이 N극을 띠면 0으로, S극을 띄면 1로 인식

 - 보통 2장 이상으로 구성되며 항상 일정한 속도로 회전

 

섹터와 블록

 - 섹터

   - 하드디스크의 가장 작은 저장 단위

   - 하나의 섹터에는 한 덩어리의 데이터가 저장

 - 블록

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

   - 블록은 여러개의 섹터로 구성되며, 윈도우 운영체제에서는 블록 대신 '클러스터'라고 표현

 - 하드디스크 입장에서는 섹터가 가장 작은 저장단위

 - 운영체제 입장에서는 하드디스크에 데이터를 보내거나 받을때 블록이 가장 작은 저장단위

 

트랙과 실린더

 - 트랙 : 플래터에서 회전축을 중심으로 데이터가 기록되는 동심원, 즉 동일한 동심원 상에 있는 섹터의 집합

 - 실린더 : 개념적으로 여러 개의 플래터에 있는 같은 트랙의 집합

 

헤드와 플래터

 - 하드디스크에서 데이터를 읽거나 쓸때는 읽기/쓰기 헤더를 사용

 - 플래터가 회전을 시작하면 표면에 약한 바람이 일어나는데, 헤드는 이 바람에 의해 표면에서 약간 떠 있는 형태로 작동

 - 플래터의 표면에 생긴 상처는 데이터를 저장할 수 없는 배드 섹터가 됨

 

CD

 - 휴대할 수 있는 소형 원반에 데이터를 저장

 - 하드디스크와 마찬가지로 트랙과 섹터로 구성되며, 수평으로 움직이는 헤드가 트랙 사이를 움직이면서 데이터를 읽음

 - 표면에 미세한 홈이 파여있어 헤드에서 발사된 레이저가 홈에 들어가 반사가 되지 않으면 0으로, 반사되어 돌아오면 1로 인식

 

하드디스크와 CD의 디스크 회전

 - 각속도 일정 방식 : 하드 디스크의 플래터는 항상 일정한 속도로 회전하여 바깥쪽 트랙의 속도가 안쪽 트랙의 속도보다 훨씬 빠르므로 가장 바깥쪽에 있는 섹터가 가장 안쪽에 있는 섹터보다 더 큰데, 일정한 시간 동안 이동한 각도가 같다는 의미에서 이러한 방식을 각속도 일정이라고 함

 - 선속도 일정 방식 : CD에서 사용하는 선속도 일정 방식은 어느 트랙에서나 단위 시간당 디스크의 이동 거리가 같은데, 이를 구현하려면 헤드가 안쪽 트랙에 있을 때는 디스크의 회전 속도를 빠르게 하고, 헤드가 바깥쪽 트랙으로 이동했을 떄는 디스크의 회전속도를 느리게 해야 함

 

 

하드디스크와 CD의 섹터

 - 각속도 일정 방식의 섹터

   - 각속도 일정 방식의 하드디스크는 트랙마다 속도가 다르기 때문에 섹터의 크기도 다름

   - 장점 : 디스크가 일정한 속도로 회전하기 때문에 구동 장치가 단순하고 조용하게 작동

   - 단점 : 모든 트랙의 섹터 수가 같고 바깥쪽 섹터의 크기가 안쪽 섹터보다 커서 안쪽 트랙에 비해 바깥쪽 트랙으로 갈수록 낭비되는 공간이 생김

 - 선속도 일정 방식의 섹터

   - 선속도 일정 방식의 CD는 모든 트랙의 움직이는 속도가 같고 섹터의 크기도 같아서 안쪽 트랙보다 바깥쪽 트랙에 더 많은 섹터가 존재(모든 트랙의 섹터 수가 다름)

   - 장점 : CD는 한정된 공간에 많은 데이터를 담을 수 있고 하드디스크처럼 바깥쪽 트랙의 섹터 공간이 낭비되는 문제가 없음

   - 단점 : 모터 제어가 복잡하고 소음이 발생

 

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

하드디스크에서 데이터를 전송하는 과정

//디스크의 데이터 전송 시간 = 탐색시간 + 회전 지연 시간 + 전송시간

 

디스크 장치 관리

파티션

 - 디스크를 논리적으로 분할하는 작업

 - 파티션 하나에 하나의 파일 시스템이 탑재

 - 하드디스크가 2개라면 첫 번째 하드디스크와 두 번째 하드디스크가 별도의 파티션으로 보임

 - 대용량 하드디스크의 경우 하나로 사용하기보다 여러 개로 나누어 사용하면 관리하기가 편함

 - 여러 개의 하드디스크를 하나의 파티션으로 통합하여 사용하기도 함

 

마운트

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

 

포매팅

 - 디스크에 파일 시스템을 탑재하고 디스크 표면을 초기화하여 사용할 수 있는 형태로 만드는 작업

 - 빈 저장장치에 파일 테이블을 탑재

 

빠른 포매팅과 느린 포매팅

 - 하드디스크를 처음 사용할 때는 느린 포매팅을 하고, 하드디스크를 사용하다가 다시 포매팅을 해야 할 때는 빠른 포매팅을 하면 됨

   - 빠른 포매팅 : 데이터는 그대로 둔 채 파일 테이블을 초기화 하는 방식

   - 느린 포매팅 : 디스크에 파일 시스템을 탑재하고 디스크 표면을 초기화 하는 방식

 

조각모음

 - 하드디스크에 조각이 많이 생기면 큰 파일이 여러 조각으로 나뉘어 저장되고 이를 읽기 위해 하드디스크의 여러 곳을 돌아다녀야 하기 때문에 성능 저하로 이어짐

 - 하드디스크는 주기적으로 조각 모음을 해주어야 함

 

네트워크 저장장치

DAS(Direct Attached Storage)

 - 서버와 같은 컴퓨터에 직접 연결된 저장장치를 사용하는 방식

 - HAS(Host Attached Storage)라고도 부름

 - 예를들어 윈도우 파일 공유가 있음(여러 컴퓨터 중 하나를 공유 서버로 지정하고 나머지 컴퓨터에서 서버로 지정된 컴퓨터에 접근하여 파일을 이용하는 방식으로 운영)

 - 단점

   - 컴퓨터에 집접 연결된 저장장치를 사용하기 때문에 다른 운영체제가 쓰는 파일 시스템을 사용할 수 없음

   - 데이터의 관리나 백업을 사용자가 직접 해야함

 

NAS(Network Attached Storage)

 - 기존의 저장장치를 LAN이나 WAN에 붙여서 사용하는 방식

 - NAS 전용 운영체제를 가진 독립적인 장치로 세로운 하드디스크를 추가하거나 뺄 수 있음

 - 저장장치를 네트워크상에 두고 여러 클라이언트가 네트워크를 통해 접근하게 험으로써 공유 데이터의 관리 및 데이터의 중복 회피가 가능


SAN(Storage Area Network)

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

 - 시스템이 제공하는 인터페이스를 통해 데이터에 접근

 - 저장장치에 필요한 장치를 네트워크로 묶어 하나의 시스템을 구성하기 때문에 다양한 서비스를 제공

 - 데이터의 공유, 백업, 보완 등이 서버를 통해 자동으로 이루어짐

 - 데이터 서버나 백업 서버를 같이 구축하여 NAS보다 구축 비용이 많이듬

 

디스크 스케줄링

FCFS 디스크 스케줄링

FCFS 디스크 스케줄링(First Come First Service disk scheduling)

 - 요청이 들어온 순서대로 서비스

 - 헤드가 이동한 총거리 : 7+9+6+8+20+4+5+6 = 65

 

SSTF 디스크 스케줄링

SSTF 디스크 스케줄링(Shortest Seek Time First disk scheduling)

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

 - 다음에 서비스할 두 트랙의 거리가 같다면 먼저 요청받은 트랙을 서비스

 - 헤드가 이동한 총 거리 : 1+3+3+1+3+12+3+5 = 31

 - 효율성은 좋지만 기아 현상을 일으킬 수 있어 사용하지 않음

 

블록 SSRF 디스크 스케줄링

블록 SSRF 디스크 스케줄링

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

 - 모든 트랙은 블록 안에서만 움직임

 - 헤드가 이동한 총 거리 : 2+9+3+8+20+3+1+5 = 51

 - 에이징을 사용하여 공평성을 보장하지만 성능은 FCFS 디스크 스케줄링 만큼 좋지 않음

 

SCAN 디스크 스케줄링

SCAN 디스크 스케줄링

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

 - 헤드가 이동한 총 거리 : 1+3+3+5+3+17+2+1+3 = 38

 - 동일한 트랙이나 실린더 요청이 연속적으로 발생하면 헤드가 더 이상 나아가지 못하고 제자리에 머물게 되어 바깥쪽 트랙이 아사 현상을 겪는 문제가 발생

 

C-SCAN 디스크 스케줄링

C-SCAN 디스크 스케줄링(Circular SCAN disk scheduling)

 - SCAN 디스크 스케줄링을 변형한 것 - 헤드가 한쪽 방향으로 움직일때는 요청받은 트랙을 서비스하고 반대 방향으로 돌아올 때는 서비스 하지 않고 이동만 함

 - 헤드가 이동한 총 거리 : 1+3+3+5+3+24+1+3+1+2=46

 - 작업 없이 헤드를 이동하는 것은 매우 비효율적

 - 동일한 트랙(실린더) 요청이 연속적으로 발생하면 바깥쪽 트랙이 아사 현상을 겪음

 

 

LOOK 디스크 스케줄링

LOOK 디스크 스케줄링(LOOK disk scheduling)

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

 - 헤드가 이동한 총 거리 : 1+3+3+5+17+2+1+3 = 35

 

C-LOOK 디스크 스케줄링

C-LOOK 디스크 스케줄링(Circular LOOK disk scheduling)

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

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

 - 헤드가 이동한 총 거리 : 1+3+3+5+20+3+1+2 = 38

 

SLRF 디스크 스케줄링

SLRF 디스크 스케줄링(Shortest Latency Time First disk scheduling)

 - 큐에 들어온 요청을 디스크의 회전 방향에 맞추어 재정렬한 후 서비스

RAID

RAID의 개요

RAID(Redundant Array Independent Disks)

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

 - 하나의 원본 디스크와 같은 크기의 백업 디스크에 같은 내용을 동시에 저장하고, 하나의 디스크가 고장 났을 떄 다른 디스크를 사용하여 데이터를 복구

 - RAID 0, 1, 10 외에 RAID 2, 3, 4, 5, 6, 50, 60 등이 있음

 

RAID 0(스트파이핑)

RAID 0

 - 같은 규격의 디스크를 병렬로 연결하여 여러 개의 데이터를 여러 디스크에 동시에 저장하거나 가져올 수 있음(백업기능 없음)

 - 데이터를 여러 갈래로 찢어서 저장하기 때문에 RAID 0을 스트라이핑이라 부름

 - 4개의 디스크로 구성된 RAID 0은 1개의 디스크로 구성된 일반 시스템보다 이론적으로는 입출력 속도가 4배 빠름

 - 장애가 발생하면 데이터를 잃지만 입출력이 빨라 RAID 1, 5, 6과 같이 사용

 

RAID 1(미러링)

RAID 1

 - 하나의 데이터를 2개의 디스크에 나누어 저장하여 장애 시 백업 디스크로 활용

 - 데이터가 똑같이 여러 디스크에 복사되기 때문에 미러링이라고 부름

 - 같은 크기의 디스크를 최소 2개 이상 필요로 하며 짝수 개의 디스크로 구성

 - 저장하는 데이터와 같은 크기의 디스크가 하나 더 필요하기 때문에 비용이 증가

 - 같은 내용을 두 번 저장하기 때문에 속도가 느려질 수 있음

 

RAID 2

RAID 2

 - 오류를 검출하는 기능이 없는 디스크에 대해 오류 교정 코드(ECC)를 따로 관리하고, 오류가 발생하면 이 코드를 이용하여 디스크를 복구

 - 오류 교정 코드를 별도의 디스크에 따로 보관하고 있다가 장애가 발생하면 이를 이용하여 데이터를 복구

 - 비트별로 만들어진 오류 교정 코드는 별도의 디스크에 저장되며, 장애 발생 시 이 코드를 이용하여 데이터를 복구

 - n개의 디스크에 대해 오류 교정 코드를 저장하기 위한 n-1개의 추가 디스크를 필요로 하므로 RAID 1 보다는 작은 저장 공간을 요구하지만 오류 교정 코드를 계산하는 데 많은 시간을 소비하여 잘 사용되지 않음

 

RAID 3

RAID 3

 - 섹터 단위로 데이터를 나누어 저장

 - N-way 패리티 비트를 구성한 후 데이터 디스크가 아닌 별도의 디스크에 보관함으로써 장애 발생 시 오류를 복구

 - RAID 3에서 추가되는 디스크의 양은 4개의 디스크당 1개 정도

 - 추가되는 디스크의 양은 적지만 N-way 패리티 비트를 구성하는 데 필요한 계산량이 많다는 것이 단점

 

RAID 4

RAID 4

 - RAID 3과 유사하나 섹터가 아닌 블록 단위로 저장

 - 데이터가 저장되는 디스크와 패리티 비트가 저장되는 디스크만 동작한다는 것이 단점

 - RAID 3과 마찬가지로 페리티 비트를 추가하기 위한 계산량이 많지만 추가되는 디스크의 양은 적음

 

RAID 5

RAID 5

 - 패리티 비트를 디스크에 분산하여 보관함으로써 패리티 비트 디스크의 병목현상을 완화

 - 패리티 비트를 해당 데이터가 없는 디스크에 보관

 - 한 디스크에 장애가 발생하면 다른 디스크에 있는 패리티 비트를 이용하여 데이터를 복구할 수 있음

 

RAID 6

RAID 6

 - RAID 5와 같은 방식이지만 패리티 비트가 2개여서(5에서는 1개) 디스크 2개의 장애를 복구할 수 있음

 - 패리티 비트를 2개씩 운영하기 때문에 RAID 5보다 계산량이 많고 4개의 디스크당 2개의 추가 디스크가 필요하다는 단점이 있음

 

RAID 10

RAID 10

 - 미러링 기능을 가진 RAID 1과 빠른 데이터 전송이 가능한 RAID 0을 결합한 형태

 - 디스크를 RAID 0으로 먼저 묶으면 RAID 0+1이 되고, RAID 1로 먼저 묶으면 RAID 10이 됨

 - RAID 0+1의 경우 장애가 발생했을 때 복구하기 위해 모든 디스크를 중단해야 하지만 RAID 10은 일부 디스크만 중단하여 복구가 가능

 

RAID 50과 RAID 60

RAID 50과 RAID 60

 - RAID 50 : RAID 5로 묶은 두 쌍을 다시 RAID 0으로 묶어사용

 - RAID 60 : RAID 6으로 묶은 두 쌍을 다시 RAID 0으로 묶어 사용

하드웨어의 규격과 발전

포트의 규격

메인보드의 포트

 - CPU 포트 : CPU를 꽂는곳

 - 램 포트 : 램을 수직으로 꽂는곳

 - 그래픽 포트 : 외부 그래픽카드를 연결하는 포트

 - SATA(Serial ATA) : 하드디스크 같은 저장장치를 연결하는 직렬 ATA 포트

 - PCI : 그 외의 주변장치는 메인보드에 주변장치를 연결하는 포트

 

직렬포트와 병렬 포트

 - 버스의 통신 방식은 크게 직렬 방식과 병렬 방식으로 구분

 - 직렬 방식에서는 데이터가 한 줄로 이동하고 병렬 방식에서는 데이터가 여러 줄로 동시에 이동

 

USB 포트

 - 키보드, 마우스, 프린터, 카메라, 저장장치 등 다양한 주변장치를 연결하기 위해 만든 표준 연결 포트

 

포트 연결 단자

 - USB : USB 메모리나 카메라 등 다양한 주변장치를 연결할 수있는 범용 포트

 - SATA :  컴퓨터 내부에 있는 각종 저장장치를 연결할 때 사용

 - D-SUB(S-SUBminiature) : 가장 오래된 모니터 연결 단자로 대개 파란색

 - DVI(Digital Visual Inteface) : 컴퓨터 디스플레이와 디지털 프로젝터 같은 디지털 디스플레이 장치의 화질에 최적화된 표준 영상 인터페이스

 - HDMI(High Definition Multimedia Interface) : 비압축 방식의 디지털 비디오/오디오 인터페이스 규격

 

CD의 규격

오디오용 CD

 - 약 74분 분량의 음원 파일이 저장

 

비디오용 CD

 - MPEG 레벨 1로 압출된 최대 83분 분량의 영화저장

 

DVD

 - HD로 녹화된 TV 프로그램이나 영화를 CD에 저장하기에는 용량이 턱없이 부족하여 개발된 디스크

 

블루레이 디스크

 - 싱글레이어 블루레이 디스크는 25GB를, 더블레이어 블루레이 디스크는 50GB를 저장할 수 있음

 - 높은 해상도의 동영상이나 압축하지 않은 고음질의 음악을 저장하는데 사용

 

그래픽카드의 발전

그래픽카드의 발전

 - CPU는 복잡한 그래픽 계산에 적합하게 설계되지 않음

 - 현대의 컴퓨터 시스템에는 그래픽 카드에 그래픽 계산만 전담하는 GPU가 추가됨

 - 일반적인 작업은 CPU가 담당하고 그래픽 작업은 GPU가 담당하는 형태로 바뀜

 - 고성능 3D게임을 하기 위해서는 좋은 CPU보다 좋은 GPU가 달린 그래픽카드를 선택해야 함

 - GPU의 계산 능력이 커짐에 따라 알파고나 가상화폐 채굴뿐 아니라 다양한 곳에 GPU가 활용되고 있음

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함