그림
- FIFO(First In First Out)
- 여러 프로그램을 순차적으로 실행시킬 수 있도록 해주세요!
- 어떤 프로그램은 실행 시간이 많이 걸려서, 다른 프로그램이 실행하는데 시간을 많이 기다려야 한다.(단점)
- 나는 MP3 음악을 들으면서, 문서 작성을 하고싶어요(배치처리 시스템에서는 불가능함, 동시성 여러 응용 프로그램 실행)
- 여러 사용자가 동시에 하나의 컴퓨터를 쓰려면 어떻게 해야 하나요?(다중 사용자 지원)
요구사항으로 인하여
멀티 프로그래밍/시분할 시스템이 나왔다.
- 시분할 시스템: 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템
시간을 잘게 분할하여 조금씩 조금씩 응용 프로그램들을 바꿔가면서 실행을 하면 짧아진다.
- 멀티 태스킹: 단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템
(cpu에서 실행되는 건 하나의 명령어이지만 여러개가 실행되는 것처럼 보이도록 한다 물론, 요즘은 여러개의 cpu장착되어있음)
- 1000 밀리초(ms) = 1초
- 10 ~ 20 ms 단위로도 실행 응용 프로그램이 바뀌더라
- 사용자에게는 동시에 실행 되는 것처럼 보임
(해당 기술은 시분할 시스템의 기본 기술과 동일하다.)
- 멀티 태스킹 : 단일 cpu
- 멀티 프로세싱 : 여러 cpu에 하나의 프로그램을 병렬로 실행해서 실행속도를 극대화 시키는 시스템(하나의 응용 프로그램이 여러 개의 cpu를 사용을 하면서 어떻게하면 짧은 시간안에 실행 시킬 수 있을까의 요구사항을 구현한 시스템)
정리
의문점
응용 프로그램이 cpu에 한줄한줄 코들르 실행하면 되는거지 무슨 다른 작업을 한다는 말이냐 다 cpu가 실행하는거 아냐
그런 작업이 있다 하더라고 그런작업이 많을까?
의문점이 있을 수 있다
(다른 작업이라는 것들은 은 여러가지 기술들을 연결이 되었어서 여러가지 기술들을 다 알고나서 응용 프로그램들이 cpu에 넣어진다 치더라도 다른 작업들 때문에 cpu에서 계속 실행이 쭉 되는건 아니겠구나 ) 이해 안됨
- 응용 프로그램이 실행 되다가 파일을 읽는다(저장매체,굉장히 느림)
cpu에 해당 응용프로그램들이 놓여 있더라도 저장매체에서 파일을 읽기 전까지 더이상 실행을 할 수 없다.
- 응용 프로그램이 실행 되다가 프린팅을 한다.
그림
fd = open....
if(fd ==-1)
이 사이에 다른 응용 프로그램으로 바꿔 줄수 있다.
(fd return값을 이용해서 다음 코드가 진행되기때문에 걸리는 시간동안)
그림 2
컴퓨터 구조 측면
메모리 계층 - 컴퓨터 구조 복습
출처 : https://computationstructures.org/lectures/caches/caches.html
정리
실제로는 시분할 시스템, 멀티 프로그래밍, 멀티 태스킹이 유사한 의미로
통용된다.
- 핵심
- 여러 응용 프로그램 실행을 가능 토록 함
- 응용 프로그램이 동시에 실행되는 것처럼 보이도록 함
- CPU를 쉬지 않고 응용 프로그램을 실행토록 해서, 짧은 시간안에 응용 프로그램이 실행완료 될수 있도록 함
- 컴퓨터 응답 시간도 짧게 해서, 다중 사용자도 지원
단어 정리
from fastcampus 컴퓨터 공학 강의