목록2024/01/12 (3)
Machineboy空
스레드(thread)란? 이번 내용에선 (소프트웨어) 스레드를 의미. *스레드(thread) = 프로세스를 구성하는 실행 흐름의 단위 스레드(thread)의 구성 요소 스레드는 무엇으로 구성되어 있길래, 실행 흐름을 나눠서 실행할 수 있을까? 실행에 필요한 최소한의 정보를 유지하고 있다. 스레드 ID 프로그램 카운터를 비롯한 레지스터 값 스택 등 프로세스를 이루는 스레드(thread)들은 프로세스의 자원을 공유하며 실행된다. thread 1,2,3은 병행 실행된다고 하나, 같은 코드 영역, 데이터 영역을 공유하고 있다. 스레드 별로 다른 영역이 주어지는 것이 아니다. 실제로 요즘, 처리해야할 작업을 CPU에게 전달할 때 통째로 process단위가 아닌 thread 단위로 전달하는 추세 멀티 프로세스와 멀..
운영체제는 프로세스의 상태를 PCB(Process Control Block)에 기록해서 관리한다. 모든 운영체제는 아니지만 대부분의 운영체제는 이런 프로세스의 상태를 계층적으로 관리한다. 프로세스 상태 (Process State) *프로세스 상태는 운영체제마다 조금씩 차이가 있다. 생성 상태 보조기억장치에 있던 데이터 덩어리가, 이제 막 메모리에 적재되어 PCB를 할당,발급받은 상태 *프로세스가 종료되면 PCB를 종료함 준비가 완료되었다면 준비 상태로 준비 상태 (Ready State) 당장이라도 CPU를 할당 받아 실행할 수 있지만, 자신의 차례가 아니기에 기다리는 상태 자신의 차례가 된다면 준비 상태에서 실행 상태로 접어드는 것 = 디스패치 (dispatch) 실행 상태 (Running State) ..
프로세스란? 프로그램은 실행되기 전까지 데이터 덩어리로서 보조기억장치에 저장되어 있다가 실행해서 메모리에 적재되는 순간 프로세스(process)가 된다. 이 과정을 프로세스를 생성한다고 말하기도 한다. 프로세스(process)의 종류 포그라운드 프로세스 (foreground process) 백그라운드 프로세스(background process) 사용자가 볼 수 있는 공간에서 실행되는 프로세스 사용자가 볼 수 없는 공간에서 실행되는 프로세스 메모장, 게임 등 사용자와 직접 상호작용이 가능한 백그라운드 프로세스 사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스 데몬(daemon), 서비스(service) CPU가 프로세스를 어떻게 관리하는지 프로세스 제어 블록 모든 프로세스는 실행을 위해 CPU..