프로세스, os, 멀티태스킹, 신호처리

2024. 12. 19. 16:45CS

프로세스

  • 별도의 메모리 공간을 할당받아 독립적으로 실행.
  • 독립적으로 실행되는 프로그램의 인스턴스
  • 쓰레드
    • 하나의 프로세스 내에서 실행되는 작은 작업 단위
    • 메모리를 공유한다.
    • 스레드는 경량 프로세스로 불림, 생성 및 전환 비용이 낮음.

운영체제의 역할

시스템 자원을 관리

  1. 프로세스 관리
    1. CPU 자원을 여러 프로그램에 효율적으로 할당하고 스케줄링함.
  2. 메모리 관리
    1. 프로그램 실행에 필요한 메모리를 할당하고 관리함.
  3. 파일 시스템 관리
    1. 데이터를 저장하고 접근할 수 있는 파일 시스템을 제공
  4. 입출력 장치 관리
    1. 키보드, 마우스, 디스크, 네트워크 장치 등 하드웨어와의 인터페이스를 제공,
  5. 보안 및 권한 관리
    1. 사용자 인증, 접근 제어 등을 통해 시스템 보안을 관리함.

멀티 태스킹은 무엇이며, 어떻게 동작하나.

멀티태스킹은 운영체제가 여러 작업을 동시에 실행하는 것처럼 보이게 하는 기능이다.

  1. 작동 방식
    1. CPU는 시간 분할을 통해 각 작업에 빠르게 CPU 시간을 번갈아 할당한다.
    2. 이 과정이 매우 빨라서 여러 작업이 마치 동시에 처리되는 것처럼 보이는 것임!
  2. 종류
    1. 선점형 멀티태스킹
      1. 운영체제가 작업을 강제로 중단하고, 다른 작업에 CPU를 할당.
      2. 작업을 처리하다가 우선순위가 높은 다른 작업이 있다면 우선 순위가 높은 작업을 먼저 실행시키는 것.
      3. 이때 우선순위가 낮아서 계속 대기하는 현상을 **기아현상**이라고 함.
    2. 비선점형 멀티태스킹
      1. 하나의 작업이 자발적으로 CPU를 다른 작업에 양보.

인터럽트와 폴링

인터럽트와 폴링은 CPU가 I/O 장치와 통신하는 방법이다.

  • 인터럽트
    • 장치에서 이벤트 발생 시 CPU에 알림 발생시킴
    • CPU는 다른 작업하다가 인터럽트 발생되면 즉시 해당 작업을 처리함.
    • 효율적이지만 복잡한 구현이 필요
  • 폴링
    • CPU가 주기적으로 장치를 확인해 이벤트가 발생했는지 검사하는 방식.
    • 구현은 간단, CPU자원을 불필요하게 소모할 수 있다.

신호처리 (FFT, 샘플링, 필터링)

  • 샘플링
    • 연속적인 아날로그 신호를 이산 신호로 변환하는 과정.
  • FFT(Fast Fourier Transform)
    • 신호를 주파수 영역으로 변환해 주파수 성분을 분석하는 알고리즘.
  • 필터링
    • 신호에서 특정 주파수를 제거하거나 강조하는 작업

'CS' 카테고리의 다른 글

Spring MVC, Django MVT, Rest API  (0) 2025.05.07