Sei sulla pagina 1di 17

1

MSN
OPERATING SYSTEM
COURSE CODE : CE- 458

CHAPTER – 1
INTRODUCTION
WEIGHTAGE: 20

A Computer system can be divided into four components:


- The Hardware - The Operating System
- The Application Programs - The Users

User User User User


1 2 3 n

compiler assembler text editor database


system
system and application programs

Operating system

Computer hardware

Components of Computer system

• The hardware of computer system includes the Central Processing unit, (CPU), the
memory, and the input/output (I/O) devices. They are the basic resources.
• The application programs includes compilers, database system, games, and business
programs. They define the way in which the hardware resources are to be used to solve
the computing problems of the users.
• There are many different users trying to solve different problems using different
application programs.
• The operating system controls and coordinates the use of the hardware among the
various application programs for the various users.

1.1. What is an Operating System?


- The operating system controls and coordinates the use of the hardware among
the various application programs for the various users.
- An operating system acts as government; it provides the means for the proper
use of resources. The operating system provides an environment within which
other programs can do useful work.
- Operating system acts as a resource allocator. A computer system has many
resources like CPU time, memory space, file storage space, I/O devices etc. The
operating system acts as manager of these resources and allocates them to
specific programs and users as necessary for tasks efficiently.

-----------------------Nobody is perfect in this world-----------------------


2

- An operating system is a control program. It controls the execution of user


programs to prevent errors and improper use of the computer.
- The Primary goal of operating system is convenience for the user. The operating
system makes the use of system easier.
- The secondary goal of operating system is efficient operation of the computer
system.

Leading PC Operating Systems

Windows XP
32-bit. Developed for IBM PS/2. Multitasking; Networking

Palm OS
Paired-down for handheld computers, wireless communication devices

Windows CE
32-bit operating system; Multitasking; Multiprocessing; Networking; Internet services

Windows 2000
32-bit operating system; GUI; Multitasking; Networking capabilities

Windows 98 95 & ME
For IBM PCs; supports 32-bit computing; Multitasking; Networking

OS/2
For older IBM and IBM compatible PCs. Program Memory limited to 640KB

DOS
For Macintosh computers; Multitasking; Networking; Powerful multimedia capabilities

Mac OS
Free, reliable alternative to Unix & Windows. Runs on many platforms; open source code

Linux
For powerful PCs, workstations, midrange computers. Multitasking; Multi-user Processing;
Networking. Portable to various computer hardware platforms

Multiprocessing
Allows computer to execute two or more instructions simultaneously in a single computer
system by using multiple CPUs

(1) Computer system’s ability to support more than one process (program) at the same
time. Multiprocessing operating systems enable several programs run concurrently. UNIX
is one of the most widely used multiprocessing systems, but there are many others, including
OS/2 for high-end PCs. Multiprocessing systems are much more complicated than single-
process systems because the operating system must allocate resources to competing
processes in a reasonable manner.
(2) The utilization of multiple CPUs in a single computer system. This is also called parallel
processing.

-----------------------Nobody is perfect in this world-----------------------


3

1.2. Types of Operating System


1.2.1. Batch Operating System
- Early computers were large machines having input devices like card readers and
tape drives and output devices like line printers, tape drives and card punches.
- The users of such system did not interact directly with the computer system, the
user prepare job consisting of – data, program and control information about the
job and use to submit it to computer operator.
- The operating system fairly simple it’s major task was to transfer control
automatically from one job to next. The operating system was always (resident)
in memory.

Operating
system

User Program
Area

Memory layout of batch system

- Operators used to batch up jobs with similar needs into a group to speed up the
processing. The operators use to batch up the jobs submitted to him.
- A batch operating system, reads a stream of separate jobs, each with its own
control cards that predefine what job does. When job is completed the result is
printed.
- The batch system has no interaction between the user and the job while the job
is executing.
- The job is prepared and submitted, and some time later the output appears. The
delay between job submission and job completion is called turnaround time.
- The CPU is often idle. This idleness occurs because the speed of the mechanical
I/O devices is slower than electronic devices.
- After the introduction of disk technology, the cards are read into disk from card
reader. The location of card images is recorded in a table kept by the operating
system. When job is executed, the operating system provides input. When job is
completed, the output is actually printed. This form of processing is called
spooling (Simultaneous Peripheral Operation on-line).
- Spooling uses the disk as a huge buffer for reading as far ahead as possible on
input devices and for storing output files until the output devices are able to
accept them.

