일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바 스레드 실행 순서 제어
- 자바 thread 실행 순서 제어
- scanner
- Kadane's Algorithm
- 사칙연산
- 카데인 알고리즘
- SpringBoot 2
- R
- heroku
- JAVA11
- input
- Easy
- array
- 수학
- hash table
- 자바입력
Archives
- Today
- Total
DeFacto-Standard IT
Context-Switching 본문
요즘 PC환경은 대부분 멀티프로그래밍 환경. 멀티프로그래밍은 여러 개의 프로세스를 수행하는 것. 사실 순차적으로 돌아가면서 조금씩 수행되나 속도가 빠르므로 동시에 프로세스를 처리하는 것처럼 보인다.
여기서 현재 프로세스를 다른 프로세스로 교환한다는 것은, 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 일련의 과정을 Context Switching이라고 한다.
프로세스가 ‘준비->실행’, ‘실행->준비’, ‘실행->대기’ 상대로 변할 때 발생한다. PCB(Process Control Block)라는, 프로세스를 관리하기 위해 유지되는 데이터 블록 구조를 사용한다.
실행중인 프로세스의 내용을 PCB에 저장하고, 다음에 실행할 프로세스에 대한 내용을 PCB로부터 얻어와 CPU에 재저장 시키는 작업을 한다.
따라서 Context Switching을 하는 동안에는 CPU는 어떠한 프로세스의 실행도 하지 않으므로 CPU가 노는 것이라고 볼 수 있지만,
사실 멀티프로그래밍을 위해 현재 프로세스를 저장하고 다음 프로세스를 불러오는 과정이다.
'OS > Theory' 카테고리의 다른 글
멀티쓰레드의 장단점 (0) | 2017.11.15 |
---|---|
다중 프로그래밍에서의 메모리 할당 기법 (0) | 2017.11.11 |
Memory Fragmentation (0) | 2017.11.11 |
Deadlock (0) | 2017.11.11 |
Thread / Process (0) | 2017.11.11 |
Comments