OS Report
OS Report
1
Assistant Professor (CEIT) ISHA AGGARWAL
STUDENT DECLARATION
We declare that our 7th semester report in ‘OPERATING SYSTEM LAB’ with project named as
‘Single PDF Creation Tool’ is our own work conducted under supervision of Ms. Neny Pandel.
We further declare that to the best of our knowledge the report for B. Tech 7th Sem does
not contain part of the work which has submitted for the award of B. Tech degree either in
2
Ms. Neny Pandel
CERTIFICATE
This is to certify that the report entitled ‘OPERATING SYSTEM LAB' with project named as
‘PDF Merging OS Tool’ is a Bonafede report of the work carried out by Anurag Kumar and
Isha Agarwal under guidance and supervision for the partial fulfilment of degree of the B.
To the best of our knowledge and belief, this work embodies the work of candidates
themselves, has duly been completed, fulfils the requirement of the ordinance relating to
the bachelor’s degree of the university and is up to the standard in respect of content,
3
ACKNOWLEDGEMENT
Working in good environment and motivation enhance the quality of the work and We get it
from our university through our Operating System Lab. We have been permitted to take this
golden opportunity under the expert guidance of Ms. Neny Pandel from Suresh Gyan Vihar
University, Jaipur. We are heartily thankful to her to make complete our lab successfully.
She has given us her full experience and extra knowledge in practical field. Finally, we thank
all the people who had directly or indirectly help as to complete my project.
4
TABLE OF CONTENTS
2 Virtualization 9
6 Scheduling: Introduction 17
8 Proportional Share 19
9 Multiprocessor Scheduling 21
17 LBMT Summary 31
18 Summary 32
5
19 Scope and Analysis 33
20 Technologies Used 34
21 Code 35
22 Output 38
23 Conclusion 39
24 Reference 40
6
Introduction to Operating System
If you are taking an undergraduate operating systems course, you should already have some
idea of what a computer program does when it runs. If not, this book (and the
corresponding course) is going to be difficult — so you should probably stop reading this
book, or run to the nearest bookstore and quickly consume the necessary background
material before continuing (both Pat & Patel [PP03] and Bryant & O’Halloran [BOH10] are
pretty great books). So, what happens when a program runs? Well, a running program does
one very simple thing: it executes instructions. Many millions (and these days, even billions)
of times every second, the processor fetches an instruction from memory, decodes it (i.e.,
figures out which instruction this is), and executes it (i.e., it does the thing that it is supposed
to do, like add two numbers together, access memory, check a condition, jump to a
function, and so forth). After it is done with this instruction, the processor moves on to the
next instruction, and so on, and so on, until the program finally completes1 . Thus, we have
just described the basics of the Von Neumann model of computing2 . Sounds simple, right?
But in this class, we will be learning that while a program runs, a lot of other wild things are
going on with the primary goal of making the system easy to use. There is a body of
software, in fact, that is responsible for making it easy to run programs (even allowing you
to seemingly run many at the same time), allowing programs to share memory, enabling
programs to interact with devices, and other fun stuff like that. process monitoring. These
tools are primarily divided into two main categories: real time and log-based.
7
Real time monitoring tools are concerned with measuring the current system state and
provide up to date information about the system performance. Log-based monitoring tools
record system performance information for post-processing and analysis and to find trends
in the system performance. In addition to these categories, this survey will look at Windows-
based tools and Unix-based tools, since the tools are very different for these two common
operating system types. Real Time Monitoring Tools are concerned with monitoring and
displaying the current system performance. They sum up the performance for a particular
factor with a single number. Typically, these tools rely on system calls that are built into the
operating system to extract the performance readings. Because these calls are built into the
operating system, they do affect the system performance, sometimes significantly. They are
also very difficult to change since the operating system source code is not usually readily
available. I will describe a number of the most common operating system and process
performance monitoring tools for Windows and Unix systems in the following sections.
8
THE PROCESS
we discuss one of the most fundamental abstractions that the OS provides to users: the
[V+65,BH70]. The program itself is a lifeless thing: it just sits there on the disk, a bunch of
instructions (and maybe some static data), waiting to spring into action. It is the operating
system that takes these bytes and gets them running, transforming the program into
something useful. It turns out that one often wants to run more than one program at once;
for example, consider your desktop or laptop where you might like to run a web browser,
mail program, a game, a music player, and so forth. In fact, a typical system may be
seemingly running tens or even hundreds of processes at the same time. Doing so makes the
system easy to use, as one never need be concerned with whether a CPU is available; one
simply runs programs short history is shown on a graph, but once again, none of this data is
logged for comprehensive analysis. Task Manager's data is updated every one second by
default, but it can be changed to one of three present values or set to only update manually.
It is highly integrated into the operating system, and it is not designed to log any of its
invaluable tool in monitoring and adjusting the processes running on a computer. Task
Manager is also the standard for real time operating system and process monitoring tools
for Windows systems that all other tools must be evaluated against, because another tool
must provide some features not available in Task Manager for it to be considered useful.
9
10
11
INTERLUDE PROCESS API
Though we defer discussion of a real process API until a subsequent chapter, here we first
give some idea of what must be included in any interface of an operating system. These
• Create: An operating system must include some method to create new processes. When
you type a command into the shell, or double-click on an application icon, the OS is invoked
• Destroy: As there is an interface for process creation, systems also provide an interface to
destroy processes forcefully. Of course, many processes will run and just exit by themselves
when complete; when they don’t, however, the user may wish to kill them, and thus an
• Wait: Sometimes it is useful to wait for a process to stop running; thus some kind of
• Miscellaneous Control: Other than killing or waiting for a process, there are sometimes
other controls that are possible. For example, most operating systems provide some kind of
method to suspend a process (stop it from running for a while) and then resume it (continue
it running).
• Status: There are usually interfaces to get some status information about a process as
well, such as how long it has run for, or what state it is in a graph or a histogram to the
colours assigned to certain counters. The current reading and statistical information are
displayed for the selected counter as the graph updates. Only one counter can be selected
at a time for displaying numerical data, but any number of counters can be included on the
12
graph at once. The Add Counters window of Performance Monitor is shown in Figure 4. This
example shows the counters and options available for a process. The list on the left lists all
the available counters for a process that can be selected for monitoring. The list on the right
shows all instances of a process object that can be selected for monitoring. Performance
objects that can be monitored, include many objects other than processes. In addition to
detailed monitors of a large set of system counters, Performance Monitor also allows the
user to set up alerts that will cause an action to occur when a specified counter exceeds a
defined threshold [Aubley01]. Alerts can be set up to log an entry, send a message, or run
any command or program whenever a counter exceeds a threshold set by the user.
13
14
SCHEDULING
Scheduling is another tool for Windows process performance monitoring that is primarily
useful for real-time monitoring of process performance. It provides functionality like that of
Task Manager but without any control over processes. It simply outputs process
performance measurements to the command prompt windows. Process Monitor is not very
configurable and only has one update rate: every five seconds. Like Task Manager and
Performance Monitor, Process Monitor gets its performance measures via the system
counters. The advantage of Process Monitor over Task Manager is more in user preference
than anything else. Some users who are more comfortable with command line interfaces or
who prefer the simplest view into the state of the processes running on a machine may
prefer
Process Monitor over Task Manager. However, there is not any data provided by Process
15
The Multi-Level Feedback Queue
Scheduling the Multi – Level Feedback Queue is another operating system monitoring tools
for Windows that is very similar to Performance Monitor. Like Performance Monitor,
memory, and the system in general. Most of the measurements are the same, but Process
Explode provides access to a few additional measurements of these four system objects
[Moore]. Like all of the performance measurement tools discussed thus far, measurements
are made by getting counts for various system objects. Process Monitor shows details of a
selected process's address space, its base priority, its elapsed time and how much time was
spent in user and kernel modes, and thread and other system data.
information all on one window. However, this can be a little overwhelming upon
initial use of this tool since there is so much data displayed in a single window.
• Process Explode does not update automatically, but instead only updates when the
• Process Explode can change process priorities and permissions and can stop running
16
• Process Explode shows many more performance measurements than Task Manager.
PROPORTIONAL SHARE
Proportional share is another tool that was introduced with the Windows NT Resource Kit
4.0. Process Viewer is very similar to Process Explode, but it shows a subset of the process
interface than Process Explode's window, and still usually shows all of the details that a user
would need. Like Process Explode, Process Viewer does not update its information
automatically but instead only updates manually when a user presses the Refresh button.
Also, like Process Explode and Task Manager, Process Viewer can kill processes and view and
change process priorities. Process Viewer is most useful for examining process memory
usage. It has a separate Memory Details window that shows all the user address space
17
PROCESS STATUS (PS)
While Task Manager and Performance Monitor are probably the most well-known real-time
performance monitoring tools for Windows systems, Process Status (ps) is almost certainly
the most widely used performance monitoring tool for Unix based systems. The ps
command provides detailed information and performance statistics about running processes
such as the names and process IDs as well as the current CPU usage [Ezolt05]. The ps
command is one of the oldest performance measurement tools for Unix systems that is still
used widely today, and it has many options and parameters that it can display.
Some of the parameters for the ps command that are most useful for process performance
monitoring include:
18
The Andrew File System
The other Unix tool that is almost as widely used as ps is its continuously updating
counterpart called top. Top has been one of the most used tools for monitoring real time
performance of processes in Unix systems ever since its introduction 22 years ago (1984) in
Top produces a list of all the currently running processes listed in order of CPU usage. The
top CPU users appear at the top of the list, leading to the name of this command. The list is
continuously updated at five second intervals by default, and there are options to shorten or
Top also provides some general system information and performance measures including:
• memory statistics
• swap statistics
The process information Top provides is presented in a table with a large number of possible
fields including:
• PID - Process ID
19
• PRI - Process priority
All of these fields can be configured to show up in Top or not, and there are several other
fields that can be shown as well such as the page fault count and the physical memory
usage. In addition to displaying all of this information, Top also allows manipulation of
their priorities can be changed, and the display can be configured for filtering and desired
formatting.
20
INTERLUDE: MEMORY API
Xosview OS Monitor (xosview) is a graphical real time system performance monitoring tool
for Unix systems that runs under the X Window System. It is very simplistic compared to the
Windows tools described thus far because it does not monitor individual process, but
instead only monitors the system as a whole. The display for xosview shows histograms of a
number of useful system parameters including CPU usage split up by process type and the
load average of processes. The complete list of system parameters that can be monitored
includes load average, CPU usage, memory usage, swap space usage, page swapping, disk
usage, and interrupt rate. Each histogram plot is color coded to represent different regions.
For example, CPU usage is split into four regions: user, nice, system, and idle. Each of these
shows up as a different colored bar representing what percentage of the total belongs to
that region. Each measurement bar is called a meter, so the bar that represents CPU usage
is referred to as the CPU meter. Xosview is highly configurable, with options to turn on or off
every meter and change other detailed settings like separately controlling the sample rate
It is one of the easiest ways to quickly visualize the current system state in a graphical
format.
21
RTMT SUMMARY
Summarizes the real time performance monitoring tools described above including a
summary of the features, pros, and cons of each tool. The five features listed in the table
indicate whether each tool exhibits five common features of real time monitoring tools. The
graphical user interface (GUI) column indicates whether the tool has a GUI or command line
interface. The second column indicates whether the tool automatically updates its
measurements at some sample rate or if it must be updated manually. The third column
indicates whether the tool allows control over the processes it is monitoring, typically
including the ability to exit the processes and change their priorities. The fourth column
indicates whether the tool shows process performance measurements, and the fifth column
22
SUMMARY
Tool for single PDF creation of operating systems and processes is essential for debugging
processes and systems, effectively manage system resources, making system decisions, and
evaluating and examining systems. There are two primary types of performance monitoring
tools: those for real time performance monitoring and those for logging performance
measurements for future perusal. Real time performance monitoring tools for operating
systems and processes are typically concerned with presenting the performance
measurements to the user in a way that is well organized and easy to use. The main issue
with real time performance monitoring tools is in data resolution and presentation. The
tools try to select all data that might be useful without presenting so much data that it is
difficult to find what is needed. The most common tools used to perform real time
23
performance monitoring include Task Manager and Performance Monitor for Windows-
based systems and ps and top for Unix-based systems. Log-based performance monitoring
tools for operating systems and processes are most concerned with balancing the conflicting
goals of storing high resolution measurements with consuming the least amount of disk
space and making the logs the easiest to view. The tools try to address these goals by
allowing the user to filter the measurements to only record the information they are
concerned with and to specify the sampling rate to use based on the resolution needs and
disk space available. Also, the tools try to produce simple outputs that are highly compatible
with various post-processing tools so that the logs are easy to use.
categorising
• ordering
• manipulating
• summarising
24
CONCLUSION
Operating System Lab gave us a golden opportunity to showcase our skills we have learnt
We have also incorporated many soft skills like time management, punctuality, team
management, etc as company thinks it is an essential part of our life and it must be learned
25
REFERENCES
https://www.cse.wustl.edu/~jain/cse567-06/ftp/os_monitors/index.html
http://www.microsoft.com/technet/archive/ntwrkstn/reskit/default.mspx
http://www.informit.com/articles/article.asp?p=20478&rl=1
http://www.orbit2orbit.com/gmd/tps/other/monitors.html
https://www.manageengine.com/network-monitoring/process-monitoring.html
26