멀티 태스킹 시스템의 한계

김명수·2025년 12월 15일

매일메일

목록 보기
67/127
post-thumbnail

멀티 태스킹 시스템의 한계

●멀티 태스킹 시스템의 한계

  • 멀티 태스킹 시스템을 사용하더라도 아래와 같은 문제점이 남아 있음

  • 하나의 프로세스가 동시에 여러 작업을 수행하지 못함
    1.여러 프로세스를 생성하여 문제를 해결할 수는 있으나, 프로세스가 많아지면 관리와 자원 소모 측면에서 여러 가지 단점이 발생

  • 무거운 프로세스 간 컨텍스트 스위칭
    1.컨텍스트 스위칭은 CPU가 한 프로세스에서 다른 프로세스로 전환할 때 발생하며, 이 작업은 상대적으로 무겁고 비용이 큼

  • 프로세스 간 데이터 공유의 어려움
    1.각 프로세스는 독립적인 메모리 공간을 사용하기 때문에, 서로 다른 프로세스 간에 데이터를 공유하는 것이 까다로움

●스레드(Thread)의 등장과 특징

  • 위와같은 문제점을 해결하기 위해 등장한 것이 스레드입니다. 스레드는 한 프로세스 내에서 여러 작업을 동시에 실행할 수 있도록 도와줌

  • 프로세스 내 여러 스레드 보유
    1.하나의 프로세스는 하나 이상의 스레드를 가질 수 있으며, 각 스레드가 하나의 작업을 담당합니다. 이는 여러 작업을 동시에 실행할 수 있도록 하는 핵심 요소

  • CPU 실행 단위
    1.과거에는 프로세스가 CPU에서 실행되는 단위였다면, 현재는 스레드가 CPU에서 실행되는 최소 단위가 되었음
    2.기본적으로 프로세스는 하나의 스레드를 가지고 있으며, 필요에 따라 추가적인 스레드를 생성할 수 있음

  • 가벼운 스레드 간 컨텍스트 스위칭
    1.스레드는 동일 프로세스 내에서 메모리 영역(특히 Heap)을 공유하므로, 스레드 간의 컨텍스트 스위칭은 프로세스 간 스위칭보다 훨씬 가벼움
    2.다만, 각 스레드는 고유한 Stack, 포인터, 프로그램 카운터 등을 가지고 있어, 자신만의 실행 상태를 유지하며, 같은 프로세스 내의 스레드들은 메모리 영역은 공유하지만, 각 스레드만의 고유한 정보(스택, 프로그램 카운터 등)를 보유

●멀티스레딩과 멀티프로세싱

  • 멀티스레딩 (Multi-threading)
    1.하나의 프로세스 내에서 여러 스레드를 통해 동시에 여러 작업을 실행하는 기법

  • 확장된 멀티태스킹 개념
    1.과거에는 프로세스 간 아주 짧은 시간의 스위칭으로만 작업을 나누었다면,
    이제는 여러 프로세스와 스레드가 아주 짧게 쪼개진 CPU 타임을 나눠가져 실행

  • 멀티프로세싱 (Multi-processing)
    1.두 개 이상의 프로세서나 코어를 활용하여, 여러 프로세스가 동시에 실행되는 시스템

profile
신입개발자

0개의 댓글