티스토리 뷰

it

입출력 시스템

name19 2023. 2. 13. 20:37

QR인식 or 이미지 클릭하여 회원가입시(평생 수수료 25%이상 할인)-[25% or more discount on commission]

 

아래 링크를 통해 가입시 바이낸스 코인 거래수수료 25% 평생할인!

25% lifetime discount on Binance Coin transaction fees when you sign up through the link below!

https://accounts.binance.com/en/register?ref=286562663

 

Log In | Binance

login-description

accounts.binance.com

 

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! (바이낸스 가입 레퍼럴코드, 추천

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! 바이낸스 가입코드, 레퍼럴코드, 추천코드, 할인코드  :  ( 286562663 ) 아래 링크를 통해 가입시 25% 할인 받을 수 있습니다 http

pink24.tistory.com

 

 

(구글 나라별 추천검색어가 다릅니다 - find 를 검색해보았더니..)

 

호주구글 영국구글 우회접속 주소(나라별 구글 우회 바로가기 링크 2023) - 일체유심조

구글 우회접속 주소 에 대해 공유드리기 전에

wgmakeit.com

 

컴퓨터 구조의 발전 과정 - 일체유심조

우선 주요 부품들의 발전 과정에 대해 알아보겠습니다.초기 컴퓨터들의 근본적인 설계 개념과 동작 원리가 현대의 컴퓨터들과 거의 같은데요, 최초의 컴퓨터는 Blaise Pascal이 개발한 덧셈과 뺄셈

wgmakeit.com

반응형

입출력 시스템
컴퓨터 시스템의 입출력 장치와 입출력 모듈을 포함.
물리적 입출력 장치는 실제 입출력을 수행함.
입출력 모듈은 내부 저장장치와 물리적 입출력 장치(외부 입출력장치) 사이의 2진 정보를 전송하기 위한 방법 제공.
- 입출력장치의 물리적 특성으로부터 프로세서를 독립시켜 제어함.

입출력 모듈
프로세서를 대신하여 입출력과 관련된 복잡한 일 수행.
입출력 채널(I/O Channel) 또는 입출력 프로세서(I/O Processor)라 함.
단순히 프로세서의 입출력과 관련된 일 담당.
입출력 제어기(I/O controller) 또는 장치 제어기(Device Controller)라 함.

[그림 9-1] 입출력 모듈을 통해 시스템 버스에 연결됨.
- 입출력장치에 따라 제어 방법과 운용 방식이 다르므로 입출력 모듈을 통해 연결됨.

프로세스와 입출력장치의 실행속도가 다르므로, 각 입출력장치의 실행속도를 맞추는 과정이 필요함.
- 장치들을 동기화시키지 못하면 실행속도가 다르기 때문에 데이터의 손실이 발생될 수 있음.
정보의 단위와 처리량도 동기화해야 함.
- 컴퓨터 내부의 정보 단위는 워드(Word)이며, 입출력장치가 다루는 정보의 단위는 문자(Character).
- 프로세서보다 입출력장치의 처리속도가 느리므로 시간의 낭비가 발생될 수 있음.

입출력 모듈의 구성.
- 제어장치들의 수와 구조에 따라 구성이 다양함.
- [그림 9-2] 일반적인 입출력 모듈의 내부 조직.

- 입출력 모듈로 들어가거나 나오는 데이터는 일시적으로 데이터 레지스터에 저장됨.
- 현재의 상태정보가 저장되는 상태 레지스터는 프로세서에서 보내는 제어 정보를 받기 위해 제어 레지스터로 동작함.
- 제어 레지스터는 프로세서로부터 받은 명령에 따라 자신이 제어하는 각 장치와의 인터페이스를 위한 입출력 논리회로를 가짐.
- 신호선(시스템 버스선)을 통해 컴퓨터 내의 다른 부분들과 연결, 모듈 내의 입출력 논리회로는 제어선을 통해 프로세서와 교신(프로세서가 입출력 모듈로 명령을 보내는 데 사용)함.

입출력 모듈의 기능.
- 입출력장치의 제어.
* 내부 자원들과 데이터 입출력을 비롯한 다양한 동작 조정을 위한 제어와 타이밍 기능 제공.
* 프로세서가 입출력장치에 명령어를 보내려면 입출력장치의 식별자(Identity)를 주소로 지정해야 함.
* 주소 지정 방법은 전용 입출력 주소 방식과 메모리 사상 주소 방식이 있음.

- 프로세서와의 통신.
* 입출력 모듈은 프로세서로부터 수행해야 할 명령어를 전달받고 관련된 메시지를 인식하기 위한 기능을 제공함.
* 메시지 인식을 위해 명령 해독, 데이터 교환, 상태 보고, 주소 인식 등의 과정을 거침.

- 데이터 버퍼링.
* 메인 메모리나 프로세서의 데이터 전송률은 높으나, 입출력장치의 전송률은 낮음.
* 데이터는 입출력 모듈 내에 일시적으로 저장되었다가 적절한 속도로 주변장치로 내보내야 함.
* 반대 방향으로 데이터를 보낼 때는 메인 메모리 등이 느린 전송률에 영향을 받지 않도록 데이터를 일시 저장할 수 있는 버퍼를 제공, 데이터를 전송함.

- 오류검출.
* 기계적 오류와 전송 오류 등이 있으며, 전송 오류 검출을 위해 오류검출 코드(패리티 비트)를 사용.

프로그램 제어 입출력.
프로세서 내부에 있는 입출력 데이터와 주소 레지스터를 입출력 모듈과 연결한 형태.
주소 레지스터와 버스 사이에서 데이터를 직접 전송할 수 있는 가장 간단한 형태.
폴링(Polling)방식(바쁜 대기)라고도 함.
상대적으로 프로세서보다 느린 입출력장치의 입출력 동작 상태를 확인하기 위해 상태 비트(Status Bit)를 주기적으로 검사함.
[그림 9-3] 데이터 전송 시, 폴링 순환 수행.
- 프로세서는 주변장치에 전송할 데이터가 있는 경우, 입출력장치가 데이터를 받을 준비가 되어 있는지 확인하기 위해 포트 상태 레지스터를 확인.
- 플래그를 검사하여 입출력장치가 준비되어 있다면 데이터를 전송함.
- 준비되어 있지 않다면 루프를 돌아 다시 포트 상태 레지스터를 확인.

폴링의 횟수는 데이터 전송의 성능에 영향을 끼침.
- 폴링이 너무 빈번히 수행되면 프로세서는 입출력 동작의 진행 여부 검사에 많은 시간을 낭비함.
- 폴링 횟수가 너무 작으면 입출력장치는 오랜 시간 동안 쉬게 됨.

입력된 데이터는 입출력(인터페이스) 모듈을 거쳐 한 번에 한 워드씩 입출력 데이터 레지스터로 전송.
입출력 데이터 레지스터에서는 프로그램에 의해서 데이터를 산술논리연산장치(누산기)로 전송.
- 출력의 경우, 입력과 반대로 전송됨.

모든 데이터 전달은 프로세서의 입출력 명령어에 따름.
- 입출력장치는 메모리를 직접 액세스할 수 없음.
- 명령어 수행에 따른 프로세서의 역할이 요구되어 프로세서의 부담이 큼.
프로세서 제어 입출력 시스템의 경우 데이터 처리 속도가 느림.
- 명령어 인출과 실행 사이클이 모든 데이터의 입출력이 종료된 후에 실행됨.
- 프로그램 제어 입출력 방식은 저속장치(키보드, 프린터, 모니터 등)에 적합함.

인터럽트 기반 입출력 : 외부 입력 제어.
입출력장치가 작업을 완료한 후 작업과 관련된 상태와 결과를 메모리에 저장, 인터럽트를 발생시켜 프로세서에 알림.
인터럽트를 받은 프로세서는 입출력 명령어를 전송, 입출력 작업 중에 다른 작업을 시작할 수 있음.
프로세서가 입출력장치에 프로세서의 도움이 필요한지 확인하는 절차 대신 직접 입출력장치가 프로세서에 신호를 주는 방식.
불규칙적이고 빠른 응답성을 요구하는 경우에 적합함.
장단점.
- 프로세서는 폴링 절차를 생략하여 입출력 연산의 대기시간을 소모할 필요가 없어 효율성이 증가함.
- 현재의 작업 내용을 스택에 저장한다는 오버헤드가 존재.
- 모든 데이터가 프로세서의 레지스터에서 전송됨.

DMA(Direct Memory Access) 입출력.
프로세서의 부담을 줄이기 위해, 메인 메모리를 직접 제어하여 데이터를 전송.
- 프로세서는 읽기 및 쓰기 정보를 비롯한 입출력 주소와 메모리 주소 그리고 길이를 DMA 제어기에 전달(입출력 요청).
- DMA 제어기는 버스 관리자(Master)로서 직접 작업을 처리.
[그림 9-6] DMA 입출력 과정.

프로세서에서 입출력장치로 데이터를 블록 단위로 전송 가능.
- 제어는 입출력 모듈에서 담당, 전송은 프로그램 제어 입출력이 담당.
- 전송이 완료되면 출력 모듈은 프로세서에 인터럽트를 발생하여 종료를 통보, 데이터를 메모리에 보관함.
- 프로그램은 메모리의 데이터를 사용.
고속 디스크의 데이터 전송에 적합한 방식으로, 멀티미디어와 같은 대용량 데이터 전송에 적합함.

[그림 9-7] DMA 전송 동작.

① 프로세서는 전송방향(입력 또는 출력), 전송 바이트 수, 데이터 블록의 메모리 주소 등을 DMA 제어기에 보냄.
② DMA 제어기는 프로세서의 도움 없이 디스크 제어기에 데이터를 메인 메모리로 전송할 것을 요청함.
③ 디스크 제어기는 메인 메모리에 데이터 전송을 수행.
④ 전송이 완료되면 디스크 제어기는 DMA 제어기에 완료 메시지를 전달.
⑤ DMA 제어기는 프로세서에 인터럽트 신호를 보냄.
※ 프로세서는 데이터의 전송 시작과 종료 시에만 관계함.

DMA 제어기.
- 버스 시스템(Bus System)이 하나인 마이크로컴퓨터에서 입출력이 진행되는 동안 모든 버스 제어 신호를 생성, 전송하는 버스 마스터 역할을 수행.
- 프로세서보다 우선순위가 높으므로, 프로세서는 DMA 제어기가 버스를 사용하지 않을 때 버스를 사용할 수 있음.
- 프로세서가 버스를 사용하기 위해 기다리는 현상을 ‘DMA 제어기는 프로세서로부터 버스 사이클을 스틸(Steal)한다’라고 함.
사이클 스틸링(Cycle Stealing)
- 프로세서와 DMA 제어기가 입출력을 위해 동시에 메모리를 액세스하는 경우, DMA 제어기가 우선적으로 메모리 참조 싸이클을 수행하여 입출력을 수행.
- DMA 제어기가 데이터를 전송하는 동안 프로세서는 다른 작업을 수행.
- 입출력장치가 시스템 버스 또는 저장시스템과 같은 분할 자원을 독점적으로 액세스하려 하기 때문에 생기는 현상.
- 프로세서의 속도를 떨어뜨리나 입출력 작업을 DMA에 전담시킴으로써 시스템 전체 성능은 향상됨.
직접 가상 주소 액세스(DVMA, Direct Virtual-Memory Access).
- 프로세서나 메모리의 도움 없이 가상 주소를 이용하여 두 개의 메모리 맵 장치 간에 데이터 전송 가능.
입출력 채널 : IBM 에서 제작된 컴퓨터들에서 이러한 기능을 갖는 입출력 처리기.
- 채널(Channel)이라 부르는 단순한 입출력 프로세서를 사용.
- 채널 프로그램이라 불리는 프로그램의 제어를 통해 DMA 입출력을 수행함.

입출력 채널.
모든 입출력 동작이 완료된 시점에서 인터럽트 받는, 프로세서와 메인 메모리를 입출력장치에 결합하여 프로세서의 명령으로 입출력을 제어하는 장치.
프로그램-제어 입출력과 직접 메모리 액세스 방법의 특징 비교.
- 프로그램-제어 입출력.
* 프로세서가 계속 제어하므로 입출력장치와 컴퓨터를 연결하는 데 최소한의 하드웨어만 필요함.
* 저속 장치들에서 사용됨.
- 직접 메모리 액세스.
* 매개변수의 초기화를 제외하고 프로세서를 모든 입출력 연산과 분리, 데이터 전달을 제어하기 위해 외부 제어기가 필요함.
* 고속의 장치에서 사용.
입출력 전용 처리기.
- 대형 컴퓨터에서 프로세서를 좀 더 효율적으로 이용하기 위해 사용됨.
- 다수의 장치를 공유할 수 있음.
- 입출력 동작 명령어를 가진 프로세서를 포함하여 다른 프로세서의 도움 없이 입출력 프로그램의 입출력 동작을 지시함.
- 지역기억장치(Local Memory)를 가지며 사실상 하나의 컴퓨터라 할 수 있음.
- 프로세서의 개입이 최소화된 상태에서 많은 입출력장치를 제어, 입출력 프로세서로 불림.

[그림 9-8] 입출력 채널을 사용하는 컴퓨터 구조의 예.

- 채널 서브시스템은 여러 개로 구성 가능, 프로세서와 메인 메모리의 액세스를 조정.

- 채널은 사이클 스틸을 사용하여 메모리에 직접 액세스함.

- 각 입출력장치는 제어장치를 통해 채널과 연결됨.

- 제어장치는 채널과의 통신 및 장치에 대한 제어 기능을 수행.

- 유사한 장치들에 대해 하나의 제어장치가 사용되며, 한 순간에 한 장치만 활성화됨.

입출력 채널의 특성.
- DMA 개념을 확장하여 입출력 명령어들을 실행할 수 있는 능력을 가짐.
* 입출력 동작들에 대하여 완전한 제어권을 가짐.
* 컴퓨터 시스템에서 프로세서가 입출력 명령어를 실행하지 않아도 입출력 데이터가 메인 메모리에 저장됨.
- 입출력 채널 내에 있는 특수 목적용 프로세서에 의해 실행됨.
* 프로세서는 입출력 채널이 메인 메모리에 있는 프로그램을 실행하도록 지시하여 입출력 전송을 실행.
- 입출력 채널은 메인 메모리에 저장된 명령어들을 실행하면서 데이터 전송을 제어함.

입출력 채널 형태.
- 제어방식(동기화 및 데이터의 분해/조립 기능)에 따라 다음과 같이 구분함.
* 셀렉터 채널(Selector Channel)
• 어떤 장치에 대한 입출력이 종료될 때까지 다른 장치를 실행하지 않음.
• 고속 장치들은 멀티플랙서 채널을 사용해 고속으로 데이터를 전송, 다른 장치들과 다중화하기 어려움.
• 한 번에 하나씩 처리하는 전용 채널을 이용해 다중화할 수 있음.
* 멀티플렉서 채널(Multiplexer Channel)
• 바이트(Byte) 단위로 시분할하여 여러 장치의 출력을 처리하므로 바이트 멀티플랙서 채널이라고 함.
• 다수의 저속/중속 장치들을 연결할 때 사용.
• 채널-메모리 링크는 장치와 채널 사이의 데이터 전달속도보다 더 빠른 속도로 데이터를 전달 가능하므로 속도가 느린 다수의 입출력장치를 동시에 동작시킬 수 있음.

* 블록 멀티플렉서 채널(Block Multiplexer Channel)
• 셀렉터 채널과 멀티플렉서 채널의 장점을 결합, 여러 대의 고속 입출력장치들을 블록단위로 처리.
• 동일한 채널에서 여러 고속장치가 활성화할 수 있음.
• 채널 명령어는 하나의 장치와 입출력 명령어를 수행한 후 별도의 지시가 없어도 자동으로 다른 장치와 명령을 수행하도록 변환됨.
• 한 채널이 복수의 입출력장치에 의해 시분할 방식으로 사용될 수 있으나, 어떤 경우 하나의 장치에만 서비스하므로 셀렉터 채널과 유사함.
• 멀티플렉서 채널과 같이 다른 장치에 대한 서비스를 완료할 때까지 기다릴 필요 없음.

[그림 9-9] 입출력 채널의 세 가지 형태.

커널 입출력 서브 시스템
입출력 서비스와 입출력 인터페이스 실행을 위해 인터페이스가 구성되어야 함.
[그림 9-10] 커널 입출력 구조.
- 입출력장치의 모델이나 제조사와 관계없이 공통적인 특징을 가진 입출력장치들을 액세스하기 위해 필요한 표준 함수들을 정의함.
- 정의된 함수들은 장치 드라이버에 의해 수행.
* 장치 드라이버는 여러 입출력장치의 차이를 간단한 표준 인터페이스로 변환하여 상위의 커널 입출력 서브 시스템에 제공.


커널은 입출력과 관련된 서비스를 제공하며, 커널 입출력 서브시스템은 컴퓨터의 효율성 증진을 위해 메모리나 디스크의 기억장소를 이용함.

커널 입출력 스케줄링.
입출력 요구를 스케줄링 함 = 요구들의 실행 순서를 결정.
응용 프로그램은 입출력을 요청한 순서대로 실행하기 보다 전반적인 시스템 성능을 향상시키면서 프로세서들의 요구를 공평하게 처리할 수 있도록 순서를 결정함.
커널 입출력 버퍼링.
버퍼링을 통해 송신자와 수신자의 전송 속도 차이 때문에 발생하는 시스템의 데이터 전송 문제를 해결 가능.
장치들이 보내는 데이터의 크기가 다르기 때문에 발생하는 메시지 전송 문제를 해결 가능.
- 대부분의 전송 메시지는 작은 네트워크 패킷으로 나누어 전송, 수신측에서 원래의 자료로 복원하기 위해 패킷들을 버퍼에서 결합.
[그림 9-11] 버퍼링의 구조.
- 입출력장치에서 들어온 데이터를 모뎀을 통해 디스크에 저장(기록)한다고 가정함.
* (a) : 입출력장치의 모뎀에 버퍼가 없으므로 데이터의 입력 속도에 따라 디스크에 전달.
* (b) : 시스템 성능 향상을 위해 메모리에 버퍼를 만듦.
* (c) : 두 개의 버퍼를 사용(이중 버퍼링).

커널 입출력 캐싱.
명령어와 데이터를 캐시 메모리에 일시적으로 저장, 프로세서와 메모리(디스크)간의 액세스 속도 차를 프로세서에 가깝게 단축시켜 컴퓨터의 성능을 향상시킴.
- 캐시 : 버퍼와 달리 자주 사용될 자료를 미리 복사하여 저장하는 빠른 메모리 영역.
* 다른 곳에 저장되어 있는 데이터의 복사본을 저장하는 장소.
한 메모리 영역이 두 가지 목적을 위해 사용(캐싱, 버퍼링)
- 커널이 데이터 입출력 요구를 받으면, 커널은 먼저 데이터가 캐시에 있는지 조사.
- 데이터가 캐시에 있으면 디스크 입출력을 생략, 입출력의 효율성을 높임.
- 메모리 내에 버퍼를 사용하여 디스크 입출력 스케줄링을 효율적으로 수행 또는 프로세스들 간에 공유 해야 하는 파일들을 위한 캐시로 사용 가능.

커널 입출력 스풀링.
여러 응용 프로그램이 동시에 출력 데이터를 프린터로 전송 시 커널(운영체제)은 각 출력이 다른 프로그램의 출력과 섞이지 않고 프린터로 출력되도록 관리함.
- 각 응용 프로그램의 출력은 각각 대응되는 디스크 파일에 저장(스풀)됨.
스풀링 시스템
- 응용 프로그램이 출력 데이터에 대한 작업을 종료하면 그때까지 모아 놓은 출력 데이터를 프린터 출력용 준비 큐에 삽입(이동)하여 스풀 파일을 한 번에 하나씩 프린터에 내보냄.
- 커널 스레드에 의해 처리됨.

오류 처리.
커널(운영체제)은 입출력장치나 네트워크 전송의 원인으로 발생되는 일시적인 고장을 효과적으로 극복 가능.
중요한 구성 요소가 영구적인 고장을 일으키는 경우 문제를 완전히 극복하기 어려움.

자료 관리.
커널은 입출력 구성에 대한 상태 정보를 유지함.
입출력 서비스를 커널이 아닌 독립 프로그램이 담당할 경우의 장단점.
- 오버헤드가 증가함.
- 입출력 시스템의 구조와 설계가 간단해지며 운영체제 커널의 크기가 작아지고 유연성이 좋아짐.
입출력 서브시스템은 광범위한 서비스를 조정, 다음 사항을 관리함.
- 장치의 이름 및 장치에 대한 액세스 제어 관리.
- 장치 할당과 입출력 스케줄링 관리.
- 버퍼링, 캐싱 및 스풀링 관리.
- 장치 상태 모니터링과 오류 처리 및 고장 복구 관리.

반응형
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

(구글 나라별 추천검색어가 다릅니다 - find 를 검색해보았더니..)

 

호주구글 영국구글 우회접속 주소(나라별 구글 우회 바로가기 링크 2023) - 일체유심조

구글 우회접속 주소 에 대해 공유드리기 전에

wgmakeit.com

 

컴퓨터 구조의 발전 과정 - 일체유심조

우선 주요 부품들의 발전 과정에 대해 알아보겠습니다.초기 컴퓨터들의 근본적인 설계 개념과 동작 원리가 현대의 컴퓨터들과 거의 같은데요, 최초의 컴퓨터는 Blaise Pascal이 개발한 덧셈과 뺄셈

wgmakeit.com

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
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 31
글 보관함