1.2.2. Multiprogramming Operating System


Multiprogramming increases CPU utilization by organizing jobs so that the CPU
always has one job to execute.

-----------------------Nobody is perfect in this world-----------------------


4

- The operating system keeps several jobs in memory simultaneously. This set of
jobs is a subset of the jobs kept in the job pool- the number of jobs that can be
kept simultaneously in memory is usually much smaller than the number of jobs
that can be in the job pool.
- Operating system picks and begins to execute one of the jobs in memory and the
other job may have to wait for some task, such as I/O operation.

Operating system

Job 1

Job 2

Job 3

Job 4

Memory layout for a multiprogramming system

- In multiprogramming system, the operating system simply switches to, and


executes another job. When that job needs to wait, the CPU is switched to
another job. Eventually, the first job finishes waiting and gets CPU back. As
long as at least one job needs to execute, the CPU is never idle.
- In multiprogramming operating system all the jobs that enter the system are kept
in the pool. This pool consists of all processes residing on disk awaiting
allocation of main memory. If several jobs are ready to be brought into memory,
and if there is no enough room for all of them the system must choose among
them.
- When the operating system selects a job from the job pool, it loads that job into
main memory is called Job scheduling,
- If several jobs are ready to run at the same time, the system must choose among
them, this decision is called CPU scheduling.

1.2.3. Network Operating System

Unlike operating systems, such as DOS and Windows95, those are designed for single users
to control one computer, network operating systems (NOS) coordinate the activities of
multiple computers across a network. The network operating system acts as a director to
keep the network running smoothly.
The two major types of network operating systems are:
• Peer-to-Peer
• Client/Server
Peer-to-Peer
Peer-to-peer network operating systems allow users to share resources and files located on
their computers and to access shared resources found on other computers. However, they do
not have a file server or a centralized management source (See fig. 1). In a peer-to-peer
network, all computers are considered equal; they all have the same abilities to use the
resources available on the network. Peer-to-peer networks are designed primarily for small

-----------------------Nobody is perfect in this world-----------------------


5

to medium local area networks. AppleShare and Windows for Workgroups are examples of
programs that can function as peer-to-peer network operating systems.

Fig.1. Peer-to-peer network


Advantages of a peer-to-peer network:
• Less initial expense - No need for a dedicated server.
• Setup - An operating system (such as Windows 95) already in place may only need
to be reconfigured for peer-to-peer operations.
Disadvantages of a peer-to-peer network:
• Decentralized - No central repository for files and applications.
• Security - Does not provide the security available on a client/server network.
Client/Server
Client/server network operating systems allow the network to centralize functions and
applications in one or more dedicated file servers (See fig. 2). The file servers become the
heart of the system, providing access to resources and providing security. Individual
workstations (clients) have access to the resources available on the file servers. The network
operating system provides the mechanism to integrate all the components of the network and
allow multiple users to simultaneously share the same resources irrespective of physical
location. Novell Netware and Windows NT Server are examples of client/server network
operating systems.

Fig.2. Client/server network

-----------------------Nobody is perfect in this world-----------------------


6

Advantages of a client/server network:


• Centralized - Resources and data security are controlled through the server.
• Scalability - Any or all elements can be replaced individually as needs increase.
• Flexibility - New technology can be easily integrated into system.
• Interoperability - All components (client/network/server) work together.
• Accessibility - Server can be accessed remotely and across multiple platforms.
Disadvantages of a client/server network:
• Expense - Requires initial investment in dedicated server.
• Maintenance - Large networks will require a staff to ensure efficient operation.
• Dependence - When server goes down, operations will cease across the network.
Examples of network operating systems
The following list includes some of the more popular peer-to-peer and client/server network
operating systems.
• Microsoft Windows 95 / 98
• Microsoft Windows NT Server
• Microsoft Windows NT Work Station

