안녕하세요. 처음 포스팅을 하는데 바로 공부로 시작하네요~
조금 딱딱한데 눈에 들어오기 쉽도록 정리하도록 노력해보겠습니다^^
일괄 처리 시스템(Batch programming system) vs. 다중 처리 시스템(Multi programming system)
- 일괄 처리 시스템(Batch processing system)
· 하나의 작업이 CPU를 독점하기 때문에 처리 속도가 빠르다.
· 반환시간이 존재한다.
· CPU와 Channel 간에는 병렬 I/O를 수행하는데, I/O가 동시에 발생해도 문제가 되지 않도록 해주는 것이 "DataBuffer"이다. 즉 I/O device에서 I/O command가 있을 때만, buffer에서 channel을 통해 I/O device로 전송할 수 있다. (buffer가 없다면 메모리에서 직접 이 작업을 수행해야하는데, 메모리는 주소와 함께 데이터를 정적으로 가지고 있는 상태이다. 따라서 반드시 검색을 통해 값을 찾아야 하기 때문에 시간이 너무 오래 걸릴 것이다.)
· 결정적인 단점은 반환 시간이 존재하기 때문에, 대화형 프로그램에는 적절하지 않다는 것!
☞ 채널이 뭐죠?
일종의 전자회로상 통로라고 생각할 수 있다.
일종의 전자회로상 통로라고 생각할 수 있다.
☞ 버퍼의 역할은?
속도 차이를 완충하는 역할 (입출력 대기 시간을 없앰)
속도 차이를 완충하는 역할 (입출력 대기 시간을 없앰)
☞ DMA의 역할은?
Memory cycle 경쟁을 제어하는 역할을 한다. (channel쪽에서 읽거나 쓰는 것을 제어) 따라서 자기 디스크와 memory 사이의 고속 전송이나 대화형 단말기 화면을 다시 그리는 작업에 유용
Memory cycle 경쟁을 제어하는 역할을 한다. (channel쪽에서 읽거나 쓰는 것을 제어) 따라서 자기 디스크와 memory 사이의 고속 전송이나 대화형 단말기 화면을 다시 그리는 작업에 유용
☞ Interrupt란?
User program이 아니라, H/W에 의해서 자동으로 메모리 특정부분에 있는 함수 (ISR)를 호출하는 개념, (IVT가 CPU 내에 있는데, CPU가 interrupt를 받으면 IVT를 보고 Controll을 이동시킨다.)
User program이 아니라, H/W에 의해서 자동으로 메모리 특정부분에 있는 함수 (ISR)를 호출하는 개념, (IVT가 CPU 내에 있는데, CPU가 interrupt를 받으면 IVT를 보고 Controll을 이동시킨다.)
☞ 언제 Interrupt가 발생?
I/O의 완료, 예외 동작(파일의 끝, 패리티 오류 등)
I/O의 완료, 예외 동작(파일의 끝, 패리티 오류 등)
☞ trap vs Interrupt?
trap은 프로그램 내에서 발생하는 것이고 inner Interrupt 또는 software Interrupt 라고도 한다. trap은 코드를 한줄 한줄 수행하다가 발생하는 것이기 때문에 동기적, interrupt는 H/W에서 발생시점이 일정하지 않기 때문에 비동기적이다.
trap은 프로그램 내에서 발생하는 것이고 inner Interrupt 또는 software Interrupt 라고도 한다. trap은 코드를 한줄 한줄 수행하다가 발생하는 것이기 때문에 동기적, interrupt는 H/W에서 발생시점이 일정하지 않기 때문에 비동기적이다.
다중 처리 시스템(Multi processing system)
· User area에 여러 프로그램을 적재, 이후 모두 작업 풀(job pool)에 적재하고 OS의 scheduling에 의하여 CPU를 할당받는다.
· 이로써 대화형 응용프로그램에 적절한 수행능력을 가질 수 있게 되었다.
· CPU를 여러 곳에 지속적으로 할당하여 CPU가 노는 일은 없다.시분할 시스템(Time sharing system)
· Time slice를 만들어 매 Interval의 끝마다 Interrupt를 발생 OS의 scheduling을 받는다.
· User에게 여러 개의 프로그램이 동시에 수행되는 것처럼 느껴지게 만든다. (Context-switching between processes)
· 단점은 OS의 scheduling이 빈번해지면 overhead가 발생할 수 있다는 점이다.
☞ 실시간 시스템(real-time system)이란?
엄격한 시간제한을 필요로하는 경우 사용, Hard, soft real-time이 존재한다.
엄격한 시간제한을 필요로하는 경우 사용, Hard, soft real-time이 존재한다.
☞ buffering vs. spooling
buffering - I/O device와 보조 기억장치 사이에서 사용한다. 또한 한 작업의 I/O와 계산을 동시에 수행할 수 있다. spooling - 디스크를 매우 큰 버퍼처럼 사용하는 것으로 한 작업의 I/O와 다른 작업의 계산을 동시에 수행할 수 있다. 즉 병렬성이 더 좋다는 이야기이다.
buffering - I/O device와 보조 기억장치 사이에서 사용한다. 또한 한 작업의 I/O와 계산을 동시에 수행할 수 있다. spooling - 디스크를 매우 큰 버퍼처럼 사용하는 것으로 한 작업의 I/O와 다른 작업의 계산을 동시에 수행할 수 있다. 즉 병렬성이 더 좋다는 이야기이다.