🤔 스레드란? 스레드는 프로세스를 구성하는 실행의 흐름 단위로, 하나의 프로세스는 여러 개의 스레드를 가질 수 있다. 이와 같은 스레드를 이용하면, 하나의 프로세스에서 여러 부분의 동시 실행이 가능하다. 스레드는 프로세스 내에서 각기 다른 스레드 ID, 프로그램 카운터 값을 비롯한 레지스터의 값, 스택으로 구성되어 있으며 스레드마다 각각의 정보를 가지고 있기 때문에 각기 다른 코드를 실행 가능하다. 🪡 프로세스와 스레드 기존의 프로세스는, 한번에 하나의 일만을 처리했다. 하나의 실행 흐름을 가지고 단일로 그 흐름만을 진행하는 것을 단일 스레드 프로세스라고 한다. 이후, 스레드의 개념이 도입되며 하나의 프로세스가 한번에 여러 일을 동시에 처리가 가능하게 되었다. 동시 처리에서 중요한 점은, 스레드들은 실행..
CS
🔁 프로세스 상태 이전 포스팅에서 프로세스는 번갈아가면서 실행이 된다고 했는데, 실행되는 과정에서 여러 상태를 거치며 실행이 된다. 운영체제는 이와 같은 것을 PCB를 통해 인식하고 관리하게 되며 대표적인 상태는 아래와 같다. 1. 생성 상태(new) - 프로세스를 생성 중인 상태로, 이제 막 메모리에 적제되어 PCB를 할당받은 상태를 뜻한다. 실행 준비가 완료된 프로세스는 바로 실행이 되는 것이 아니라, 준비 상태가 되어 CPU의 할당을 순차적으로 기다리게 된다. 2. 준비 상태(ready) - 생성이 끝난 프로세스는 바로 실행이 가능하지만, 순차 실행이 되는 특성 상 기다리는 대기 상태가 발생한다. 이와 같이 실행을 기다리고 있는 상태를 지칭하며, 차례가 되어 CPU를 할당받고 실행 상태가 되는 것을..
👀 프로세스란? 프로세스는 프로그램이 실행시킬 때, 보조기억장치에 저장된 프로그램을 메모리로 적재하고 실행을 시키는데, 그 과정을 '프로세스 생성' 이라고 하며 해당하는 프로그램을 프로세스라고 한다. 사용자는 컴퓨터를 실행하는 순간부터 다양한 프로그램을 이용하면서까지 여러가지 프로세스를 실행시키게 되는데, 사용자가 보는 앞에서(직접 실행 중인) 실행되는 프로세스는 포그라운드 프로세스(forground process) 라고 하고, 사용자가 보지 않는 상태에서 자동으로 실행 중인 프로세스를 백그라운드 프로세스(background process)라고 한다. 🧩 프로세스 제어 블록(PCB) 프로세스의 실행을 위해선 CPU를 필요로 하는데, CPU는 한정된 용량을 가지고 있기 때문에 모든 프로세스를 동시에 수용할..