링크 ux 프로 세 스 정보 함수 가 져 오기

2995 단어
Linux 프로 세 스 의 관리 < 1 > 프로 세 스 정보 함수 프로 세 스 를 가 져 오 는 것 은 작업 이 라 고도 부 르 며 시스템 자원 을 동적 으로 사용 하고 활동 상태 에 있 는 프로그램 입 니 다.프로 세 스 관 리 는 프로 세 스 제어 블록 PCB, 프로 세 스 스케줄 링, 중단 관리, 작업 대기 열 등 으로 구성 되 어 있 으 며, Liux 파일 시스템, 저장 관리, 장치 관리 와 드라이버 의 기초 입 니 다.프로 세 스 제어 블록 PCB 에는 프로 세 스 PID, 프로 세 스 가 차지 하 는 메모리 영역, 파일 설명자, 프로 세 스 환경 등 프로 세 스 의 모든 정보 가 포함 되 어 있 습 니 다.그 는 taskstruct 의 데이터 구 조 는 include / linux / sch. h 에 존재 함 을 나타 낸다.
프로 세 스 상태 및 변환
#define TASK_RUNNING 0 //    
#define TASK_INTERRUPTIBLE 1 //    (    )
#define TASK_UNINTERRUPTIBLE 2  //    (     )
#define TASK_STOPPED 4  //    
#define TASK_ZOMBIE 8  //    
#define TASK_DEAD 16  //    

프로 세 스 의 기본 동작, 6 가지 종류:
1. 프로 세 스 정보 함수 가 져 오기: 주로 프로 세 스 제어 블록 PCB 의 정 보 를 읽 습 니 다.(1) getpid () 기능: 현재 프로 세 스 의 프로 세 스 표 지 를 가 져 옵 니 다.정의 함수: pidt getpid (void) 반환 값: 현재 프로 세 스 의 프로 세 스 식별 번 호 를 되 돌려 줍 니 다.헤더 파일: \ # include < unistd. h >
(2) getppid () 기능: 현재 프로 세 스 의 부모 프로 세 스 표 지 를 가 져 옵 니 다.정의 함수: pidt getppid (void) 반환 값: 현재 프로 세 스 의 부모 프로 세 스 식별 번 호 를 되 돌려 줍 니 다.헤더 파일: \ # include < unistd. h >
(3) getpgid () 기능: 매개 변수 pid 명령 프로 세 스 가 속 하 는 그룹 식별 번 호 를 얻 을 수 있 습 니 다. 매개 변수 가 0 이면 현재 프로 세 스 의 그룹 식별 코드 를 되 돌려 줍 니 다.정의 함수: pidt getpgid (pid t pid) 반환 값: 실행 에 성공 하면 정확 한 그룹 식별 코드 를 되 돌려 줍 니 다. 잘못 되면 - 1 로 돌아 갑 니 다. 오류 원인 은 errno 에 존재 합 니 다.헤더 파일: \ # include < unistd. h >
(4) getpgrp () 기능: 현재 프로 세 스 가 속 한 그룹 식별 번 호 를 얻 는 데 사용 되 며, getpgid (0) 와 같 습 니 다.정의 함수: pidt getpgrp (void) 반환 값: 실행 에 성공 하면 정확 한 그룹 식별 코드 를 되 돌려 줍 니 다.헤더 파일: \ # include < unistd. h >
(5) getpriotity (void) 기능: 프로 세 스, 프로 세 스 그룹, 사용자 의 프로 세 스 실행 우선권 을 가 져 옵 니 다.정의 함수: int getpriority (int which, int who) 매개 변수 의미: which: PRIOPROCESS   who 프로 세 스 를 위 한 식별 코드 PRIOPGRP     who 프로 세 스 를 위 한 그룹 식별 코드 PRIOUSER     who 사용자 식별 코드 반환 값: 실행 에 성공 하면 현재 프로 세 스 의 우선 순위 (- 20 - 20) 를 되 돌려 줍 니 다. 값 이 작 을 수록 우선 순위 가 높 습 니 다.오류 가 발생 하면 - 1 로 돌아 갑 니 다. 이 유 는 errno 에 있 습 니 다.헤더 파일: \ # include < sys / resource. h >
 
간단 한 실례:
[keven@localhost systemCall]$ cat -n get_process_information.c
#include <stdio.h>
#include <unistd.h>
#include <sys/resource.h>
    
int main(/*int argc,char **argv*/)
{
   printf("This process's pid is:%d",getpid());
   printf("/nThis process's farther pid is:%d",getppid());
   printf("/nThis process's group pid is:%d",getpgid(getpid()));
   printf("/nThis process's group pid is:%d",getpgrp());
   printf("/nThis process's priority is:%d/n",getpriority(PRIO_PROCESS,getpid()));
   return 0;
}

[keven@localhost systemCall]$ ./get_process_information
This process's pid is:6172
This process's farther pid is:5681
This process's group pid is:6172
This process's group pid is:6172
This process's priority is:0
[keven@localhost systemCall]$ 
       
 

좋은 웹페이지 즐겨찾기