728x90
✅프로그램 VS. 프로세스
프로그램: 정적, 실행 가능한 파일 형태
프로세스: 실행된 프로그램, cpu와 메모리 할당받아서 프로그램이 실행된 형태
✅프로세스 VS. 스레드
프로세스: 실행단위가 크고 + 한개의 프로그램에 한개의 프로세스만 존재
스레드: 실행 단위가 작고 + 핸개의 프로그램(한개의 프로세스)내 수 많은 스레드가 존재
스레드마다 프로그램 카운터(실행위치) + 명령어 레지스터(실행함수) + 스택 영역(실행 변수)을 가짐
🔷스레드
프로세스는 실행단위가 커서 각 기능별로 프로세스를 나눈게 스레드이다.
스레드마다 stack을 가지고 있고, 스택은 함수 호출에 필요한 정보가 담겨있다. (heap은 프로세스마다 하나씩 할당)
- 스레드마다 프로그램 카운터(실행 위치) + 명령어 레지스터(실행 함수) + 스택영역(실행 변수)을 가짐
[심화]
- 프로세스간 충돌 Race Condition -> Synchronization 동기화 솔루션 -> Mutext(Mutual exclusion, 상호배제)
- 프로세스 = Deamon 및 리눅스 초기화
프로세스와 스레드에 대해 자세히 알고 싶다면 아래 링크를 참고(OS수업 내용 정리글)
프로세스: https://metal-spring-f1a.notion.site/3-Processes-7f1c929e23c846b586993079ce8fcd92?pvs=4
스레드: https://metal-spring-f1a.notion.site/4-Threads-98ce5c0ec7b745a4b3eff44755366d00?pvs=4
✅스레드의 장점: 다중 작업
- 1 프로그램 = 1 프로세스라서 하나의 작업만 할 수 있는 한계를 벗어나서 1 프로세스 = N스레드가 가능하므로 다양한 작업 + 동시 작업이 가능하다
- 실행(작업) 단위가 작아졌기 때문에 다중 작업의 부담이 없다.
728x90
'ASAC 웹 풀스택' 카테고리의 다른 글
[ASAC 6기] 웹 개발이란 무엇이며, 어떻게 동작하나? FE(2) - JS엔진, JS엔진 비동기 처리 (0) | 2024.08.20 |
---|---|
[ASAC 6기] 웹 개발이란 무엇이며, 어떻게 동작하나? FE(1) -jQuery, React (0) | 2024.08.20 |
[ASAC 6기] 웹 검색 엔진과 SEO (0) | 2024.08.18 |
[ASAC 6기] 웹 서버 주소 변환 DNS : IP 주소 ↔ 도메인 네임 (0) | 2024.08.18 |
[ASAC 6기] 인트라넷과 인터넷 (localhost, 사설ip, 공인ip, VPN) (0) | 2024.08.12 |