728x90
반응형
프로그램
- 컴퓨터가 실행할 수 있는 명령어들의 집합
프로세스
- 컴퓨터에서 실행중인 프로그램
- 각각의 프로세스는 독립된 메모리 공간을 할당 받음.
메인 메모리
- 프로세스가 CPU에서 실행되기 위해 대기하는 곳
단일 프로세스 시스템
- 한 번에 하나의 프로그램만 실행
- CPU 사용률이 좋지 않음
- 단점은 실행 중에 있는 프로세스가 다른 작업을 하는 동안에는 CPU가 아무것도 못한다.
멀티프로그래밍
- 단일 프로세스 시스템을 문제점을 보완
- 여러 개의 프로그램을 메모리에 올려놓고 동시에 실행시킨다.
- 돌아가면서 작업을 하는 방식이다.
- CPU 사용률을 극대화 시키는것에 목적
- 단점은 CPU 사용시간이 길어지면 다른 프로세스는 계속 대기한다.
멀티태스킹
- 프로세스는 한번 CPU를 사용할 때 아주 짧은 시간만 CPU에서 실행시킨다.
- 계속 번갈아가면서 실행을 하는 것이다.(CPU타임시간을 짧게 쪼갠다.)
- 멀티프로그래밍과 동시에 여러 프로그램을 실행시킨다는 면에서 유사한데 CPU 타임을 갖는 차이가 있다.
- 프로세스의 응답 시간을 최소화 시키는데 목적이 있다.
- 단점은 하나의 프로세스가 동시에 여러 작업을 수행하지 못한다.
- 하나의 프로세스를 여러 프로세스를 하기에는 프로세스의 컨텍스트 스위칭은 무거운 작업이다.
- 프로세스끼리 데이터 공유가 까다롭다.
스레드
- 프로세스는 한 개 이상의 스레드를 가질 수 있다.
- 한 프로세스안에서 여러 개의 작업들을 동시에 실행하기 위해 등장.
- CPU에서 실행되는 단위
- 프로세스는 기본적으로 하나의 스레드를 가진다.
- 같은 프로세스의 스레드들끼리 컨텍스트 스위칭은 가볍다.
- 스레드들은 자신들이 속한 프로세스의 메모리 영역을 공유
멀티스레딩
- 하나의 프로세스가 동시에 여러 작업을 실행하는데 목적
728x90
반응형