1.2.4. Multitasking Operating System

- The ability to execute more than one task at the same time, a task being a
program is called multitasking.
- The terms multitasking and multiprocessing are often used interchangeably,
although multiprocessing implies that more than one CPU is involved.
- In multitasking, only one CPU is involved, but it switches from one program to
another so quickly that it gives the appearance of executing all of the programs
at the same time.
- 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. A program in execution is called
process.
- A time-sharing operating system must have memory management and
protection.
- Time-sharing system must also provide a file system.
- There are two basic types of multitasking: preemptive and cooperative.
- In preemptive multitasking, the operating system parcels out CPU time slices to
each program.
- In cooperative multitasking, each program can control the CPU for as long as it
needs it. If a program is not using the CPU, however, it can allow another
program to use it temporarily.
Examples
- OS/2, Windows 95, Windows NT, the Amiga operating system and UNIX use
preemptive multitasking, whereas Microsoft Windows 3.x and the MultiFinder
(for Macintosh computers) use cooperative multitasking.
-
1.2.5. Multithreading Operating System

-----------------------Nobody is perfect in this world-----------------------


7

- A thread also called a lightweight process (LWP) is a basic unit of CPU


utilization; it comprises a thread ID, a program counter, a register set, and a
stack.
- It shares with other threads belonging to the same process its code section, data
section and other operating system resources.
- Process is a heavyweight process has a single thread of control.
- If the process has multiple threads of control, it can do more than one task at a
time.
- Advantages of multithreaded programming
1. Responsiveness
- Multithreading an interactive application may allow a program to continue
running even if part of it is blocked or is performing lengthy operation,
thereby increasing responsiveness to the user.
2. Resources sharing
- Threads share the memory and resources of the process to which
they belong. The benefit of code sharing is that it allows an application to
have several different threads of activity all within the same address space.
3. Economy:
- Allocating memory and resources for process creation is costly.
Threads share resources of the process to which they belong, it is more
economical to create and context switch threads.
4. Utilization of multiprocessor architecture
- Multithreading can be greatly increased in a multiprocessor
architecture, where each thread may be running in parallel on a
multiprocessor.
- A single-threaded process can only run on one CPU, no matter how
many are available. Multithreading on a multi-CPU machine increases
concurrency.
- Q: How does it work?
A: The Operating System has a scheduler for each thread (process) that is
currently running. It divides up time slices for each of them, which are executed
in the order that the Operating System seems fit. It simply runs each one in
some arbitrary order for a set number of milliseconds and then switches between
them constantly
Q: Is it fast?
A: The more processes that your program has running, the more time that your
program can get from the system. But this isn't the best way to think about it.
The switches from one thread to another (or from one process to another)
happens so quickly that the entire system seems to be doing many different
things at once! In reality, (unless you have multiple processors), every
instruction is still executed sequentially. Operating System developers
implemented a system for you that are easy to use and can give the appearance
of
true parallelism

- User Threads
- They are supported above the kernel and are implemented by
a thread library at the user level.

-----------------------Nobody is perfect in this world-----------------------


8

- The library provides support for thread creation, scheduling,


and management with no support from the kernel. Kernel is unaware
of user-level threads; all thread creation and scheduling is done in the
user space so they are fast to create and manage.
- User-thread libraries include POSIX Pthreads, Mach C-
threads and Solaris UI-threads.

- Kernel Threads
- Kernel threads are supported by Operating system: the kernel
performs thread creation, scheduling and management in kernel
space. Kernel threads are slower to create and manage.
- Windows NT, Windows 2000, Solaris 2, BeOS, and Tru64
UNIX support kernel threads.

1.2.6. Distributed Operating System


