thread 2

Event Loop & 비동기 정리

자바스크립트는 동기 자바스크립트는 싱글 스레드 언어, 즉 동기식 언어이다. 하나의 콜 스택(Call Stack)으로 동작하며, 콜 스택에서 작업을 하나씩 뽑아서 한번에 한개의 작업을 실행한다. 따라서 콜 스택에 있는 작업들을 순차적으로 처리할 수 밖에 없다. 이미지 출처: https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif 즉, 자바스크립트는 병렬 처리를 할 수 없으며, 작업들은 동기적으로 처리된다. 그러나! 이벤트 루프(Event Loop)를 통해 비동기 처리를 할 수 있다. 자바스크립트 혼자서는 동기식으로 동작하지만, 브라우저 or Node.js의 이벤트 루프를 통해 비동기적인 처리를 할 수 있다. 비동기적 처리를 할 수 있다니, 이게 ..

개발/Node.js 2023.07.26

[OS] 프로세스 스케줄링

프로세스란?프로세스(Process)는 CPU가 처리하는 작업(Task)이며 실행중인 프로그램을 의미한다.구체적으로는, 디스크에 저장되어 있던 실행 가능한 프로그램이 메모리에 적재되어 운영체제가 관리하는 상태를 의미한다.프로세스 스케줄링스케줄링이란?CPU는 한번에 한가지 작업만을 처리할 수 있다. 하나의 작업이 끝나면 다음 작업을 수행해야 하는데, 이때 OS는 프로세스 스케줄링 알고리즘을 이용하여 다음에 실행할 프로세스를 선택한다.선점(Preemptive) 스케줄링프로세스가 CPU를 점유하고 있는 동안 (I/O 이벤트 또는 인터럽트가 발생한 것이 아니고 작업이 끝난 것도 아닌 상태에서) 다른 프로세스가 해당 CPU를 강제로 점유할 수 있다.비선점(Non-preemptive) 스케줄링한 프로세스가 CPU를 ..

운영체제 2023.07.20