2024/11/23 2

[OS] Context Switch & Thread scheduling

1. 컨텍스트 스위치란? - 하나의 스레드 실행을 멈추고, 다른 스레드로 전환하는 과정작동 방식실행 중인 스레드의 상태(레지스터, 캐시 등)를 저장새 스레드의 상태를 복원하고 실행효율성 문제컨텍스트 스위치는 자원을 소모하며, 너무 많은 스레드가 실행될 경우 스래싱(Thrasing) 발생스래싱(Thrasing) : CPU가 작업 대신 스레드 관리(컨텍스트 스위치)에 시간을 더 소비하게 되는 현상스레드 간 차이같은 프로세스 내 스레드 간 컨텍스트 스위치는 상대적으로 빠름서로 다른 프로세스 간 스위치는 더 많은 리소스 소모 2. 스레드 스케줄링 방법 - 운영체제는 스레드의 실행 순서와 시간을 결정하기 위해 다양한 스케줄링 알고리즘 사용운영체제의 동적 우선순위 스케줄링작업에 따라 우선순위를 설정하고 필요 시 변..

OS 2024.11.23

[Java] Multithreading 기본 개념 - 응답 속도 & 성능 향상 이해하기

멀티스레딩이 필요한 이유1. 응답성 향상사용자 요청을 개별 스레드로 처리해 대기 시간을 줄임동영상 재생, 버튼 클릭 등 다양한 작업을 동시에 처리해 반응 속도 개선2. 성능 최적화병행성을 통해 단일 코어에서 여러 작업을 동시에 처리하는 효과병렬 처리를 활용하면 실제로 여러 작업을 동시에 수행 가능적은 하드웨어로도 높은 처리량을 구현, 비용 절감 효과 멀티스레드의 기본 개념프로세스 : 운영체제에서 실행되는 독립적인 어플리케이션스레드 : 프로세스 내에서 실행되는 작업 단위각 스레드는 개별 스택(Stack)과 명령어 포인터(Instruction Pointer)를 가짐스택(Stack)각 스레드의 메모리 영역으로, 지역 변수와 함수 호출 정보를 저장스레드가 수행하는 작업의 상태와 컨텍스트를 유지하는데 사용예를 들..

Java & Spring Boot 2024.11.23