- A distributed computer system is a collection of autonomous computer systems
capable of communication and cooperation via their hardware and software
interconnections.
- Historically, distributed operating system evolved from computer networks in
which a number of largely independent hosts are connected by communication
links and protocols.
- A distributed operating system governs the operation of a distributed computer
system and provides a virtual machine abstraction to its users.
- The key objective of distributed operating system is transparency.
- Components and resource distribution should be hidden from users and
application programs unless they explicitly demand.
- Distributed operating system usually provides the means for system-wide
sharing of resources, such as computational capacity, files, and I/O devices.
- Distributed operating system also may facilitate access to remote resources,
communication with remote processes and distribution of computations along
with services at each node like other operating system.
- The added services necessary for pooling of shared system resources include
global naming, distributed file system, and facilitate for distribution of
computations, such as internode process communication and remote procedure
calls.

1.2.7. Combination Operating System


- Different operating systems are optimized or at least largely geared towards
serving the needs of specific environments because the given environment may
not exactly match the operating system.
- For E.g. both interactive program development and lengthy simulations are
often encountered in university computing centers, so some operating systems
provide a combination of services.
- For example, a time-sharing system may support interactive users and also
incorporate a full-fledged batch monitor. This allows computationally intensive
noninteractive programs to be run concurrently with interactive programs. The
common practice is to assign low priority to batch jobs and thus execute batched

-----------------------Nobody is perfect in this world-----------------------


9

programs only when the processor would be idle. Batch may be used as filler to
improve processor utilization while accomplishing a useful service of its own.
- Some time-critical events, such as receipt and transmission of network data
packets may be handled in real-time fashion on system that otherwise provides
time-sharing services to their terminals.

1.3. Operating System Structure

As modern operating systems are large and complex careful engineering is


required. There are four different structures that have shown in this document in order to
get some idea of the spectrum of possibilities. These are by no mean s exhaustive, but
they give an idea of some designs that have been tried in practice.

Monolithic Systems:

This approach well known as “The Big Mess”. The structure is that there is no
structure. The operating system is written as a collection of procedures, each of which can
call any of the other ones whenever it needs to. When this technique is used, each procedure
in the system has a well-defined interface in terms of parameters and results, and each one is
free to call any other one, if the latter provides some useful computation that the former
needs.
For constructing the actual object program of the operating system when this approach is
used, one compiles all the individual procedures, or files containing the procedures and then
binds them all together into a single object file with the linker. In terms of information
hiding, there is essentially none- every procedure is visible to every other one i.e. opposed to
a structure containing modules or packages, in which much of the information is local to
module, and only officially designated entry points can be called from outside the module.
However, even in Monolithic systems, it is possible to have at least a little structure. The
services like system calls provide by the operating system are requested by putting the
parameters in well-defined places, such as in registers or on the stack, and then executing a
special trap instruction known as a kernel call or supervisor call.

1.3.1. Layer Structure Approach


- Operating system is broken up into a number of layers (levels); each built on top
of lower layers. The bottom layer (layer 0) is the hardware; the highest (layer
N0 is the user interface.
- An operating-system layer is an implementation of an abstract object that is
encapsulation of data, and of a set of routines that can be invoked by higher-
level layers.
- An advantage of the layer approach is modularity. The layers are selected such
that each uses functions (operations) and services of only lower-level layers.
This approach simplifies debugging and system verification.
- Each layer is implemented with only those operations provided by lower-level
layers. A layer does not need to know how these operations are implemented; it
needs to know only what these operations do. Each layer hides the existence of
certain data structures, operations, and hardware from higher-level layers.
- The major difficulty with the layered approach involves the careful definition of
the layers, because a layer can use only those layers below it.

-----------------------Nobody is perfect in this world-----------------------


10

- E.g. the device driver for the disk space used by virtual-memory algorithms
must be at a level lower than that of the memory-management routines, because
memory management require the ability to use the disk space.
- Layered implementations tend to be less efficient than other types.
- E.g. When a user programs executes an I/O operation, it executes a system call
that is trapped to the I/O layer, which calls the memory-management layer,
which in turn calls the CPU-scheduling layer, which is then passed to the
hardware. At each layer, the parameters may be modified; data may need to be
passed. Each layer adds overhead to the system call; the net result is a system
call that takes longer than does one on a nonlayered system.

- MS-DOS layered structure

- MS-DOS is originally designed and implemented to provide the most


functionality in the least space ( because of limited hardware on which it ran), so
it was not divided into modules carefully.

Application program

Resident system program

MS-DOS device drivers

ROM BIOS device drivers

MS-DOS layered structure


- UNIX layered structure
- The UNIX layered structure consist of two parts :
1) The Kernel 2) the System programs
- The kernel is again separated into a series of interfaces and device drivers,
which were added and expanded later.

