Process?
- 프로세스는 실행 중인 프로그램의 인스턴스이며, 운영체제(OS)에서 독립적으로 실행되는 작업 단위.
- 프로그램이 실행되면 운영체제가 프로세스를 생성하고, 메모리와 CPU 같은 자원을 할당하여 실행 환경을 제공
프로세스의 특징
- 독립성
- 각 프로세스는 다른 프로세스와 메모리 공간을 공유하지 않는다.
- 하나의 프로세스가 종료되거나 오류가 발생해도 다른 프로세스에 영향을 미치지 않는다.
- 고유한 메모리 구조
- 프로세스는 운영체제로부터 고유한 메모리 공간을 할당받아 실행.
- Code Segment : 실행 코드가 저장되는 공간.
- Data Segment : 전역 변수와 정적 변수가 저장되는 공간
- Heap Segment : 런타임에 동적으로 할당되는 메모리 공간
- Stack Segment : 함수 호출 시 필요한 데이터와 지역 변수가 저장되는 공간.
- 프로세스는 운영체제로부터 고유한 메모리 공간을 할당받아 실행.
- 무거운 통신 비용
- 프로세스는 메모리를 독립적으로 관리하기 때문에, 다른 프로세스와 데이터를 교환하려면 IPC(Inter-Process-Communication) 기법을 사용해야 한다.
- 파이프, 메시지 큐, 소켓, 공유 메모리 등을 통해 통신할 수 있지마느 이 과정에서 추가적인 오버헤드가 발생한다.
- 운영체제의 관리 단위
- 운영체제는 프로세스를 관리하기 위해 PCB(Process Control Block)를 사용한다.
- PCB는 프로세스ID, 상태, 우선순위, 메모리 정보 등을 포함한 데이터를 저장하며, 스케줄링과 자원 할당에 사용된다.
오버헤드란?
작업을 수행하는 데 있어 추가적으로 발생하는 비용이나 자원을 말한다.
프로세스의 생명주기
- 생성(New)
- 프로세스가 생성되고 초기화 단계에 있는 상태.
- 준비(Ready)
- 실행 대기 상태로, CPU를 할당받기를 기다린다.
- 실행(Running)
- CPU를 할당받아 명령어를 실행 중인 상태.
- 대기(Waiting)
- 입출력(I/O) 작업을 기다리는 상태.
- 종료(Terminated)
- 프로세스 실행이 완료되어 운영체제에 의해 제거된 상태
Thread
- 스레드는 프로세스 내에서 실행되는 최소 실행 단위다.
- 프로세스는 최소 하나의 스레드를 가지며, 여러 스레드를 포함할 수도 있다.
- 하나의 프로세스 안에서 여러 스레드가 병렬로 실행되며, 자원을 공유하면서도 독립적으로 실행 흐름을 관리한다.
스레드의 특징
- 프로세스의 작업 단위
- 스레드는 프로세스 내부에서 실행되며, 프로세스의 자원(Code, Data, Heap)을 공유하면서도 독립적인 실행 흐름(Stack)을 가진다.
- 경량성
- 스레드는 프로세스보다 생성 및 관리 비용이 적고, 같은 프로세스 내에서는 자원을 공유하기 때문에 통신 오버헤드가 적다.
- 병렬 처리
- 멀티스레드 환경에서는 하나의 프로세스가 여러 스레드를 통해 병렬 작업을 수행할 수 있다.
- 이는 멀티코어 CPU를 최대한 활용할 수 있도록 해준다.
- 공유 메모리 구조
- 스레드는 프로세스 내의 Code, Data, Heap 메모를 공유하지만, 각 스레드는 고유의 Stack을 가진다.
- 메모리 공유로 인해 효율적이지마느 잘못된 접근으로 동기화 문제가 발생할 수 있다.
- 운영체제의 관리 단위
- 운영체제는 스레드를 관리하기 위해 TCB(Thread Control Block)를 사용한다.
- TCB는 스레드 ID, 상태, 우선순위, Stack 포인터 등의 정보를 저장한다.
스레드의 생명주기
- 생성(New)
- 스레드가 생성되고 초기화 단계에 있는 단계
- 준비(Ready)
- 실행을 대기하는 상태로, CPU 스케줄링을 기다린다.
- 실행(Running)
- CPU를 할당받아 명령어를 실행 중인 상태
- 대기(Waiting)
- 특정 조건이 충족되기를 기다리는 상태
- 종료(Terminated)
- 스레드가 작업을 완료하고 종료된 상태
'정보' 카테고리의 다른 글
Binary Search와 Tree (0) | 2024.12.22 |
---|---|
Big-O 표기법 (0) | 2024.12.22 |
재귀 함수(Recursive Function) (0) | 2024.12.19 |
VO, BO, DAO, DTO (0) | 2024.09.12 |
시간복잡도 / 공간복잡도,, 복잡하다,, (4) | 2024.09.02 |