0% found this document useful (0 votes)
18 views16 pages

Process Mgt-Chapter 1 (One)

The document provides an overview of operating systems, including their history, components, and types of software. It explains the role of processes in modern computing and categorizes software into system software and application software. Additionally, it discusses the architecture of kernels and the interface between users and the operating system through shells.

Uploaded by

Teddy yemu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views16 pages

Process Mgt-Chapter 1 (One)

The document provides an overview of operating systems, including their history, components, and types of software. It explains the role of processes in modern computing and categorizes software into system software and application software. Additionally, it discusses the architecture of kernels and the interface between users and the operating system through shells.

Uploaded by

Teddy yemu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Microlink Information Technology and Business

College
Contents
Chapter One ............................................................................................................................................ 4
Basic Concepts of Operating systems and process Management ............................................................... 4
Introduction............................................................................................................................................. 5
1. History of Operating systems ...................................................................................................... 6
1.1. Today .................................................................................................................................. 6
1. Process ....................................................................................................................................... 7
2. CATEGORIES OF SOFTWARE .................................................................................................... 7
2.1. System Software: ............................................................................................................... 7
2.2. Application Software: ........................................................................................................ 7
3. Basic components of computer ..................................................................................................... 8
a. Hardware .................................................................................................................................... 8
b. Application program .................................................................................................................. 8
c. operating system........................................................................................................................ 8
d. user ............................................................................................................................................. 8
4. OPERATING SYSTEM VIEWS............................................................................................... 8
I. Users view............................................................................................................................... 8
II. System View ........................................................................................................................... 8
5. Related concepts of OS .............................................................................................................. 8
6. Multiprogramming, Multitasking, timesharing ...................................................................... 11
7. Operating system as resource manager .................................................................................. 12
8. Operating system as virtual machine ...................................................................................... 12
9. services & functions of Operating system ............................................................................... 13
10. Memory Management.......................................................................................................... 13
11. Device Management ............................................................................................................ 14
12. Process management ........................................................................................................... 14
13. File Management.................................................................................................................. 14
Chapter One
Basic Concepts of Operating systems and process Management
Chapter Objectives:

• To provide a grand tour of the major components of operating systems


