How do we make a global variable accessible across files?
Explain the extern keyword?
3
The OS is a program that uses various data structures. Like
all programs in execution, you can determine the
performance and other behavior of the OS by inspecting its
state - the values stored in its data structures. In this
part of the assignment, we study some aspects of the
organization and behavior of a Linux system by observing
values of kernel data structures exposed through the /proc
virtual file system.
The /proc virtual file system:
Linux uses the /proc file system to collect information
from kernel data structures. The /proc implementation
provided with Linux can read many different kernel data
structures. If you cd to /proc on a Linux machine, you will
see a number of files and directories at that location.
Files in this directory subtree each corresponds to some
kernel data structure. The subdirectories with numeric
names contain virtual files with information about the
process whose process ID is the same as the directory name.
Files in /proc can be read like ordinary ASCII files. You
can open each file and read it using library routines such
as fgets() or fscanf(). The proc (5) manual page explains
the virtual files and their content available through
the /proc file system.
Requirements in detail:
In this part, you are asked to write a program to report
the behavior of the Linux kernel. Your program should run
in two different versions. The default version should print
the following values on stdout:
Processor type
Kernel version
The amount of memory configured into this computer
Amount of time since the system was last booted
A second version of the program should run continuously and
print lists of the following dynamic values (each value in
the lists is the average over a specified interval):
The percentage of time the processor(s) spend in
user mode, system mode, and the percentage of time the
processor(s) are idle
The amount and percentage of available (or free)
memory
The rate (number of sectors per second) of disk
read/write in the system
The rate (number per second) of context switches in
the kernel
The rate (number per second) of process creations
in the system
If your program (compiled executable) is called proc_parse,
running it without any parameter should print out
information required for the first version. Running it with
two parameters "proc_parse <read_rate> <printout_rate>"
should print out information required for the second
version. read_rate represents the time interval between two
consecutive reads on the /proc file system. printout_rate
indicates the time interval over which the average values
should be calculated. Both read_rate and printout_rate are
in seconds. For instance, proc_parse 2 60 should read
kernel data structures once every two seconds. It should
then print out averaged kernel statistics once a minute
(average of 30 samples). The second version of your program
doesn't need to terminate.
Hai sir,
I had planned to write the NIC scientific engineer exam ,
plz post the sample question......
124
How do you access command-line arguments?
5
When do you say that a digraph is acyclic
A)if and only if its first search does not have back arcs
B)a digraph is acyclic if and only if its first search does
not have back vertices
C)if and only if its first search does not have same
dfnumber
D)None of these
Write the following function in C.
stripos Find position of first occurrence of a case-
insensitive string
int stripos ( char* haystack, char* needle, int offset )
Returns the numeric position of the first occurrence of
needle in the
haystack string. Note that the needle may be a string of
one or more
characters. If needle is not found, stripos() will return -
1.
The function should not make use of any C library function
calls.
a) Identify the following declarations.
Ex.
int i
(integer variable) float a[l0](array of 10 real nos)
int (*f())()
void *f
int (*f()) []
void *f
int f[] [] []
char *(*f) ()
int (*f[]) []
float(*f) [] []
float **f
int ******f