알쓸코지
article thumbnail
[OS] 스레드 풀(Thread Pool)
CS 2024. 4. 26. 00:56

스레드 풀이란?스레드 + 풀`스레드(Thread)`: 프로세스에서 실행되는 흐름의 단위`풀(Pool)`: 필요할 때마다 객체를 할당하고 해제하는 대신, 사용 가능한 초기화된 객체의 집합`스레드 풀(Thread Pool)`: 미리 일정 개수의 스레드를 생성해 두고 작업이 발생하면 사용 가능한 스레드를 할당하여 작업을 처리하는 방식으로, 처리가 완료되면 스레드는 제거되지 않고 다시 스레드 풀로 돌아가 스레드의 반복적인 생성과 소멸을 피하고 시스템 자원을 효율적으로 활용할 수 있다. 스레드 풀의 필요성데이터베이스, 웹 서버 등의 서버 프로그램은 여러 클라이언트의 요청을 반복적으로 실행한다. 이를 처리하기 위해 다음과 같이 서버에 들어오는 요청마다 스레드를 새로 만들어서 처리하고 처리가 끝난 스레드를 버리는 식..

article thumbnail
[OS] Interrupt와 Context Switching
CS 2024. 4. 19. 06:34

인터럽트(Interrupt)란? CPU가 어떤 일을 수행하던 중, 예상치 못한 외부에서 발생한 이벤트로 인해 프로세스를 잠시 중단시키는 것 인터럽트가 발생하면 현재 실행 중인 프로세스나 프로그램이 멈추고, `해당 인터럽트를 처리하는 루틴(인터럽트 핸들러 루틴)`이 실행된다. 인터럽트는 키보드, 마우스 등 I/O 디바이스로 인한 인터럽트, 0으로 숫자를 나누는 산술 연산에서의 인터럽트, 프로세스 오류 등으로 발생한다. 인터럽트의 종류 동기 인터럽트(예외) CPU에 의해 발생하는 인터럽트로, CPU가 예기치 못한 상황을 접했을 때 발생한다. 비동기 인터럽트(하드웨어 인터럽트) 주로 입출력 장치에 의해 발생하는 인터럽트로, 입출력 작업 도중에도 효율적으로 명령을 처리하기 위해 사용한다. 알림과 같은 인터럽트 ..