(the users)
Shells and commands
Compilers and interpreters
System libraries
System-call interface to the kernel

Signals terminal File system CPU scheduling


Handling Swapping block I/O system Page replacement
Character I/O system Disk and tape drivers Demand paging
Terminal drivers Virtual memory

Kernel interface to the hardware

-----------------------Nobody is perfect in this world-----------------------


11

Terminal controllers Device controllers Memory controllers


Terminals Disks and tapes Physical memory

UNIX Layered Structure

- Everything below the system-call interface and above the physical hardware is
the kernel.
- The kernel provides the file system, CPU scheduling, memory management, and
other operating system functions through system calls.
- System calls define the API (Application program Interface) to UNIX; the set of
system programs commonly available defines the user interface. The
programmer and user interfaces define the context that the kernel must support.

1.3.2. Kernel Approach

- In the mid-1980, researchers at Carnegie Mellon University developed an


operating system called Mach that modularizes the kernel using the
microkernel approach.
- This method structures the operating system by removing all the nonessential
components from the kernel, and implementing them s system and user-level
programs.
- Microkernels are small in size and provides minimal process and memory
management, in addition to a communication facility.
- The main function of the microkernel is to provide a communication facility
between the client programs and the various services that are also running in
user space.
- Communication is provided by message passing. For e.g. if the client program
wishes to access a file, it must interact with the file server. The client program
and the service never interact directly. They communicate indirectly by
exchanging messages with microkernel.
- It is easy to extend the microkernel operating system. All new services are
added to user space and do not require the modification of the kernel.
- When the kernel does have to be modified, the changes tend to be fewer,
because the microkernel is a smaller kernel.
- The microkernel operating system is easier to port from one hardware design to
another.
- The microkernel also provides more security and reliability, since most services
are running at the user space.
- If service fails, the rest of the operating system remains untouched.

- Advantages of Microkernel approach


- It is easy to extend the microkernel operating system. All new
services are added to user space and do not require the modification of the
kernel.
- When the kernel does have to be modified, the changes tend to be
fewer, because the microkernel is a smaller kernel.
- The microkernel operating system is easier to port from one
hardware design to another.

-----------------------Nobody is perfect in this world-----------------------


12

- The microkernel also provides more security and reliability, since


most services are running at the user space.

- Example
- UTru64 UNIX provides the UNIX interface to the user, but it is
implemented with a microkernel.
- The Apple MacOS X server operating system is based on the
microkernel .The QNX is a real-time operating system that is also based on
microkernel design.

1.3.3. Virtual Machine

- The VM operating system for IBM systems is the best example of


the virtual-machine concept.
- CPU scheduling and virtual-memory techniques help the operating
system to create the illusion that a process has its own processor with its
own (virtual) memory.
- Normally the process has additional features, such as system calls
and file system, that are not provided by bare hardware. The virtual-
machine approach, does not provide any additional functionality, but rather
provides an interface that is identical to the underlying bare hardware. Each
process is provided with a (virtual) copy of the underlying hardware.
- Physical computer share resources to create the virtual machines.
CPU scheduling can share out the CPU to create the appearance that users
have their own processors.

Processes

Processes
Processes
Processes

kernel kernel kernel


kernel VM1 VM2 VM3
Virtual machine implementation
Hardware
hardware

System Models : a) Non virtual machine b) Virtual Machine

- The heart of the system, known as the virtual machine


monitor, runs on the bare hardware and does the multiprogramming,
providing not one, but several virtual machines to the next layer up.
- These virtual machines are not extended machines, with files
and other nice features. Instead, they are exact copies of the bare
hardware, including kernel/user mod, I/O, interrupts, and everything
else the real machine has.

-----------------------Nobody is perfect in this world-----------------------