• To give an overview of the many types of computing environments
• To explore several open-source operating systems
Introduction
Modern general-purpose computers, including personal computers and mainframes, have an
operating system to run other programs, such as application software. Examples of operating
systems for personal computers include Microsoft Windows, Mac OS (and Darwin), Unix, and
Linux. The lowest level of any operating system is its kernel. This is the first layer of software
loaded into memory when a system boots or starts up. The kernel provides access to various
common core services to all other system and application programs. These services include, but
are not limited to: disk access, memory management, task scheduling, and access to other hardware
devices.
As well as the kernel, an operating system is often distributed with tools for programs to display
and manage a graphical user interface (although Windows and the Macintosh have these tools built
into the operating system), as well as utility programs for tasks such as managing files and
configuring the operating system. They are also often distributed with application software that
does not relate directly to the operating system's core function, but which the operating system
distributor finds advantageous to supply with the operating system.
A process can play vital role in managing and making a computer to be the way it is now adays.
A process can be thought of as a program in execution. A process will need certain resources such
as CPU time, memory, files, and I/O devices —to accomplish its task. These resources are
allocated to the process either when it is created or while it is executing. A process is the unit of
work in most systems. Systems consist of a collection of processes: Operating-system processes
execute system code, and user processes execute user code. All these processes may execute
concurrently(parallel).
Although traditionally a process contained only a single thread of control as it ran, most modern
operating systems now support processes that have multiple threads. Early computer systems
allowed only one program to be executed at a time. This program had complete control of the
system and had access to all the system’s resources. In contrast, current-day computer systems
allow multiple programs to be loaded into memory and executed concurrently. This evolution
required firmer control and more compartmentalization of the various programs, and these needs
resulted in the notion of a process, which is a program in execution. A process is the unit of work
in a modern time-sharing system.
1.1. History of Operating systems
An operating system (OS) is a software program that manages the hardware and software resources
of a computer. The OS performs basic tasks, such as controlling and allocating memory,
prioritizing the processing of instructions, controlling input and output devices, facilitating
networking, and managing files.
The first computers did not have operating systems. However, software tools for managing the
system and simplifying the use of hardware appeared very quickly afterwards, and gradually
expanded in scope. By the early 1960s, commercial computer vendors were supplying quite
extensive tools for streamlining the development, scheduling, and execution of jobs on batch
processing systems. Examples were produced by UNIVAC and Control Data Corporation,
amongst others.
Through the 1960s, several major concepts were developed, driving the development of operating
systems. The development of the IBM System/360 produced a family of mainframe computers
available in widely differing capacities and price points, for which a single operating system
OS/360 was planned (rather than developing ad-hoc programs for every individual model). This
concept of a single OS spanning an entire product line was crucial for the success of System/360
and, in fact, IBM's current mainframe operating systems are distant descendants of this original
system; applications written for the OS/360 can still be run on modern machines. OS/360 also
contained another important advance: the development of the hard disk permanent storage device
(which IBM called DASD). Another key development was the concept of time-sharing: the idea
of sharing the resources of expensive computers amongst multiple computer users interacting in
real time with the system. Time sharing allowed all of the users to have the illusion of having
exclusive access to the machine; the Multics timesharing system was the most famous of a number
of new operating systems developed to take advantage of the concept.
Multics, particularly, was an inspiration to a number of operating systems developed in the 1970s,
notably Unix. Another commercially-popular minicomputer operating system was VMS. The first
microcomputers did not have the capacity or need for the elaborate operating systems that had
been developed for mainframes and minis; minimalistic operating systems were developed. One
notable early operating system was CP/M, which was supported on many early microcomputers
and was largely cloned in creating MS-DOS, which became wildly popular as the operating system
chosen for the IBM PC (IBM's version of it was called IBM-DOS or PC-DOS), its successors
making Microsoft one of the world's most profitable companies. The major alternative throughout
the 1980s in the microcomputer market was Mac OS, tied intimately to the Apple Macintosh
computer.
1.2. Today
Command line interface (or CLI) operating systems can operate using only the keyboard for input.
Modern OS's use a mouse for input with a graphical user interface (GUI) sometimes implemented
as a shell. The appropriate OS may depend on the hardware architecture, specifically the CPU,
with only Linux and BSD running on almost any CPU. Windows NT has been ported to other
CPUs, most notably the Alpha, but not many. Since the early 1990s the choice for personal
computers has been largely limited to the Microsoft Windows family and the Unix-like family, of
which Linux and Mac OS X are becoming the major choices. Mainframe computers and embedded
systems use a variety of different operating systems, many with no direct connection to Windows
or Unix, but typically more similar to Unix than Windows.

1. Process
A process is a program in execution. A process is more than the program code, which is
sometimes known as the text section. It also includes the current activity, as represented by the
value of the program counter and the contents of the processor’s registers. A process generally
also includes the process stack, which contains temporary data (such as function parameters,
return addresses, and local variables), and a data section, which contains global variables. A
process may also include a heap(mass), which is memory that is dynamically allocated during
process run time. Process management is an integral part of any modern-day Operating
system (OS). The OS must allocate resources to processes, enable processes to share and
exchange information, protect the resources of each process from other processes and enable
synchronization among processes. To meet these requirements, the OS must maintain a data
structure for each process, which describes the state and resource ownership of that process,
and which enables the OS to exert control over each process.
Since the operating system (OS) is in charge of a computer, all requests to use its resources
and devices need to go through the operating system. An operating system therefore provides
legal entry points into its code for performing basic operation like writing to devices.

2. Categories of Software
2.1. System Software:
System software is software on a computer that is designed to control and work with
computer hardware. The two main types of system software are the operating system and the
software installed with the operating system, often called utility software. In some cases,
the operating system and utility software depend on each other to function properly. Some
system software is used directly by users and other system software works in the
background. System software can allow users to interact directly with hardware
functionality, like the Device Manager and many of the utilities found in the Control Panel.
System software is
➢ is a program that manages and supports the computer resources and operations of
computer system.
➢ responsible for controlling hardware components, and allowing users to use
application software.
➢ one great example is the OS itself.
2.2. Application Software:
Application software has really proliferated since cross-platform software has become
more popular. Some of the programs used by individuals and businesses across the globe
need to be taken everywhere to be used at any time and the evolution of traditional software
into apps has enabled users to work effectively wherever they're needed. Application
software is
✓ a subclass of computer software
✓ dependent upon users need
✓ not as critical as system software's

3. Basic components of computer


a. Hardware
✓can be the Central Processing Unit (CPU), the memory and input output devices
that provides the basic computing resources for the system.
b. Application program
✓Applications that are installed for specific purposes or personal use.
c. operating system
✓controls and coordinates the use of the hardware among various application
programs for the various users.
d. user
✓is an agent or end user, who uses a computer.
4. OPERATING SYSTEM VIEWS
Operating system have two types of views. Those are the users view and system view.
I. Users view
✓The users view of the computer varies according to the interface being used

✓Such a system is designed for one user to monopolize its resources.

✓the operating system is designed mostly for ease of use, with attention paid to
performance and not paid to resource utilization.

✓In other cases, a user sits at a terminal connected to a mainframe


II. System View
✓From the computer’s point of view, the operating system is the program involved with
the hardware.

✓we can view an operating system as a resource allocator

✓A computer system has many resources that may be required to solve a problem. Such
as, CPU time, memory space, file storage space, I/O devices. And The operating system
acts as the manager of these resources.

5. Related concepts of OS
Kernel: The Kernel is also said to be the heart of the Operating System. It is responsible
for managing all the processes, memory, files, etc. The Kernel functions at the lowest level
of the Operating System. It acts as an interface (bridge) between the user-level application
(software) and the hardware. Therefore, the communication between the software and the
hardware is done via the Kernel. The kernel usually addresses everything that is low
level. This includes handling memory usage, disk and other peripherals access, process
CPU scheduling, network traffic and so much more. Kernel is
✓ the core of operating system
✓ a collection of routines mostly written in
C
✓ Kernel is loaded into memory when
system is booted, and remains in
memory.
✓ Kernel is the basic component of an
operating system.
The kernel is responsible for operating systems basic function like
➢ process management
➢ device management
➢ system call
➢ disk management
• and there are different types of kernel. types like
• Monolithic
• Microkernel
• Exokernel
• Hybrid kernel

a. Monolithic Kernels: it is the earlies and most common operating system architecture.
Every component of the operating is contained in the kernel and can directly communicate
with any other components by using the system calls.
A monolithic kernel defines a high-level virtual interface over the hardware, with a set of
primitives or system calls to implement operating systems services such as process
management, concurrency, and memory management in several modules even if every
module serving operations are separate from the whole, the code integration is very tight
and difficult, since all the modules run in the same address space, a bug in one module can
bring down the whole system.
b. Microkernel: this type of architecture provides only a small number of services to keep
the kernel small and scalable. These services typically include low level memory
management, inter process communication and basic process synchronization operations.
Other operating systems, such as process management networking, file system interaction
and device management-execute outside the kernel.
A microkernel is a minimal computer operating system kernel providing only basic
operating system services (system calls), while other services (commonly provided by
kernels) are provided by user-space programs called servers. Microkernel exhibits a high
degree of modularity, making them extensible, portable and scalable. Further, because the
microkernel doesn’t rely on each component to execute
c. Exokernel: the idea behind exokernel is no force as few abstractions as possible on
developers, enabling them to make as many decisions as possible about hardware
abstractions. Exokernel are tiny, since functionality is limited to ensuring protection. The
kernel only ensures that the requested resource is free, and the application is allowed to
access it.
This low-level hardware access allows the programmer to implement custom abstractions,
and omit unnecessary ones, most commonly to improve a program’s performance. It also
allows programmers to choose what level of abstraction they weren’t, high or low.
Exokernel could incorporate multiple library operating system and are intended to
simultaneously run multiple operating systems of different kinds like Linux and Microsoft
windows together using appropriate API (Application Programming Interface).
d. Hybrid Kernel: Hybrid kernel is part of the operating system such as Microsoft windows
NT, 2000 and XP. These types of kernels are extension of microkernels with some
properties of monolithic kernel. Unlike monolithic Kernel, these types of kernels are unable
to load modules as run times on their own.
Shell:

✓shell is the interface between user and the kernel

✓provides access to the services of a kernel


Command-line shells provide a command-line interface (CLI) to the operating
system,
and graphical shells provide a graphical user interface (GUI).
✓ the primary purpose of both categories of the shell is to invoke or “launch” another
program.
✓ ✓Shell falls into two categories
a. command-line interface: Some operating systems include the command interpreter in
the kernel. Others, such as Windows and UNIX, treat the command interpreter as a
special program that is running when a job is initiated or when a user first logs on (on
interactive systems). On systems with multiple command interpreters to choose from,
the interpreters are known as shells. For example, on UNIX and Linux systems, a user
may choose among several different shells, including the Bourne shell, C shell, Bourne-
Again shell, Korn shell, and others. Third-party shells and free user-written shells are
also available. Most shells provide similar functionality, and a user’s choice of which
shell to use is generally based on personal preference.
In one approach, the command interpreter itself contains the code to
execute the command. For example, a command to delete a file may cause
the command interpreter to jump to a section of its code that sets up the
parameters and makes the appropriate system call. In this case, the number of
commands that can be given determines the size of the command interpreter,
since each command requires its own implementing code
b. graphical user interface
A second strategy for interfacing with the operating system is through a user-friendly
graphical user interface, or GUI. Here, rather than entering commands directly via a
command-line interface, users employ a mouse-based window-and-menu system
characterized by a desktop metaphor. The user moves the mouse to position its pointer
on images, or icons, on the screen (the desktop) that represent programs, files,
directories, and system functions. Depending on the mouse pointer’s location, clicking
a button on the mouse can invoke a program, select a file or directory known as a folder
or pull down a menu that contains commands.

6. Multiprogramming, Multitasking, timesharing


The objective of multiprogramming is to have some process running at all times, to
maximize CPU utilization. The objective of time sharing is to switch the CPU among
processes so frequently that users can interact with each program while it is running.
When two or more programs are residing in memory at the same time, then sharing
the processor is referred to as multiprogramming.
✓Multiprogramming assumes a single shared processor.
✓Multiprogramming increases CPU utilization by organizing jobs so that the CPU
always has one to execute.
Multi programmed systems provide an environment in which the various system resources
(for example, CPU, memory, and peripheral devices) are utilized effectively, but they do
not provide for user interaction with the computer system. Time sharing (or multitasking)
is a logical extension of multiprogramming. In time-sharing systems, the CPU executes
multiple jobs by switching among them, but the switches occur so frequently that the users
can interact with each program while it is running.
Time sharing requires an interactive computer system, which provides direct
communication between the user and the system. The user gives instructions to the
operating system or to a program directly, using an input device such as a keyboard, mouse,
touch pad, or touch screen, and waits for immediate results on an output device.
Accordingly, the response time should be short, typically less than one second. A time-
shared operating system allows many users to share the computer simultaneously. Since
each action or command in a time-shared system tends to be short, only a little CPU time
is needed for each user. As the system switches rapidly from one user to the next, each user
is given the impression that the entire computer system is dedicated to his use, even though
it is being shared among many users. A time-shared operating system uses CPU scheduling
and multiprogramming to provide each user with a small portion of a time-shared
computer. Each user has at least one separate program in memory. programs loaded into
memory and executing are called a process. When a process executes, it typically executes
for only a short time before it either finishes or needs to perform I/O. I/O may be interactive;
that is, output goes to a display for the user, and input comes from a user keyboard, mouse,
or other device. Since interactive I/O typically runs at “people speeds,” it may take a long
time to complete. Input, for example, may be bounded by the user’s typing speed; seven
characters per second is fast for people but incredibly slow for computers. Rather than let
the CPU sit idle as this interactive input takes place, the operating system will rapidly
switch the CPU to the program of some other user.
Multitasking refers to term where multiple jobs are executed by the CPU simultaneously
by switching between them.
✓ Switches occur so frequently that the users may interact with each program
while it is running. the following activities related to multitasking.
o The user gives instructions to the operating system or to a program
directly, and receives an immediate response.
o Multitasking Operating Systems are also known as Time-sharing
systems.
o A time-shared operating system uses concept of CPU scheduling
and multiprogramming to provide each user with a small portion of
a time-shared CPU.

7. Operating system as resource manager


➢ operating system controls various resources of system like memory, input/output devices,
processor, secondary storage and etc.
➢ Thus, resources are required by a program during its execution, if multiple programs are in
execution then resource requirement can cause conflicts, resulting into decreasing system
utilization. In order to avoid such conflicts a control program is needed which can monitor
and manage all the resource allocation, and this responsibility is given to OS.
❖ Resource management includes multiplexing resources in two ways.
A. Time multiplexing: when a resource is time multiplexed, different programs or users
take turns using it. First one of them gets to use the resource, then another and so on.
B. Space multiplexing: Instead of the customers taking turns, each one gets part of the
resource. E.g. Main memory is divided up among several running programs, so each one
can be resident at the same time, in order to take turns using the CPU.

8. Operating system as virtual machine


Virtual means “not real”, different classes of users need different kind of user services.
Hence, running a single operating system on a computer system can disappoint many users.
This problem is solved using virtual machine operating system (VMOS) to control the
computer system. The VMOS create several virtual machines. Each virtual machine is
allocated to one user, who can use any operating system of his own choice on the virtual
machine and run this program under this operating system. This way users of the computer
system can use different operating system at the same time.
Virtual Machine
Advantage of Virtual Machine Disadvantage of Virtual Machine
✓ Multiple operating system ✓ The virtual machine is less efficient
environments can co-exist on the than a real machine when it accesses
same computer, in strong isolation the hardware indirectly.
from each other.
✓ The virtual machine can provide ✓ When multiple VM are concurrently
an instruction set architecture running on the same physical host,
(ISA) that is somewhat different each VM may exhibit a varying and
form that of the real machine. unstable performance, which highly
depends on the workload imposed
on the system by other VMs.
Figure 1 Virtual Machine

9. services & functions of Operating system


➢ Operating system provides a number of services to application program and to the
user.
➢ Applications access these services through application program interface (API).
Some of the functions of OS are
✓ Memory management
✓ Device management
✓ Process management
✓ File management
✓ Resource allocation/deallocation
✓ Program execution
✓ I/O operation
✓ File system manipulation

10. Memory Management


➢ Memory management refers to management of Primary Memory or Main Memory.
➢ Main memory is a large array of words or bytes where each word or byte has its own
address.
➢ Main memory provides a fast storage that can be access directly by the CPU.
➢ So, for a program to be executed, it must load in to the main memory.
➢ Operating System does the following activities for memory management.
• Keeps tracks of primary memory
• In multiprogramming, OS decides which process will get memory, when and
how much.
• Allocates the memory when the process requests it to do so
• De-allocates the memory when the process no longer needs it or has been
terminated.
11. Device Management
➢ OS manages device communication via their respective drivers.
➢ Operating System does the following activities for device management.
✓ Keeps tracks of all devices. Program responsible for this task is known as the
I/O controller.
✓ Decides which process gets the device when and for how much time
✓ Allocates the device in the efficient way
✓ De-allocates devices

12. Process management


➢ In multiprogramming environment, OS decides which process gets the processor, when
and how much time. And This function is called process scheduling.
➢ Operating System does the following activities for processor management
a. Keeps tracks of processor and status of process. Program responsible for this task is
known as traffic controller.
b. Allocates the processor (CPU) to a process.
c. De-allocates processor when processor is no longer required.

13. File Management


File management is one of the most visible components of an operating system. Computers
can store information on several different types of physical media. Magnetic disk, optical
disk, and magnetic tape are the most common. Each of these media has its own
characteristics and physical organization. Each medium is controlled by a device, such as
a disk drive or tape drive, that also has its own unique characteristics. These properties
include access speed, capacity, data-transfer rate, and access method (sequential or
random).
➢ A file system is normally organized into directories for easy navigation and usage
➢ directories may contain files and other directions.
➢ Operating System does the following activities for file management
✓ Keeps track of information, location, uses, status, etc.
✓ Decides who gets the resources.
✓ Allocates the resources.
✓ De-allocates the resources
Review questions
Say true or false for the following Questions, and justify your reason
1. A machine can directly understand a code written in java.
2. an operating system view which is focused on the performance rather than its resource
utilization is so called “users view”.
3. CLI is more preferable for novice users of computer than other option of presenting the
shell.
4. Missing an occasional deadline in soft real time operating systems can cause life critical
outcomes.
5. Space multiplexing is when different programs or users take turns to use the CPU.
6. Keeping the CPU as busy as possible is the main target of scheduling.
Briefly explain the following question
7. Why do distributed systems depend on network for their operations?
8. Why is CPU often idle when it comes to batch operating system?
9. What is the sole purpose of VMOS?
10. Briefly explain the use of firmware in computing.
11. What is the difference between hard real time OS and soft real time OS? And list
examples of their applications
12. Explain the use of OS in your own words.
13. Why do we need an intermediator in order to use a computer?
14. What does context switching meant in multitasking?

You might also like