Question: Linux Kernel Module - Page Table Walker Objective The purpose of this assignment is to gain experience writing code that executes in kernel (protected) mode
Linux Kernel Module - Page Table Walker
Objective
The purpose of this assignment is to gain experience writing code that executes in kernel (protected) mode in Linux by implementing a Linux Kernel Module. It is best to complete this assignment on a virtual machine. In case of problems, it is easier to restart a virtual machine, than to restart the host system.
The goal of the assignment is to build a kernel module that traverses the list of running processes and generates report that displays the process ID, process name of all processes with PID > 650, and the total number of pages allocated in memory. This report output from the kernel module should be made to the kernel log files (/var/log/syslog in Ubuntu) and to a Linux proc file under the /proc directory.
The extra creditgoes to the extra information in the report that show the number of pages that are allocated contiguously vs. non-contiguously in physical memory for each process.
Sample Output
Output should be generated in comma separated value (CSV) format. The columns contig_pages and noncontig_pages are optional.
The first line says PROCESS REPORT:. The second line is a comma-separated header line describing the columns. The columns are proc_idfor the process ID, proc_namefor the process name (the comm field of task_struct), and total_pageswhich is the total number of memory pages allocated (i.e., in use) for the process.
Optionalcolumns include: contig_pageswhich is the number of contiguous pages, and noncontig_pageswhich is the number of non-contiguous pages.
The last line of the report is optional. The last line displays TOTALSin the first cell, a blank value in the second cell and provide a sum of the total number of contiguous pages, total number of non-contiguous pages, and the total number of pages for all processes with PID > 650.
TCSS 422 Operating Systems Instructor: Juhua Hu Assignment 3 Linux Kernel Module - Page Table Walker Objective The purpose of this assignment is to gain experience writing code that executes in kernel (protected) mode in Linux by implementing a Linux Kernel Module. It is best to complete this assignment on a virtual machine. In case of problems, it is easier to restart a virtual machine, than to restart the host system. The goal of the assignment is to build a kernel module that traverses the list of running processes and generates report that displays the process ID, process name of all processes with PID > 650, and the total number of pages allocated in memory (NOTE: not every page in the virtual address space is currently allocated in the physical memory). This report output from the kernel module should be made to the kernel log files (/var/log/syslog in Ubuntu). The extra credit goes to the extra information in the report that show the number of pages that are allocated contiguously vs. non-contiguously in physical memory for each process. Sample Output Output should be generated in comma separated value (CSV) format. The columns contig_pages and noncontig_pages are optional. The first line says PROCESS REPORT:. The second line is a comma-separated header line describing the columns. The columns are proc_id for the process ID, proc_name for the process name (the comm field of task_struct), and total_pages which is the total number of memory pages allocated (i.e., in use) for the process. Optional columns include: contig_pages which is the number of contiguous pages, and noncontig_pages which is the number of non-contiguous pages. The sum of these two must be equal to the total_pages. 1TCSS 422 Operating Systems Instructor: Juhua Hu...
Attachments:
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
