요약
프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위
스레드 : 프로세스가 할당받은 자원을 이용하는 흐름의 단위 -> 하나의 프로세스 내에서 동시에 진행되는 작업 갈래, 흐름의 단위
프로그램은 코드 덩어리 -> 프로그램이 돌아가고 있는 상태(코드 덩어리를 실행한 것) : 프로세스
모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해줘야 한다.
프로그램 실행 -> 메모리에 올라감 -> 운영체제로 부터 CPU(시스템자원) 할당
👩💻 완전히 정복하는 프로세스 vs 스레드 개념
한눈에 이해하는 프로세스 & 스레드 개념 전공 지식 없이 컴퓨터의 프로그램을 이용하는데는 문제 없어 왔지만 소프트웨어를 개발하는 사람으로서 컴퓨터 실행 내부 요소를 따져보게 될때, 아
inpa.tistory.com
프로세스의 자원 구조
프로세스(OS) = {TEXT, Data, Stack, Heap}(RAM)
스레드의 자원 공유
프로세스가 할당받은 자원을 이용하는 실행의 단위로서, 스레드가 여러 개 있으면 파일을 받으며 웹서핑 가능해진다.
스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 이룸 -> 하나의 프로세스 내에 여러 개의 스레드가 들어있음
스레드는 Stack만 할당받아 복사하고 Code, Data, Heap은 프로세스 내에서 다른 스레드들과 공유된다.
프로세스 & 스레드의 생명 주기
프로세스 스케줄링 : 운영체제에서 CPU를 사용 할 수 있는 프로세스를 선택하고, CPU를 할당하는 작업
스레드 스케줄링 : OS에서 다중 스레드를 관리하며 CPU를 사용할 수 있는 스레드 선택, CPU를 할당
-> OS특징과 시스템 요구사항에 따라 다양한 알고리즘으로 동작됨
자바스크립트는?
자바스크립트는 싱글스레드이다. 하지만 브라우저와 node는 멀티 스레드이다. 하지만 자바스크립트를 실행하는 스레드는 단 하나여서 싱글스레드라고 부른다. 이때 단 하나의 스레드를 이벤트루프라고 부른다.