>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux 프로세스에는 어떤 세 부분이 포함됩니까?

Linux 프로세스에는 어떤 세 부분이 포함됩니까?

青灯夜游
青灯夜游원래의
2023-03-02 10:47:592542검색

Linux 프로세스의 세 부분: 1. 다중 프로그램 환경에서 독립적으로 실행할 수 없는 프로그램(데이터 포함)을 독립적으로 실행할 수 있는 기본 단위로 만드는 프로세스 제어 블록과 동시에 실행될 수 있는 프로그램 2. 프로그램 세그먼트는 CPU의 프로세스 스케줄러에 의해 실행될 수 있는 프로세스의 프로그램 코드 세그먼트입니다. 3. 데이터 세그먼트는 프로세스의 데이터 세그먼트입니다. 프로세스에 해당하는 프로그램이거나 프로그램이 실행된 후 생성되는 중간 또는 최종 데이터입니다.

Linux 프로세스에는 어떤 세 부분이 포함됩니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

1. 프로세스 정의

프로세스는 특정 데이터 수집에 따라 컴퓨터에서 프로그램을 실행하는 활동입니다. 시스템의 자원 할당의 기본 단위이자 운영 체제 구조의 기초입니다. .

간단히 말하면 프로그램의 실행 과정입니다.
프로세스는 실행 중인 프로그램의 인스턴스, 즉 실행 중인 작업입니다.
프로세스에는 수명주기가 있습니다. 프로그램이 실행될 때 생성되고 프로그램이 끝나면 종료됩니다.
프로세스는 리소스를 할당하는 가장 작은 단위입니다. 프로세스가 생성되는 동안 [0-3G]의 사용자 공간이 할당됩니다.
사용자가 프로그램을 실행하는 한 커널은 현재 프로세스를 나타내는 task_struct(PCB) 구조를 생성합니다.
프로세스 내에서 자체 파일 설명자 및 버퍼 세트를 유지합니다. 프로세스 실행이 종료되자마자 운영 체제는 프로세스의 모든 리소스를 회수합니다.

Linux 프로세스에는 어떤 세 부분이 포함됩니까?

Time Slice Polling은 동시성을 실현합니다

Linux 프로세스에는 어떤 세 부분이 포함됩니까?

2. 프로세스의 특징

  • 프로세스의 본질은 다중 프로그래밍 시스템에서 프로그램의 실행 프로세스입니다. 프로세스는 동적으로 생성되고 동적으로 종료됩니다.

  • 동시성: 모든 프로세스는 다른 프로세스와 동시에 실행될 수 있습니다.

  • 독립성: 프로세스는 독립적으로 실행될 수 있는 기본 단위이며 시스템 할당 및 리소스 예약을 위한 독립적인 단위이기도 합니다.

    비동기 특성: 프로세스 간 상호 제약으로 인해 프로세스가 간헐적으로 실행됩니다. 즉, 프로세스가 독립적이고 예측할 수 없는 속도로 진행됩니다.
  • 여러 다른 프로세스에 동일한 프로그램이 포함될 수 있습니다. 하나의 프로그램이 다른 다른 프로세스에 있음 데이터 세트에 형성되어 다른 결과를 얻을 수 있지만 실행 중에는 프로그램을 변경할 수 없습니다.

3. 프로세스의 구성과 기능 프로세스의 구성은 프로세스 제어 블록 PCB(task_struct), 데이터 세그먼트, 프로그램 세그먼트의 세 부분으로 구성됩니다.

프로세스 제어 블록: 다중 프로그램 환경에서 독립적으로 실행할 수 없는 프로그램(데이터 포함)을 독립적으로 실행할 수 있는 기본 단위, 다른 프로세스와 동시에 실행할 수 있는 프로세스로 만듭니다.

프로그램 세그먼트: 프로세스 스케줄러에 의해 CPU에서 실행될 수 있는 프로세스의 프로그램 코드 세그먼트입니다.

데이터 세그먼트: 프로세스의 데이터 세그먼트는 해당 프로세스에 해당하는 프로그램에서 처리된 원본 데이터일 수도 있고, 프로그램 실행 후 생성된 중간 또는 최종 데이터일 수도 있습니다.



4. 프로세스 제어 블록

