[CS] 기본 CS (자료구조, 메모리, 프로세스와 프로세서)

insung·2025년 5월 1일

CS

목록 보기
13/20

Queue와 Stack

핵심: 데이터 접근 방식의 차이 (FIFO vs LIFO)

Queue (큐)

  • FIFO (First-In, First-Out)
    • 먼저 들어온 데이터가 먼저 나가는 구조의 자료구조
    • 데이터가 생성되는 순서대로 처리해야 하는 작업 (예: 작업 스케줄링, 메시지 큐)에 사용

Stack (스택)

  • LIFO (Last-In, First-Out)
    • 가장 나중에 들어온 데이터가 가장 먼저 나가는 구조.
    • 함수의 호출 스택, 되돌리기 (Undo) 기능 등에 사용

Stack과 Heap

  • 핵심: 메모리 할당 방식, 저장 데이터 종류, 속도 차이.

Stack (스택)

  • 메모리 관리
    • 정적 메모리 할당. 컴파일 시 크기가 결정되고, 함수의 호출과 종료에 따라 자동으로 할당/해제
  • 저장 데이터
    • 지역 변수, 함수 호출 정보 (매개변수, 복귀 주소 등).
  • 접근 속도
    • 빠름
  • 크기
    • 비교적 작고 제한적

Heap (힙):

  • 메모리 관리
    • 동적 메모리 할당. 런타임 시 필요에 따라 명시적으로 할당/해제해야 (예: malloc, new).
  • 저장 데이터
    • 객체, 배열 등 크기가 동적으로 변할 수 있는 데이터.
  • 접근 속도
    • 스택보다 느림
  • 크기
    • 시스템 메모리 크기에 따라 비교적 큼

프로세스와 프로세서의 차이

프로세스 (Process)

  • 실행 중인 프로그램의 인스턴스.
    • 독립적인 메모리 공간과 자원을 할당받아 실행.
  • 특징
    • 자신만의 주소 공간, 독립적인 실행 흐름 (스레드 포함 가능).

프로세서 (Processor):

  • 정의
    • CPU (Central Processing Unit)와 같은 물리적인 하드웨어 장치.
      • 실제로 명령어를 실행하는 역할.
  • 특징
    • 코어(Core)를 가질 수 있으며, 클럭 속도로 성능을 나타냄.

핵심: 프로세스는 실행 단위, 프로세서는 실행 장치.

멀티 프로세스와 멀티코어의 차이

핵심

  • 멀티 프로세스는 여러 개의 독립적인 실행 단위, 멀티코어는 하나의 프로세서 내에 여러 개의 실행 유닛.
  • 멀티코어 환경에서 멀티 프로세스를 활용하여 병렬성을 극대화할 수 있습니다.

멀티 프로세스 (Multi-Process)

  • 여러 개의 독립적인 프로세스를 동시에 실행하는 방식.
  • 장점
    • 각 프로세스가 독립적인 메모리 공간을 가지므로 안정성이 높음.
    • 하나의 프로세스가 문제가 생겨도 다른 프로세스에 영향을 주지 않음.
  • 단점
    • 프로세스 간의 자원 공유 및 통신이 복잡하고 오버헤드가 큼.

멀티코어 (Multi-Core)

  • 하나의 프로세서 칩 내에 여러 개의 독립적인 실행 코어(Core)를 포함하는 하드웨어 구조.
  • 장점
    • 여러 개의 스레드를 동시에 병렬로 처리하여 성능을 향상.
    • 프로세스 간 통신보다 스레드 간 통신이 더 효율적.
  • 단점
    • 단일 코어에서 순차적으로 실행되는 작업에서는 성능 향상이 미미할 수 있음.
profile
안녕하세요 프론트엔드 관련 포스팅을 주로 하고 있습니다

0개의 댓글