울음참고 개발공부
Published 2023. 7. 21. 09:49
오버헤드가 발생하는 상황 TIL
728x90

 

 

오버헤드(Overhead)

 

" 어떤 작업을 수행하기 위해 추가적으로 필요한 부가적인 비용이나 시간 "

 

 

 

오버헤드는 일반적으로 시스템의 성능을 저하시키는 요소 중 하나이기 때문에, 프로그래밍과 시스템 설계 시에는 가능한 작업을 효율적으로 수행하도록 최적화하는 것이 중요합니다.

 

 

 

 

[ 오버헤드가 발생하는 상황 ]

 

 

  • 시스템 호출 시

운영체제로부터 서비스를 받기 위해 프로세스가 시스템 호출을 요청할 때 오버헤드가 발생함

 

* 이때 시스템 호출이란 프로세스 간의 커뮤니케이션, 파일 입출력, 메모리 관리 등을 포함함

( 시스템 호출은 사용자 모드에서 커널 모드로의 전환과 관련하여 비용이크다.)

 

 

  • 자원 할당과 해제

새로운 프로세스나 스레드를 생성하거나 종료할 때 시스템은 이들에게 메모리, 자원, 스케줄링 등을 할당 또는 해제해야하는데 이러한 작업들은 오버헤드를 초래할 수 있음

 

 

  • 컨텍스트 스위칭(Context Switching)
    • 정의 : 멀티태스킹 환경에서 여러 프로세스나 스레드가 실행되는데, 실행 중인 작업을 일시 중지하고 다른 작업으로 전환하는 것

컨텍스트 스위칭은 프로세스나 스레드 간의 상태 정보를 저장하고 복구하는 과정을 포함하며, 이는 오버헤드를 발생시킴

 

 

  • 자원 공유와 동기화

여러 프로세스나 스레드가 공유 자원에 접근하는 경우, 이들 사이의 동기화를 위해 락(lock)을 사용함

락을 획득하고 해제하는 과정에서 오버헤드가 발생할 수 있음

( 동기화를 위한 기법들은 오버헤드를 줄이기 위해 최적화되어야함)

 

 

  • 프로토콜 및 알고리즘 오버헤드

통신 프로토콜이나 암호화 알고리즘 등을 사용하는 경우, 추가적인 계산과 데이터 처리가 필요한데 이 경우에 오버헤드가 발생할 수 있음

 

 

 

 

# 프로세스와 스레드에 대한 이해

 

 

스레드와 프로세스의 차이 / 데몬 스레드 / 스레드를 만드는 방법

스레드(Thread)와 프로세스(Process)의 차이 스레드(thread)와 프로세스(process)는 컴퓨터에서 동작하는 실행 단위입니다. 하지만 각각은 서로 다른 특성과 목적을 가지고 있습니다. 이들의 주요 차이점

megak.tistory.com

 

 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!