13

- For reason of Each virtual machine is identical to the true hardware,


each one can run any operating system that will run directly on the
hardware.
- Different virtual machines can, and usually do, run different
operating systems.
- Major difficulty with Virtual-machine involves disk systems.

- Suppose the physical machine has three disk drives but want to
support seven virtual machines. It cannot allocate a disk drive to each
virtual machine. The virtual-machine software itself will need substantial
disk space to provide virtual memory. The solution is to provide virtual
disks, which is identical in all respects except sizes – termed minidisks. The
system implements each minidisk by allocating as many tracks on the
physical disk as the minidisk needs. The sum of sizes of all minidisks must
be smaller than that of the physical disk space.

- Advantages of Virtual-Machine
- The virtual machines provide a robust level of security, by
completely protecting system resources.
- The virtual machine allows system development to be done without
disrupting normal operation.
- Disadvantages of Virtual-Machine
- In virtual machines there is no direct sharing of resources.
- Examples
- The recent Linux operating system have virtual-machine that allow
Windows applications to run on Linux-based computers.
- Java run on a virtual machine, thereby allowing a Java program to
run on any computer system that has a Java virtual machine.

1.3.4. Client-Server Model


- A trend in modern operating systems is to take this idea of moving code up into
higher layers even further, and remove as much as possible from the operating
system, leaving a minimal kernel.
- The usual approach is to implement most of the operating system functions in
user processes.
- To request a service, such as reading a block of a file, a user process ( presently
known as the client process) sends the request to a server process, which then
does the work and sends back the answer.
- In client-Server Model, all the kernel does is handle the communication
between clients and servers.
- By splitting the operating system up into parts, each of which only handles one
fact of the system, such as file service, process service, Terminal service, or
memory service, each part becomes small and manageable.
- All the servers run as user-mode processes, and not in kernel mode, they do not
have direct access to the hardware. As a consequence, if a bug in the file server
is triggered, the file service may crash, but this will not usually bring the whole
machine down.
- Client-server model can be used in distributed system. If a client communicates
with a server by sending it messages, the client need not know whether the

-----------------------Nobody is perfect in this world-----------------------


14

message is handled locally in its own machine, or whether it was sent across a
network to a server on a remote machine. As far as the client is concerned, the
same thing happens in both cases: a request was sent and a reply came back
- Example
- Windows NT is designed to run various applications, including Win32 (native
Windows applications), OS/2, and POSIX.
- It provides a server that runs in user space for each application type.
- Client programs for each application type also run in user space.
- The kernel coordinates the message passing between the client applications and
the application servers.

- The Client-server structure of Windows NT

Win32 POSIX application


OS/2 application
applicatio Win32
n Server POSIX server
OS/2
server

kernel

1.4. Operating System Services

The operating system provides an environment for the execution of programs. The
operating system provides services to programs and to the users of those programs The
operating system services are provided for the convenience of the programmer..
1.4.1. Types of Services
• Program execution : The system must be able to load a program
into memory and run it. The program must be able to end its execution
either normally or abnormally (indicating error).
• I/O operations: A running program may require I/O. This I/O
involve a file or an I/O device. For specific devices, special functions may
be desired. For efficiency and protection, users usually cannot control I/O
devices directly. The operating system provides a means to do I/O.
• File-system manipulation: The programs need to read and write
files and programs must also create and delete files. The operating system
maintains the file system.
• Communications: In many conditions the process needs to
exchange information with another process. Such communication can
occur in two ways:

-----------------------Nobody is perfect in this world-----------------------


15

- The first takes place between processes that are executing on the
same computer.
- The second takes place between processes that are executing on
different computer systems that are tied together by a network.
- Communications may be implemented via shared memory, or via
message passing, in which the information is moved between processes by
operating system.
• Error detection: The operating system constantly needs to be
aware of possible errors.
- Errors may occur in the CPU and memory hardware, in I/O devices
and in user programs.
- For each type of error, the operating system should take the proper
action to ensure correct and consistent computing.

Operating a system function that exists not for helping the user, but rather
ensuring the efficient operation of the system.

