>운영 및 유지보수 >리눅스 운영 및 유지 관리 >리눅스에서 프로세스란 무엇인가

리눅스에서 프로세스란 무엇인가

angryTom
angryTom원래의
2019-11-06 14:49:373575검색

리눅스에서 프로세스란 무엇인가

Linux에서 프로세스란 무엇인가요?

프로세스는 일반인의 관점에서 진행 중인 프로그램, 실행 중인 프로그램이며 PCB(프로세스 제어 블록)라고도 합니다.

Linux 운영 체제에서 프로세스 task_struct라는 구조로 설명되는데, 이 구조에는 무엇이 포함되어 있나요?

우리 모두는 프로그램을 실행하려면 먼저 해당 실행 파일을 디스크에서 메모리로 로드해야 한다는 것을 알고 있습니다. 그렇다면 해당 파일이 메모리의 어디에 있는지 어떻게 알 수 있을까요? 이때 프로세스 식별자(pid)라는 것을 통해 찾아야 합니다. 우리와 마찬가지로 우리에게도 우리의 정체성을 나타내는 것, 즉 신분증이 있습니다.

프로그램이 어디에 있는지 찾은 후 실행하려면 해당 코드와 코드가 의존하는 데이터를 알아야 하므로 메모리 포인터가 탄생했습니다. 메모리 포인터는 프로그램 코드와 해당 데이터를 가리키는 데 사용됩니다. 이제 프로그램을 실행할 준비가 되었습니다.

그러나 프로세스가 많고 일반적으로 중앙처리장치(CPU)가 하나뿐이기 때문에 많은 프로세스를 원활하게 구현하기 위해서는 프로세스 간 실행 순서가 필요합니다. , 즉 우선순위입니다. 우선순위를 정한 후에는 여러 프로세스를 구현하는 것이 훨씬 쉽습니다.

하지만 CPU는 다음 프로세스를 실행하기 전에 하나의 프로세스를 실행하지 않는다는 점에 주목할 가치가 있습니다. 한 프로그램이 일정 기간 동안 실행된 후 다음 프로세스를 실행합니다. 잠시 동안 실행된 후 후속 프로세스가 실행됩니다. 이때 문제가 발생하는데, 실행되지 않은 프로그램이 이전 위치에서 계속 실행되려면 어떻게 해야 하나요? 걱정하지 마세요. "컨텍스트"로 장면을 보호하겠습니다.

앞서 CPU가 다음 프로그램을 실행하기 전에 프로그램이 일정 시간 동안 실행된다고 말씀드렸는데, CPU가 포기하기 전까지 프로그램은 얼마나 오랫동안 실행되어야 할까요? 여기서는 "회계 정보"를 사용하여 이 시간을 기록합니다.

또한 프로세스는 실행 시 준비 상태(R), 중단 가능한 절전 상태(S), 중단 불가능한 절전 상태(D) 등 여러 상태로 나타나므로 구조에 프로세스 상태도 기록됩니다. 물론 표준 입력, 표준 출력, 표준 오류 출력 등 I/O 상태 정보도 있습니다.

요약하면 프로세스를 설명하는 구조체인 task_struct에는 다음과 같은 부분이 포함됩니다.

● 식별자: 프로세스의 ID, 즉 pid를 기록하는 데 사용됩니다.

# 🎜🎜#● 메모리 포인터: 프로그램 코드 및 관련 데이터 등을 가리킵니다.

● 우선순위

● 컨텍스트: 마지막 실행 사이트를 저장합니다. CPU의 프로세스# 🎜🎜#

● 회계 정보: 프로세스가 CPU를 포기해야 하는 시기를 기록

● 상태: 프로세스의 관련 상태를 기록

#🎜 🎜#● I/O 상태 정보

● 신호 관련 정보

권장 사항:

linux 시스템 기본 튜토리얼

위 내용은 리눅스에서 프로세스란 무엇인가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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