4.1 프로세스 제어 블록 정의 제어 프로세스의 동작을 설명하기 위해 프로세스의 관리 및 제어 정보를 저장하는 데이터 구조입니다. 시스템에서는 프로세스 제어 블록(PCB 프로세스 제어 블록)이라고 하며 이는 프로세스 엔터티의 일부이자 운영 체제에서 가장 중요한 기록 유지 데이터 구조입니다. 프로세스 관리 및 제어를 위한 가장 중요한 데이터 구조로, 각 프로세스에는 PCB가 존재하며, 프로세스가 생성되면 해당 프로세스가 취소될 때까지 프로세스를 실행하는 전체 프로세스를 동반합니다.

PCB의 본질은 구조입니다. PCB의 이름은 운영 체제에 따라 다릅니다. Linux에서는 PCB를 task_struct라고 하며 PCB는 프로세스를 제어하는 ​​유일한 수단입니다.


각 프로세스에는 프로세스 설명자가 있습니다. 이 "프로세스 설명자"는 task_struct에 프로세스 제어에 대한 많은 정보가 저장됩니다.

4.2 task_struct의 내용각 프로세스는 task_struct 데이터 구조에 해당 정보를 저장하며 task_struct에는 다음 내용이 포함됩니다.

Identifier(pid): 프로세스를 설명하는 데 사용되는 고유 식별자 다른 프로세스.
  • 상태: 작업 상태, 종료 코드, 종료 신호 등
  • 우선순위: 다른 프로세스의 우선순위를 기준으로 합니다(숫자가 작을수록 우선순위가 높습니다).
  • 프로그램 카운터: 프로그램에서 실행될 다음 명령의 주소입니다.
  • 메모리 포인터: 프로그램 코드 및 프로세스 관련 데이터에 대한 포인터는 물론 다른 프로세스와 공유되는 메모리 블록에 대한 포인터도 포함됩니다.

  • 컨텍스트 저장은 CPU 레지스터의 값을 메모리에 저장하는 것이며, 컨텍스트를 복원하는 것은 메모리의 레지스터 값을 CPU에 복원하는 것입니다. 표시된 I/O 요청, 프로세스에 할당된 I/O 장치 목록 및 프로세스에서 사용 중인 파일입니다.

  • 계정 정보: 총 프로세서 시간, 사용된 총 시계 수, 시간 제한, 회계 계정 등이 포함될 수 있습니다.

  • 기타 정보

5. 프로세스와 프로그램의 차이점

프로세스는 프로그램의 실행 프로세스로, 동적이며 수명주기를 가지며 메모리에 저장됩니다. .

  • 프로그램은 정적이며 수명 주기가 없습니다. 디스크에 저장된 프로그램은 실행 파일입니다.

  • 프로세스는 동시성을 더 현실적으로 설명할 수 있지만 프로그램은 그렇지 않습니다.

  • 프로세스에는 다른 프로세스를 생성할 수 있는 능력이 있지만 프로그램에는 그렇지 않습니다.

  • 동일한 프로그램이 여러 프로세스에 해당할 수 있습니다.

6. 프로세스와 스레드의 차이점

일반적으로 프로세스에는 여러 스레드가 포함될 수 있으며, 이는 스레드를 도입하는 운영 체제에서 일반적으로 프로세스가 소유한 리소스를 활용할 수 있습니다. 자원 할당의 기본 단위인 스레드는 독립적인 작업과 독립적인 스케줄링을 위한 기본 단위로 사용됩니다. 시스템의 여러 프로그램 간의 동시 실행 정도.

7. 프로세스 유형

프로세스에는 세 가지 유형이 있습니다: 대화형 프로세스, 배치 프로세스, 데몬 프로세스

대화형 프로세스: 대화형 프로세스는 셸에 의해 유지되며 다음을 통해 사용자와 상호 작용합니다. 껍데기 .

예를 들어 텍스트 편집기는 대화형 프로세스입니다.

  • 일괄 프로세스: 일괄 프로세스는 커널의 대기열에 배치되고 대기열이 실행될 때 실행됩니다.

    예를 들어, gcc가 프로그램을 컴파일하는 과정입니다.

  • 데몬 프로세스: 데몬 프로세스는 시스템이 시작될 때 시작되고 시스템이 종료될 때 종료됩니다.

    예를 들어 Windows의 다양한 서비스.

  • 관련 추천: "

    Linux 비디오 튜토리얼
  • "

위 내용은 Linux 프로세스에는 어떤 세 부분이 포함됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.