1つのプロセスまたはプロセスグループに対してマイナーなページエラーと主要なページエラーを取得するには?

1つのプロセスまたはプロセスグループに対してマイナーなページエラーと主要なページエラーを取得するには?

私はLinux上で動作するC言語プログラムを書こうとしています。デフォルトでは、次のように表示される統計をプロットしようとしています。pid, number of process, page fault(major/minor) and total number of page faults.

val, pid, pagefault, number of processes, total number of pages faults(Majpr+Minor)

1     127    major           1                          2323

アイデアのために、コードソリューションは次のようになりました。メインページエラーを生成します。そのコードは次のとおりです。

#include <fcntl.h>
#include <stdio.h>
#include <sys/mman.h>
#include <sys/stat.h>

int main(int argc, char ** argv) {
  int fd = open(argv[1], O_RDONLY);
  struct stat stats;
  fstat(fd, &stats);
  posix_fadvise(fd, 0, stats.st_size, POSIX_FADV_DONTNEED);
  char * map = (char *) mmap(NULL, stats.st_size, PROT_READ, MAP_SHARED, fd, 0);
  if (map == MAP_FAILED) {
    perror("Failed to mmap");
    return 1;
  }
  int result = 0;
  int i;
  for (i = 0; i < stats.st_size; i++) {
    result += map[i];
  }
  munmap(map, stats.st_size);
  return result;
}

このコードはこれを行いますが、あまりにも多くを提供します。私もこのリンクを見ました:https://stackoverflow.com/questions/23302763/measure-page-faults-from-ac-program ただし、ページエラー(州/部)がどのように発生するのかを特定できませんでした。誰もが重大なエラーとマイナーなエラーを確認する方法を教えてください。

ベストアンサー1

おすすめ記事