반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 하둡
- Spark 최적화
- 빌드도구
- 서버간 복사
- EMR 구조
- ORACLE문법
- AWS Crawler
- kafka 설치
- 데이터파이프라인
- 하둡에코시스템
- Databricks
- 카프카
- freenom
- 스파크
- Spark
- ORACLE MSSQL차이
- 하둡1.0
- 하둡2.0
- 지연연산
- Catalyst Optimizer
- 실행엔진
- 데이터베이스복사
- 프로그래머스 큰 수 만들기
- 데이터 수집
- 프로그래머스힙
- 프로그래머스
- 문맥교환
- 런타임데이터영역
- lazy evaluation
- 데이터엔지니어링
Archives
- Today
- Total
띵유로그
[CS] [OS]문맥교환 본문
반응형
여러개의 프로세스가 존재할때, CPU는 제어권을 서로 넘겨가며 일을 처리합니다.
CPU 제어건을 바꾸는과정을 문맥교환이라고 합니다.
문맥교환은 언제 일어날까?
문맥교환이 일어나는 때는 타이머 인터럽트나 I/O 가 발생했을 때 입니다.
시스템콜이나 인터럽트로 OS에게 CPU제어권이 넘어오고 이때 문맥 일부를 PCB에 저장하지만,
이 경우는 문맥교환이 아님을 기억해야합니다. 단지, 프로세스가 사용자모드에서 커널모드로 바뀔 뿐입니다.
문맥교환은 어떻게 수행할까?
1) 직전까지 수행하던 프로세스(A)의 문맥을 프로세스 A의 PCB(Process Control Block) 에 저장합니다.
2) 새로운 프로세스 B는 예전에 저장해둔 자신의 문맥을 PCB에서 가져와 HW에 올리고 실행합니다.
* 자세한 절차 :
문맥교환 절차
1. 인터럽트/시스템 호출
2. 커널모드 전환
3. 현재 프로세스 상태를 PCB에 저장
4. PCB에서 다음 실행 프로세스 상태 로드
5. 사용자 모드 전환
* 문맥이란?
프로그램카운터(다음에 실행할 명령어 주소), SP(Stack Pointer) 등 레지스터 저장값을 말합니다.
문맥교환자체로 오버헤드이기 때문에 문맥교환을 줄이기 위한 노력이 필요합니다.문맥교환을 줄이기 위해서는 스레드를 사용하는 방법도 있을 것이고 stack을 사용하는 프로그램이라면 stack pointer를 사용할 수 도 있을 것입니다.
반응형
'CS' 카테고리의 다른 글
[JAVA] JVM이란? - JVM 동작과정 (0) | 2022.09.14 |
---|---|
프록시 서버 (0) | 2022.01.06 |
Comments