728x90
반응형
💡 프로그램
- 컴퓨터가 실행할 수 있는 명령어들의 집합이다.
🔧 프로세스
- 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
- 컴퓨터에서 실행 중인 프로그램을 각각의 프로세스는 독립된 메모리 공간을 할당받는다.
- 명령어와 데이터를 가진다.
🧑🏻💻 CPU
- 명령어를 실행하는 연산장치이다.
📝 메인 메모리
- 프로세스가 CPU에서 실행되기 위해 대기하는 곳이다.
✏️ IO(input/output)
- 네트워크의 어딘가와 데이터를 주고 받는 것을 의미한다.
- 입출력 장치와 데이터를 주거나 받는 것을 의미한다.
💡 단일 프로세스 시스템
- 한 번에 하나의 프로그램만 실행된다.
- 단일 프로세스 시스템의 단점
- CPU 사용률이 좋지 않다.
- 해결책
- 여러 개의 프로그램을 메모리에 올려놓고 동시에 실행한다.
- 입출력 작업이 발생하면 다른 프로세스가 CPU에서 실행된다.
💡멀티프로그래밍
- CPU 사용률을 극대화 하는게 목표이다.
- 단점
- CPU 사용 시간이 길어지면 다른 프로세스는 무한적으로 대기상태에 빠진다.
- 해결책
- 프로세스는 한번 CPU를 사용할 때, 아주 짧은 시간(=quantum)만 CPU에서 실행되도록 하자.
💡멀티태스킹
- 프로세스의 응답 시간을 최소화 시키는데 목적
- 아쉬운 점
- 하나의 프로세스가 동시에 여러 작업을 수행하지는 못함
- 프로세스의 컨텍스트 스위칭은 무거운 작업
- 컨텍스트 스위칭이란 ?
- 하나의 프로세스에서 다른 프로세스로 교체되는 것
- 프로세스 끼리 데이터 공유가 까다롭다.
- 듀얼 코어가 등장했는데 잘 쓰고 싶을 때는 스레드를 사용한다.
💡 스레드
- 프로세스는 한 개 이상의 스레드를 가질 수 있다.
- CPU에서 실행되는 단위 Unit of Execution
- 같은 프로세스의 스레들끼리는 컨텍스트 스위칭이 가볍다.
- 스레드들은 자신들이 속한 프로세스의 메모리 영역을 공유
- 데이터 공유가 쉽다.
- 메모리 구조
- Stack pointer for thread 0 1 2..
💡 멀티스레딩
- 하나의 프로세스가 동시에 여러 작업을 실행하는데 목적이 있다.
🔨 확장된 멀티태스킹의 개념
- 여러 프로세스와 여러 스레드가 아주 짧게 쪼개진 CPU time을 나눠 갖는 것이다.
🪟 멀티프로세싱
- 두 개 이상의 프로세서나 코어를 활용하는 시스템
🧑🏻💻 멀티태스킹, 멀티프로세싱, 멀티스레드 개념 파악하기
- 예 1) 싱클코어 cpu 에 싱글-스레드 프로세스 두개
- 멀티태스킹
- 예 2) 싱클코어 cpu에 듀얼-스레드 프로세스 한 개
- 멀티태스킹
- 멀티스레딩
- 예 3) 듀얼코어 cpu에 싱글-스레드 프로세스 두 개
- 멀티프로세싱
- 예 4) 듀얼코어 cpu에 듀얼-스레드 프로세스 한개
- 멀티스레딩
- 멀티프로세싱
- 예 5) 듀얼코어 cpu에 듀얼-스레드 프로세스 두 개
- 멀티태스킹
- 멀티스레딩
- 멀티프로세싱
728x90
반응형
'Study' 카테고리의 다른 글
STS4 - 응용프로그램을 열 수 없습니다. (Mac M1) (0) | 2024.03.20 |
---|