나는 ABRAHAM SILBERSCHATZ, PETER BAER GALVIN 및 GREG GAGNE의 Operating Systems Concepts 책에서 많은 내용을 사용하고 사물에 대한 내 자신의 이해를 사용할 것입니다.
방법
모든 응용 프로그램은 컴퓨터에 텍스트 (또는 코드) 형식으로 상주합니다.
우리는 프로그램 자체가 과정이 아니라고 강조합니다. 프로그램은 디스크에 저장된 명령 목록이 포함 된 파일 (종종 실행 파일이라고 함)과 같은 수동 엔터티입니다.
애플리케이션을 시작할 때 실행 인스턴스를 만듭니다. 이 실행 인스턴스를 프로세스라고합니다. 편집 : (내 해석에 따르면 클래스 및 클래스의 인스턴스와 유사하며 클래스의 인스턴스는 프로세스입니다.)
프로세스의 예로는 Chrome이 있습니다. Chrome을 시작하면 3 개의 프로세스가 생성됩니다.
• 브라우저 프로세스는 사용자 인터페이스와 디스크 및 네트워크 I / O를 관리합니다. Chrome이 시작되면 새로운 브라우저 프로세스가 생성됩니다. 하나의 브라우저 프로세스 만 작성됩니다.
• 렌더러 프로세스에는 웹 페이지를 렌더링하기위한 논리가 포함되어 있습니다. 따라서 HTML, Javascript, 이미지 등을 처리하기위한 논리가 포함되어 있습니다. 일반적으로 새 탭에서 열린 각 웹 사이트에 대해 새 렌더러 프로세스가 작성되므로 여러 렌더러 프로세스가 동시에 활성화 될 수 있습니다.
• 사용 중인 각 유형의 플러그인 (예 : Flash 또는 QuickTime)에 대해 플러그인 프로세스가 작성됩니다. 플러그인 프로세스에는 플러그인 코드와 플러그인이 연관된 렌더러 프로세스 및 브라우저 프로세스와 통신 할 수 있도록하는 추가 코드가 포함되어 있습니다.
실
이것에 대답하려면 먼저 프로세서가 무엇인지 알아야한다고 생각합니다. 프로세서는 실제로 계산을 수행하는 하드웨어입니다. 편집 : (두 숫자 추가, 배열 정렬, 기본적으로 작성된 코드 실행과 같은 계산)
이제 스레드 정의로 넘어갑니다.
스레드는 CPU 사용 의 기본 단위입니다 . 스레드 ID, 프로그램 카운터, 레지스터 세트 및 스택으로 구성됩니다.
편집 : 인텔 웹 사이트의 스레드 정의 :
스레드 또는 실행 스레드는 단일 CPU 코어를 통해 전달되거나 처리 될 수있는 기본 순서의 명령 시퀀스에 대한 소프트웨어 용어입니다.
따라서 Chrome 애플리케이션의 렌더러 프로세스가 숫자 배열을 정렬하면 정렬은 스레드 / 스레드 스레드에서 수행됩니다. (쓰레드에 관한 문법은 혼란스러워 보입니다)
사물의 나의 해석
프로세스는 실행 인스턴스입니다. 스레드는 CPU 액세스를 통해 계산을 수행하는 실제 작업자입니다. 프로세스에 대해 여러 스레드가 실행중인 경우 프로세스는 공통 메모리를 제공합니다.
편집 :
더 많은 컨텍스트를 제공하는 데 도움이되는 기타 정보
모든 현대 컴퓨터에는 둘 이상의 스레드가 있습니다. 컴퓨터의 스레드 수는 컴퓨터의 코어 수에 따라 다릅니다.
동시 컴퓨팅 :
Wikipedia에서 :
동시 컴퓨팅은 순차적으로 (다음 시작 전에 하나를 완료하는 대신) 겹치는 시간 동안 (동시에) 여러 계산이 실행되는 컴퓨팅 형태입니다. 이것은 시스템의 속성이며 개별 프로그램, 컴퓨터 또는 네트워크 일 수 있으며 각 계산 ( "프로세스")마다 별도의 실행 지점 또는 "제어 스레드"가 있습니다.
그래서 4 숫자의 합계를 계산하는 프로그램을 작성할 수 있습니다.
(1 + 3) + (4 + 5)
이 스레드 (실행 스레드에서 실행되는 하나의 프로세스)를 계산하는 프로그램에서 다른 스레드에서 실행하여 다른 프로세스를 계산하여 (4 + 5) 계산하고 결과를 원래 프로세스로 반환 할 수 있습니다. 원래 프로세스는 (1 + 3)의 합을 계산합니다.