오늘 학습 계획
- 자바 예외 처리
TIL
- 자바 예외 처리
- 컨텍스트 스위칭
- JVM 쓰레드 개념과 OS 쓰레드
자바 예외처리에는 에러를 예측 할 수 있는 경우에 하는 에러 처리법이 있고
이 예측 할 수 있다는 말은 항상 에러가 발생한다는 건 아니고 프로그래밍 상
에러가 발생 할 수 있는 경우라 프로그래머가 예외 처리를 하는 것이 정형화된 경우를 Checked Exceptions이라고 한다.
원시 타입, 레퍼런스 타입의 기본값에는
원시 타입인 경우 리터럴 값이 대체로 초기값으로 사용되고,
레퍼런스 타입의 기본값은 대체로 null이 사용된다.
레퍼런스 타입은 어떤 변수에 메모리 참조 주소를 가지고 있으면 된다.
원시 타입은 자바의 기본 자료형이다.
JVM 쓰레드 개념과 OS 쓰레드 개념은 쓰레드라는 단어는 똑같지만
OS의 쓰레드가 더 상위 개념이라고 알고 있다.
여려가지 쓰레드와 OS 쓰레드 간의 매핑 개념은
1:M, 1:1 등 다양한 매핑 방법이 있고
1:1 에서는 직접 엑세스 되긴 하지만 관리 하는 데 리소스가 든다는 특징이 있었다.
컨텍스트 스위칭 비용
컨텍스트 스위칭(context switching)은 운영체제가 CPU의 제어를 한 프로세스(또는 스레드)에서 다른 프로세스(또는 스레드)로 넘기는 과정을 말합니다. 이 과정에서 발생하는 비용을 컨텍스트 스위칭 비용이라 합니다.
컨텍스트는 현재 실행 중인 프로세스 또는 스레드의 상태 정보를 나타냅니다. 이 상태 정보에는 프로세스 또는 스레드의 PC(Program Counter), 레지스터 상태, 메모리 매핑 등이 포함될 수 있습니다.
컨텍스트 스위칭이 발생하면, 운영체제는 현재 실행 중인 프로세스 또는 스레드의 컨텍스트를 저장(save)하고, 다음에 실행할 프로세스 또는 스레드의 컨텍스트를 로드(load)합니다. 이렇게 하면, 각 프로세스 또는 스레드는 자신만의 독립적인 작업 공간을 가지게 됩니다.
그러나 컨텍스트 스위칭은 오버헤드를 발생시킵니다. 컨텍스트를 저장하고 로드하는 데 CPU 시간이 소모되며, 이는 프로세스 또는 스레드의 실제 작업을 수행하는 데서 빼앗는 것이기 때문입니다. 또한, 컨텍스트 스위칭이 자주 발생하면 CPU 캐시의 효율성이 떨어질 수 있습니다.
따라서, 컨텍스트 스위칭 비용은 스레드 관리 비용의 일부분으로 볼 수 있으며, 이 비용을 최소화하는 것이 중요합니다. 이를 위해 스레드 풀과 같은 기법을 사용하여 스레드의 생성과 소멸을 최소화하고, 컨텍스트 스위칭을 줄일 수 있습니다.
'[F-Lab 66해빗 페이백 챌린지 ]' 카테고리의 다른 글
| [F-Lab 모각코 챌린지 7일차] C1 컴파일러, C2 컴파일러, 인라이닝, 루프 언롤링 (0) | 2023.05.20 |
|---|---|
| [F-Lab 모각코 챌린지 6일차] 자바 예외 처리, Checked Exception, Unchecked Exception (0) | 2023.05.18 |
| [F-Lab 모각코 챌린지 5일차] 쓰레드 안전, Final, Static (2) | 2023.05.16 |
| [F-Lab 모각코 챌린지 4일차] 제네릭, 컬렉션 (2) | 2023.05.15 |
| [F-Lab 모각코 챌린지 3일차] 함수형 프로그래밍 (2) | 2023.05.11 |