일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JavaScript
- Python
- EC2
- AWS
- MAC address
- airflow
- java
- kubernetes
- zookeeper
- PostgreSQL
- log
- Trino
- kubectl
- CSV
- Operating System
- Vision
- kubeadm
- helm
- docker
- Network
- Packet
- CVAT
- grafana
- jvm
- Spring
- aws s3
- ip
- OS
- tcp
- Kafka
- Today
- Total
JUST WRITE
Process vs Thread 본문
이 글은 KOCW 강좌 중 경성대학교 양희재 교수님의 '운영체제' 강의를 정리한 글입니다.
Process 생성
운영체제가 Booting되면서 Memory에 Load되면 최초의 Process를 생성한다.
(운영체제마다 다르지만 보통 최초의 Process명 -> init)
Process는 다른 Process를 생성한다.
이 때 생성을 하는 Process를 Parent Process, 생성되어진 Process를 Child Process라고 한다.
같은 Parent Process에서 생성된 Process는 Sibling Process라고 한다.
Process 생성은 2가지 System call로 생성가능하다.
- fork -> Parent Process 복사
- exec -> 실행 파일을 Memory에 Load
PID
각각의 Process는 고유 번호를 가지고 있으며, PID(Process Identifier)라고 한다.
PID는 일반적으로 정수형(Integer)로 표현한다.
PPID는 Parent Process의 PID이다.
Process 종료
Process 종료는 exit라는 System Call로 가능하다.
Process가 종료되면 Process의 모든 자원(Memory, file, I/O 등)이 운영체제에 반환된다.
Thread
Thread는 Program 내 순차적 흐름입니다.
Process내 Thread끼리 Memory 공간(code, data)과 자원(file, I/O ...)를 공유한다.
대신 PC(Process Counter), SP(Stack Pointer), registers, stack은 공유하지 않는다.
Multithreads
1개 Program내 2개 이상의 Thread를 가지고 있으면 Multi-thread Program이라고 한다.
Multithreads는 빠른 시간 간격으로 Swiching되면서 동시에 Thread가 실행되는 것처럼 보인다.
'OS' 카테고리의 다른 글
Deadlock (0) | 2022.01.15 |
---|---|
Process 동기화 (0) | 2022.01.14 |
CPU Scheduling (0) | 2022.01.11 |
Process (0) | 2022.01.09 |
OS Service (0) | 2022.01.06 |