ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] Process와 Thread
    얇게 공부한 CS 2023. 8. 29. 11:55

    Process

    • 컴퓨터에서 실행 중인 프로그램의 인스턴스를 나타내는 개념이다.
    • 각 프로세스는 운영체제에 의해 관리되며 독립된 실행 환경을 가지고 있다.
    • 프로세스는 연산의 단위라 말할 수 있고, 연산이 연속적으로 진행되며 흐름(Context, flow)을 생성한다.
    • 보통 프로세스 수준에서 기본적으로 1개의 흐름이 있다.
    • 보통 하나의 프로세스에는 하나의 주요 흐름이 있고, 이를 메인 스레드라고 한다.
    • 프로세스의 연산은 운영체제에 의해 관리되고, CPU나 RAM메모리의 할당을 받는다.
    • 할당된 RAM은 가상 메모리 (Virtual Memory)이다.
    • 흐름이 N개가 되면 이 N개는 동시에 각자 작동 ← Multi-threading
    • 하나의 프로세스 내부에 여러 개의 스레드가 존재하는 경우, 이 스레드들은 동일한 프로세스의 가상 메모리를 공유하게 된다.

    Thread

    • 스레드는 프로세스 내에서 실행되는 개별적인 실행 흐름을 의미한다.
    • 멀티스레딩(Multi-threading)은 동시성(Concurrency)동기화(Synchronization) 개념을 기반으로 한다.
    • 스레드는 프로세스의 일부로서 존재하며, 각각의 스레드는 자체적인 실행 흐름과 데이터 저장 공간을 가집니다. 이렇게 각 스레드가 사용하는 공간을 "스레드 로컬 스토리지(thread local storage)"라고 한다.
    • 스레드의 운영 범위는 프로세스 수준에서 제공된 Virtual Memory로 한정된다.

    요약

    • 프로세스는 프로그램의 실행 인스턴스로서 운영체제에 의해 관리되며, 연산을 수행하고 가상 메모리를 할당받는다.
    • 프로세스 내에는 최소 하나의 스레드가 존재한다.
    • 운영체제Virtual Memory(제한된 공간)를 프로세스에 할당해 준다.
    • 프로세스에 속한 모든 스레드는 프로세스의 가상 메모리(Virtual Memory)로 공간이 제약된다.

     

     

    '얇게 공부한 CS' 카테고리의 다른 글

    명령어의 구조  (0) 2024.02.24
    쿠키(Cookie)와 세션(Session)  (0) 2024.02.23
    웹 브라우저의 동작  (0) 2024.02.21
    [네트워크] OSI 7 계층  (0) 2024.02.02
    [OS] 인터럽트(interrupt)  (0) 2023.08.08
Designed by Tistory.