728x90
6.1 서론
연산보다 저장장치에 대한 신용도의 기준은 매우 높다.
입출력장치의 특성
1. Behaviour : 인풋, 아웃풋, 저장
2. Partner : 입출력장치의 반대쪽 끝에서 입력 데이터를 주거나 출력데이터를 읽어가는 사람 또는 기계
3. Data rate : 데이터를 주고 받을 수 있는 최고 속도
6.2 신용도, 신뢰성과 가용성
Defendability(신용도) : 서비스에 대하여 합리적인 수준에서 신뢰할 수 있는 서비스의 품질. 추상적인 개념
Reliablity(신뢰성) : 어떤 기준 시점으로부터 서비스 수행의 지속성에 대한 측도로 장애가 발생하기까지의 시간과 같다.
MTTF(mean time to failure) : 평균 무장애시간. 이것이 신뢰성의 측도
MTTR(mean time to repair) : 평균 복구시간. 서비스 중단의 측정
MTBF(mean time between failure) : 장애간 평균시간
MTTF + MTTR
가용성(availability) : 서비스의 수행과 중단. 두상태를 왔다갔다 하는데 관련된 서비스 수행에 대한 측도
MTTF / MTBF
- 신뢰성과 가용성은 정량화 할 수 있다. 신용도는 그렇지 않다.
- 가용성의 향상 방법
MTTF를 늘린다. : 결함 회피, 결함 감내, 결함 예상
MTTR을 줄인다. : 핫플러깅도 복구시간을 단축하는 방법
6.3 디스크 저장장치
- 데이터는 실린더 단위로 저장이된다.
- 데이터 접근 3단계
seek time : 디스크 헤드를 원하는 트랙까지 이동시키는 데 걸리는 시간
rotation latency : 해당 트랙에서 섹터가 헤드아래위치까지로 회전하는 시간
transfer time : 하나의 섹터를 전송하는 데 필요한 시간
*** 예제
- 디스크 성능의 향상방법
평균 seek time 감소
reordering(use locality) 과 디스크 스케줄링이용
6.4 플래시 저장장치
작고 저전력에다 저발열, 충격에 강하다.
하지만 비싸다.
EEPROM이라 마모(wear out)된다.
6.5 프로세서, 메모리와 입출력장치 연결
버스 : 한 다발의 전송선을 이용하여 여러 서브시스템을 연결하는 공유 통신 링크
장점 : 융통성과 비용
단점 : 통신 병목이 발생하여 입출력 처리량을 제한할 수 있다는 점.
버스 설계가 어려운 이유 : 버스의 최고속도가 버스 길이나 장치개수같은 물리적 요인에 의해 주로 결정
동기식 버스 : 클럭을 이용해서. 클럭이 시작할 때 데이터를 보내고 주소를 보내고 한다.
비동기식 버스 : 패턴주소를 만들어서 000000이면 주소, 100000이면 데이터 이런 식으로.
6.6 입출력장치와 메모리 프로세서, 운영체제와의 인터페이스
IO 관리 : 운영체제가 중재한다.
여러개의 프로그램중 누가 자원을 쓸 것인지. IO컨트롤러는 비동기 인터럽트를 발생시킨다.
IO 프로그래밍은 매우 성가시다 ?
입출력장치는 입출력 컨트롤러 하드웨어에 의해서 관리된다.
Command register : 어떤 명령어를 발생시킨다.
Status registers : 어떤 장치가 수행중이고 에러가 발생했는지 알려준다.
Data registers : 읽기 쓰기
입출력장치에 명령어 보내기
Memory-mapped I/O : 주소를 이용하여 주변장치에 접근
주소공간의 일부분이 입출력장치에 할당
이 주소공간에서의 읽기/쓰기는 입출력장치로의 명령으로 해석
기존의 메모리 접근 명령어 사용하는 장점
주소공간 일부를 메모리가 사용할 수 있음
입출력 명령어 사용
주변장치의 번호(descripter)와 명령워드 둘다 명시할 수 있다.
입출력 장치에 접근하는 별도의 지정된 입출력 명령어 사용
커널 모드에서 실행( write나 read 등 시스템콜은 user mode에서는 실행을 하지 않는다. )
입출력장치와 프로세서(CPU)와의 통신 -> 폴링과 인터럽트
1.폴링 : 상태 비트를 주기적으로 검사
저사양 PC나 리얼타임 임베디드 시스템에서 사용. 저렴하나 비효율적
2.인터럽트 : 과제가 끝났을 때 processor에게 인터럽트를 건다.
명령어 사이에 들어갈 수 있다.
priority interrupt : 낮은 우선순위의 인터럽트 처리를 하는 중
높은 우선순위 인터럽트가 걸리면 낮은 거 중단하고 높은거 실행
-> 이런 것들은 CPU가 처리한다.
3. 직접 메모리 접근방식 사용(DMA)
왜? 프로세서가 매 입출력 이벤트마다 디스크로부터 데이터 전송을 하는데
인터럽트 방식이 사용되기에는 디스크가 데이터를 전송할 때 프로세서 시간의 상당 부분을 사용하게 되므로 오버헤드 크다.
메모리와 입출력장치 사이에서 데이터 교환이 CPU의 간섭없이 일어나는 것
파일 읽기 시나리오(시스템프로그래밍 강의에서. )
– 응용프로그램이 OS에 입출력 요청
– OS의 파일 서비스 프로그램이 디스크 드라이버를 호출
– 디스크 드라이버(프로그램 일종)는 디스크에서 원하는 파일을 DMA를 이용하여 읽어옴. (메모리에 저장)
– 파일읽기 완료를 인터럽트에 의해 CPU에 알림
– 디스크 드라이버(프로그램 일종)는 디스크에서 원하는 파일을 DMA를 이용하여 읽어옴. (메모리에 저장)
– 파일읽기 완료를 인터럽트에 의해 CPU에 알림
암달의 법칙 : CPU의 계산능력이 늘어난다고 입출력성능을 무시하지 말라.
전체중 일부의 성능을 개선했다고 해서 전체의 성능이 그 만큼 좋아지지는 않는다는 법칙
무어의 법칙 : 디바이스는 18개월마다 성능이 두배씩 좋아진다.
6.9 RAID
하드디스크를 여러개를 써서 성능도 높이고 신뢰도도 높이는 시스템
RAID 0 : N개의 하드에 데이터를 저장하는 방식
성능은 높아지지만 신뢰도는 높아지지 않는다.
RAID 1 : 미러링사용, 1부터 신뢰도가 올라간다.
복수의 디스크에 같은 데이터를 저장한다.
RAID 2 : ECC(Error Correcting Code)
너무 복잡하여 실제로 사용되지 않는다.
해밍 디스턴스 코드와 비슷한 원리
RAID 3 : N+1개의 디스크
한개의 디스크는 Parity용으로 사용
RAID 4 : 디스크 수명이 많이 떨어진다.
RAID 5 : RAID4 는 한 디스크에 데이터 블럭 코드를 저장하는 반면 RAID5는 여러 디스크에 나누어서 저장
건물이 불 날 수도 있으니 지리적으로 떨어진 곳에서도 백업
728x90
'컴퓨터구조' 카테고리의 다른 글
컴퓨터 구조 정리 6번째 (0) | 2012.07.13 |
---|---|
컴퓨터 구조 정리 5번째 (0) | 2012.07.13 |
컴퓨터 구조 정리 4번째 (0) | 2012.07.13 |
컴퓨터 구조 정리 2번째 (0) | 2012.07.13 |
컴퓨터 구조 정리 1번째 (0) | 2012.07.13 |