프로그래밍공부(Programming Study)/운영체제(OS)

CPU 핵심 개념 총정리: 커널 함수, 시스템 콜, 인터럽트와 CPU 이벤트 이해하기

Chann._.y 2024. 12. 6.
728x90

1. CPU와 관련된 주요 개념 이해하기

CPU는 컴퓨터의 중추적인 처리 장치로, 다양한 작업을 수행합니다. 이를 이해하기 위해 커널 함수, 사용자 레벨 함수, 시스템 콜, 인터럽트, CPU 이벤트 등을 살펴보겠습니다.


2. 커널 함수와 사용자 레벨 함수

커널 함수

커널 함수는 운영 체제 커널에서 실행되는 함수로, 하드웨어와 직접 상호작용하거나 시스템 자원을 관리합니다.

  • 역할: 프로세스 관리, 메모리 관리, 파일 시스템 관리 등
  • 예시: schedule() 함수는 프로세스 스케줄링을 담당합니다.

사용자 레벨 함수

사용자 레벨 함수는 응용 프로그램에서 실행되는 함수로, 커널 함수를 직접 호출하지 않고 시스템 콜을 통해 간접적으로 접근합니다.

  • 예시: printf(), malloc()와 같은 C 라이브러리 함수가 이에 해당됩니다.

3. 시스템 콜(System Call)

시스템 콜은 사용자 레벨 프로세스가 커널 서비스를 요청할 때 사용하는 인터페이스입니다.

  • 특징:
    • 사용자 모드에서 커널 모드로 전환.
    • 대표적인 시스템 콜: read(), write(), fork().
  • Python 예제:
  • import os # 시스템 콜을 통해 새 프로세스를 생성 pid = os.fork() if pid == 0: print("Child process") else: print("Parent process")

4. 인터럽트(Interrupt)

소프트 인터럽트

  • 소프트웨어에 의해 발생하며, 주로 커널 스케줄링이나 시스템 콜 처리에서 사용됩니다.
  • 예시: 타이머 인터럽트

하드 인터럽트

  • 하드웨어 장치에 의해 발생하며, CPU가 즉각적으로 응답해야 합니다.
  • 예시: 키보드 입력, 네트워크 패킷 수신

5. 워크큐(Workqueue) 이벤트

워크큐는 지연 작업을 처리하기 위한 커널 매커니즘입니다.

  • 특징:
    • 하드 인터럽트 핸들러에서 처리할 수 없는 작업을 워크큐에 추가.
    • 비동기적으로 실행됩니다.
  • 사용 예시:
    • 하드웨어 초기화, 대규모 데이터 처리.

6. 정주기 샘플링(Periodic Sampling)

CPU의 성능 모니터링을 위해 일정한 주기로 데이터를 수집하는 기법입니다.

  • 용도:
    • CPU 사용률 확인.
    • 성능 병목 현상 파악.
  • 예시: perf와 같은 프로파일링 도구에서 활용.

7. CPU 파워 이벤트(CPU Power Event)

CPU의 전력 관리 이벤트로, 저전력 모드 전환이나 부하에 따른 전력 조정이 포함됩니다.

  • 예시:
    • idle 상태 진입.
    • 터보 부스트 활성화.

8. CPU 사이클

CPU 사이클은 명령어 실행에 소요되는 단위 시간으로, 성능 최적화의 핵심 지표입니다.

  • 주요 지표:
    • CPI(Cycles Per Instruction): 명령어당 CPU 사이클 수.
    • 클럭 속도: 초당 처리 가능한 사이클 수.
  • Python 성능 분석 예제:
  • import time start = time.perf_counter() # CPU 작업 result = sum(range(1000000)) end = time.perf_counter() print(f"Execution time: {end - start} seconds")
728x90

댓글