프로세스, 스레드, 멀티태스킹, 멀티스레딩, 멀티프로세싱, 멀티프로그래밍어떻게 여러 프로그램이 동시에 실행되는가? (원리) 운영체제 관점에서의 스레드(=/ 유저 관점에서의 스레드)컴퓨터가 실행할 수 있는 명령어들의 집합컴퓨터에서 실행 중인 프로그램각각의 프로세스는 독립
스레드 컨텍스트 스위칭이 프로세스 컨텍스트 스위칭보다 빠른 이유는?\-> 메모리 주소 관련 처리를 하지 않기 때문정의:CPU/코어 에서 실행 중이던 프로세스/스레드 가 다른 프로세스/스레드 로 교체되는 것실행 시점: 주어진 time slice(quantum)를 다 사용
프로세스는 특성에 따라 CPU bound나 I/O bound로 구분된다.각각 프로그램의 스레드 개수를 어떻게 정해야 하는지 다르다.프로세스의 명령어를 해석하고 실행하는 장치파일을 읽고 쓰는 것네트워크의 어딘가와 데이터를 주고 받는 것입출력 장치와 데이터를 주고 받는 것
동기화를 모르면 예상치 못한 오류가 발생할 수 있다.특히 멀티스레딩 기반의 백엔드 API를 만들 때 중요하다.스레드 뿐만 아니라,프로세스 끼리도 공유되는 자원에 동시에 접근하고 있다면,같은 문제가 발생할 수 있다.00:00 오프닝00:13 동기화 없으면 생길 수 있는
동기화(synchronization)를 위한 전략 3가지스레드 또는 프로세스의 동기화를 위해 자주 사용되는 락 메커니즘 1\. 스핀락(spinlock)2\. 뮤텍스(mutext)3\. 세마포(semaphore)뮤텍스는 != 바이너리 세마포00:00 오프닝00:10 ra