프로그램 → 프로세스가 되며 일어나는 2가지
한 프로세스 실행 되기 위해 CPU 점유하고 있으면 다른 프로세스는 CPU점유할 수 없음 → 시분할로 짧은텀으로 전환
동시에 프로세스 실행하기 위해서는 짧은 텀으로 전환되어야함
컨텍스트 스위칭 : 실행 → 준비 상태를 번갈아가며 프로세스 실행
경령화된 프로세스 버전의 쓰레드 활용
멀티 프로세스 & 멀티 스레드 : 처리방식의 일종, 한 어플리케이션에 대한 처리방식
멀티프로세스
멀티스레드
차이점
멀티프로세스 멀티스레드 각 프로세스는 독립적 Thread끼리 긴밀하게 연결되어 있음 IPC를 사용한 통신 공유된 자원으로 통신 비용 절감 자원 소모적, 개별 메모리 차지 공유된 자원으로 메모리가 효율적 Context Switching 비용이 큼 context Switching 비용이 적음 동기화 작업이 필요하지 않음 공유 자원 관리를 해야함 크롬 : 멀티프로세서 이용으로 탭 문제생기면 다른 탭에 영향이 덜함 익스플로러 : 멀티스레드 이용으로 탭에 문제가 생기면 전체 탭에 영향(작동 중지되었습니다..!)
단일코어 vs 멀티코어
단일코어 멀티코어 동시성 만족 병렬처리 하나의 코어에서 하나 이상의 프로세스(혹은 쓰레드)가 번갈아가면서 진행되지만 동시에 진행되는 것처럼 보이는 것 둘 이상의 코어에서 동시에 하나 이상의 프로세스(혹은 스레드)가 한꺼번에 진행되는 것
스레드 : 사용자 스레드 / 커널 스레드
"리눅스 커널에서는 프로세스와 스레드를 동일하게 봅니다"