• Resource allocation: Operating system manages many resources


like CPU cycles, main memory, and file storage. Resources are allocated
to multiple users.
- Some resources have special allocation code, whereas others may
have general request and release code.
- For eg. in determining how best to use the CPU, the operating
system have CPU- scheduling routines that takes account the speed of the
CPU, the jobs that must be executed, the number of registers.
• Accounting: The tracking of which user use how many and which
kind of computer resources can be used for billing or simply accumulating
usage statistics.
- Usage statistics may be a valuable tool for researchers who wish to
reconfigure the system to improve computing services.
• Protection: Protection involves ensuring that all access to system
resources is controlled.

1.4.2. The User View and Operating System View


Operating system can be explored from two viewpoints: the user view and
system view.
• User View
- The user view of the computer varies by the interface being used.
- Single user system
- PC consisting of monitor, keyboard, mouse, and system unit are
designed to be used by single person.
- The operating system is designed mostly for ease of use, with some
attention paid on performance, and none paid to resource utilization.
- Performance is important to the user, but it does not matter if the
most of the system is sitting idle, waiting for the slow I/O speed of the user.
- User connected to Mainframe or Minicomputer
- Many user are connected to mainframe or minicomputer through
terminal to access to share the resources and exchange information

-----------------------Nobody is perfect in this world-----------------------


16

- The operating system is designed to maximize resource utilization


– to assure that all available user takes more than fair share.
- User on Workstations
- User at workstation, connected to networks of other workstations
and servers have dedicated resources at their disposal, but they also share
the resource such as networking and servers – file, compute and print
servers.
- The operating system is designed to compromise between
individual usability and resource utilization.
- Handheld computers
- These devices are mostly standalone, used singly by individual
users.
- Some are connected to networks, either directly by wire or through
wireless modems.
- Due to power and interface limitation they perform relatively few
remote operations.
- The operating systems are designed mostly for individual usability,
but performance per amount of battery life is important.
- Embedded computers
- Embedded computers in home devices and automobiles may have a
numeric keypad, and may turn indicator lights on or off to show status, but
mostly they and their operating system are designed to run without user
intervention.

• System View
- From computer’s view the operating system is the program that is most intimate
with hardware.
- The operating system is a resource allocator. The operating system acts as
manager or resources – hardware and software- required solve a problem
includes CPU time, memory space, file-storage, I/O devices etc.
- A slightly different view of operating system is as control program. A control
program manages the execution of user programs to prevent errors and improper
use of the computer. It is especially concerned with the operation and control of
I/O devices.
- The fundamental goal of operating system is to execute user programs and to
make solving user problems easier.

 Real Time Operating System


- A real–time operating system is used where there are rigid time requirements on
the operation of a processor or the flow of data, and thus is often used as a
control device in a dedicated application.
- Systems that control scientific experiments, medical imaging systems, industrial
control systems, and some displays, automobile-engine fuel-injection systems
are real-time systems.
- A real-time operating system has well-defined, fixed time constraints.
Processing must be done within the defined constraints, or the system will fail.
- A real-time operating system is considered to function correctly only if it returns
the correct result within any time constraints.

-----------------------Nobody is perfect in this world-----------------------


17

- There are two flavors of real-time systems :


1. Hard real-time system : A hard real-time system guarantees that critical
tasks complete on time. This goal requires that all delays in the system be
bounded, from the retrieval of stored data to the time that takes the
operating system to finish any request made of it.
- Secondary storage of any sort is usually limited or missing, with
data being stored in short-term memory or in read-only memory (ROM).
- Most advanced operating system features such as virtual memory is
not found in real-time system.

2. Soft real-time system: A less restrictive type of real-time operating system


is a soft real-time system, where a critical real-time task gets priority over
other tasks, and retains that priority until it completes.
- Soft real-time system have more limited utility that hard real-time
system.
- They are risky if used for industrial control and robotics because of
their lack of deadline support.
- They are useful in multimedia, virtual reality, and advanced
scientific projects such as undersea exploration and planetary rovers.

-----------------------Nobody is perfect in this world-----------------------

Potrebbero piacerti anche