SlideShare a Scribd company logo
1 of 137
Download to read offline
Mr. C.P.Divate
Overview Of Operating System
Operating system Definition
An Operating System ( OS ) i s system software that
manages computer hardware, software resources, and provides
common services for computer programs.
An Operating System is a program that acts as an interface
between the software and the computer hardware.
An Operating System is system software which may be viewed
as an organized collection of software consisting of procedures
for operating a computer and providing an environment for
execution of programs.
Basic Elements Of Operating Systems
• Processor
• Main memory
• I/O modules
• System bus
Objectives Of Operating Systems
• Convenience: It makes a computer more suitable to
use.
• Efficiency: It provides the computer system resources
with efficiency and in easy to use format.
• Ability to develop: It should be built in such a way that it
permits the efficient development, testing, and installation
of new system functions without interfering with service.
• Protection: Protect Data from unauthorized access.
• Communication: Make communication in Network.
Services Of Operating Systems
An Operating System supplies different kinds of services to both the
users and programs.
Here is a list of common services offered by all operating
systems:
• User Interface
• Program Execution
• File system manipulation
• Input / Output Operations
• Inter process Communication
• Resource Allocation
• Error Detection
• Accounting
• Security and protection
1. User Interface in Operating System
Usually Operating system comes in three forms or types. Depending on
the interface their types have been further subdivided. These are:
• Command line interface (C L I )
• Batch based interface ( B I )
• Graphical User Interface ( G U I )
The command line interface (CLI) usually deals with using text
commands and a technique for entering those commands.
The Batch interface (BI): commands and directives are used to
manage those commands that are entered into files and those files
get executed.
Graphical User Interface (GUI): which is a window system with
a pointing device (like mouse or trackball) to point to the I/O, choose
from menus driven interface and to make choices viewing from a
number of lists and a
2. Program Execution Operating System
The operating system must have the capability to load a program
into memory and execute that program. Furthermore, the program must be
able to end its execution, either normally or abnormally / forcefully.
3. File system manipulation in Operating System
Programs need has to be read and then write them as files and directories.
File handling portion of operating system also allows users to create
and delete files by specific name along with extension, search for a
given file and / or list file information. Some programs comprise
of permissions management for allowing or denying access to
files or directories based on file ownership.
4. I/O operations in Operating System
A program which is currently executing may require I/O, which may
involve file or other I/O device. For efficiency and protection,
users cannot directly govern the I/O devices. So, the OS provide a
means to do I/O Input / Output operation which means read or write
operation with any file.
5. Inter process Communication in operating System
Process needs to swap over information with other process. Processes
executing on same computer system or on different computer systems can
communicate using operating system support. Communication between
two processes can be done using shared memory or via message passing.
6. Resource Allocation of Operating System
When multiple jobs running concurrently, resources must need to be
allocated to each of them. Resources can be CPU cycles, main memory
storage, file storage and I/O devices. CPU scheduling routines are
used here to establish how best the CPU can be used.
7. Error Detection with Operating System
Errors may occur within CPU, memory hardware, I/O devices
and in the user program. For each type of error, the OS takes
adequate action for ensuring correct and consistent computing.
8. Accounting in Operating System
This service of the operating system keeps track of which users are
using how much and what kinds of computer resources have
been used for accounting or simply to accumulate usage statistics.
9. Protection and Security Operating System
Protection includes in ensuring all access to system
resources in a controlled manner.
For making a system secure, the user needs to authenticate him or her
to the system before using (usually via login ID and password).
Type Of Operating Systems
1. Single Processor Operating Systems
2. Batch Processing Operating Systems
3. Multiprocessing Operating System
4. Multiprogramming / Multitasking Operating System
5. Time Sharing Operating System
6. Distributed Operating System
7. Mobile Operating systems
1. Single Processor Operating Systems
• Most systems at least contain a single processor.
• The variation of single-processor systems may be unexpected, but since
these systems can range from PDA's to mainframe computers.
• On a single-processor system, there is one main CPU able to execute a
general-purpose instruction layout, including different instructions from
users and then process them.
• Almost every system has special-purpose processors within them.
• They may come in the appearance of device-specific processors, such as
disks, keyboards, graphics controllers, etc.; or on mainframes, they may
come in the form of more general-purpose processors.
2. Batch Processing Operating Systems
• Definition – Batch processing system works as an operating
System.
• Batch processing system means to grab all types of programs and data in
the batch form then proceed to process.
• Main motive of using batch processing system is to decrease the set up
time while submitting the similar jobs to CPU.
• Batch processing techniques was implemented in the hard disk and card
readers as well. In this, all jobs are saved on the hard disk for making the
pool of jobs for their execution as a batch form.
2. Batch Processing Operating Systems
benefits and characteristics such as:
• In batch system all jobs are performed in repeating form without user’s permission.
• Can be feed input data in the batch processing system without using extra hardware
components.
• Small scale business can use batch processing system for executing small tasks to
their benefits.
• For giving rest to system’s processors, your batch system is capable to work in
off-line mode.
• Batch processing system consumes less time for executing the all jobs.
• Batch system is shareable nature, so it can be shared for couples of users, if
needed.
• When batch processing system executes their jobs then its idle time is very low.
• Batch processing system has more capable to handle huge repeated task smoothly
2. Batch Processing Operating Systems
limitations of batch processing operating system
• Provide well education to computer handler for operating the batch
processing system.
• It takes more time for debugging the batch processing system.
• Some time it may be more costly.
• It has more turnaround time.
• It has Non linear behavior.
• Model inaccuracies.
• Batch processing system’s online sensors is often not available.
• Include constrained operation.
• Unmeasured disturbances.
• Irreversible behavior.
• Time-varying process characteristics.
• If any one job halts, then increase workload for predicting time.
2. Batch Processing Operating Systems
Examples of Batch Processing Operating System
• Payroll System
• Bank Invoice System
• Transactions Process
• Daily Report
• Research Segment
• Billing System
3. Multiprocessing Operating System
• A multiprocessing operating system (OS) is one in which
two or more central processing units (CPUs) control the
functions of the computer.
• Each CPU contains a copy of the OS, and these copies
communicate with one another to coordinate operations.
• The use of multiple processors allows the computer to
perform calculations faster, since tasks can be divided up
between processors.
3. Multiprocessing Architecture
Single Processor / Multiprocessing Operating System
• Multiprocessing operating systems performs
quick tasks, as each CPU is available to access
the shared memory to complete the task.
Advantages of Multiprocessor Operating System
• More reliable Systems: Ability to continue working despite hardware
failure.
• Enhanced Throughput: number of processes getting executed
per unit of time increase.
• More Economic Systems: Multiprocessor systems are cheaper
than single processor systems in the long run because they share
the data storage, peripheral devices, power supplies etc.
Disadvantages of Multiprocessor Operating System
• Increased Expense: Even though multiprocessor systems are
cheaper in the long run than using multiple computer systems,
still they are quite expensive.
• Complicated Operating System Required: There are multiple
processors in a multiprocessor system that share peripherals,
memory etc. So, it is much more complicated to schedule
processes and impart resources to processes. than in single
processor systems. Hence, a more complex and complicated
operating system is required in multiprocessor systems.
• Large Main Memory Required: All the processors in the
multiprocessor system share the memory.
4. Multiprogramming in Operating System
• In a modern computing system, there are usually several concurrent
application processes which want to execute.
• Now it is the responsibility of the Operating System to manage all the
processes effectively and efficiently.
• One of the most important aspects of an Operating System is to
multi program.
• In a computer system, there are multiple processes waiting to be
executed, i.e. they are waiting when the CPU will be allocated to them and
they begin their execution.
• These processes are also known as jobs.
• Now the main memory is too small to accommodate all of these
processes or jobs into it.
4. Multiprogramming in Operating System
• Thus, these processes are initially kept in an area called job
pool. This job pool consists of all those processes awaiting
allocation of main memory and CPU.
• CPU selects one job out of all these waiting jobs, brings it from the
job pool to main memory and starts executing it.
• The processor executes one job until it is interrupted by some
external factor or it goes for an I/O task.
4. Multiprogramming in Operating System
Non-multi programmed system’s working –
• In a non multi programmed system, As soon as one job leaves the
CPU and goes for some other task (say I/O ), the CPU becomes
idle.
• The CPU keeps waiting and waiting until this job (which was
executing earlier) comes back and resumes its execution with the
CPU.
• So CPU remains free for all this while.
• Now it has a drawback that the CPU remains idle for a very long
period of time. Also, other jobs which are waiting to be executed
might not get a chance to execute because the CPU is still
allocated to the earlier job.
• This poses a very serious problem that even though other jobs are
ready to execute, CPU is not allocated to them as the CPU is
allocated to a job which is not even utilizing it (as it is busy in I/O
tasks).
• It cannot happen that one job is using the CPU for say 1 hour
4. Multiprogramming in Operating System
Multi programmed system’s working –
• In a multi-programmed system, as soon as one job goes for an I/O task,
the Operating System interrupts that job, chooses another job from the job
pool (waiting queue), gives CPU to this new job and starts its execution.
The previous job keeps doing its I/O operation while this new job does
CPU bound tasks. Now say the second job also goes for an I/O task, the
CPU chooses a third job and starts executing it. As soon as a
• job completes its I/O operation and comes back for CPU tasks, the CPU is
allocated to it.
• In this way, no CPU time is wasted by the system waiting for the I/O task
to be completed.
• Therefore, the ultimate goal of multi programming is to keep the CPU busy
as long as there are processes ready to execute. This way, multiple
programs can be executed on a single processor by executing a part of a
program at one time,
4. Multiprogramming in Operating System
program A runs for some time and then goes to waiting state. In the
mean time program B begins its execution. So the CPU does not waste
its resources and gives program B an opportunity to run.
5. Multitasking in Operating System
• Multitasking is a logical extension of a multiprogramming
system that supports multiple programs to run concurrently.
• In a multitasking operating system, more than one task
is executed at the same time.
• In this technique, multiple tasks, also known as processes,
share common processing resources such as a CPU.
5. Multitasking in Operating System
Definition – Multitasking operating system provides the
interface for executing the multiple program tasks by single
user at a same time on the one computer system.
For example, any editing task can be performed while other
programs are executing concurrently.
Other example, user can open Gmail and Power Point
same time.
5. Multitasking in Operating System
Types of Multitasking Operating System
True Multitasking:
True multitasking is the capable for executing and process multiple tasks
concurrently without taking delay instead of switching tasks from one processor to
other processor. It can perform couple of tasks in parallel with underlying the H/W
or S/W.
Preemptive Multitasking:
Pre-emptive multitasking is special task that is assigned to computer operating
system, in which it takes decision that how much time spent by one task before
assigning other task for using the operating system. Operating system has control
for completing this entire process, so it is known as “Pre-emptive”.
Cooperative Multitasking
Cooperative multitasking is known as “Non-Preemptive Multitasking”. Main goal of
Cooperative multitasking is to run currently task, and to release the CPU to allow
another task run. This task is performed by calling task YIELD().Context-switch
is executed when this function is called.
5. Multitasking in Operating System
Advantages of Multitasking Operating System
• Time Shareable: In which, all tasks are allocated specific piece of time, so they
do not need for waiting time for CPU.
• Manage Several Users: This operating system is more comfort for handling the
multiple users concurrently, and several programs can run smoothly without
degradation of system’s performance.
• Secured Memory: Multitasking operating system has well defined memory
management, because this operating system does not provide any types of
permissions of unwanted programs to wasting the memory.
• Great Virtual Memory: Multitasking operating system contains the best virtual
memory system. Due to virtual memory, any program do not need long waiting
time for completion their tasks, if this problem is occurred then those programs
are transferred to virtual memory.
• Background Processing: Multitasking operating system creates the better
environment to execute the background programs. These background programs
are not transparent for normal users, but there programs help to other
programs to run smoothly like firewall, antivirus etc.
17.35 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Distributed Operating Systems
Topics
 Advantages of Distributed Systems
 Types of Network-Based Operating Systems
 Network Structure
 Communication Structure
 Communication Protocols
 An Example: TCP/IP
 Robustness
 Design Issues
 Distributed File System
17.36 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Distributed OS Objectives
 To provide a high-level overview of distributed systems and the
networks that interconnect them
 To discuss the general structure of distributed operating systems
 To explain general communication structure and communication
protocols
 To describe issues concerning the design of distributed systems
17.37 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Overview
 Distributed system is collection of loosely coupled processors
interconnected by a communications network
 Processors variously called nodes, computers, machines, hosts
 Site is location of the processor
 Generally a server has a resource a client node at a different
site wants to use
17.38 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Reasons for Distributed Systems
 Reasons for distributed systems
 Resource sharing
 Sharing and printing files at remote sites
 Processing information in a distributed database
 Using remote specialized hardware devices
 Computation speedup – load sharing or job migration
 Reliability – detect and recover from site failure, function
transfer, reintegrate failed site
 Communication – message passing
 All higher-level functions of a standalone system can be
expanded to encompass a distributed system
 Computers can be downsized, more flexibility, better user
interfaces and easier maintenance by moving from large system
to multiple smaller systems performing distributed computing
17.39 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Types of Distributed Operating Systems
 Network Operating Systems
 Distributed Operating Systems
17.40 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Network-Operating Systems
 Users are aware of multiplicity of machines
 Access to resources of various machines is done explicitly
by:
 Remote logging into the appropriate remote machine
(telnet, ssh)
 Remote Desktop (Microsoft Windows)
 Transferring data from remote machines to local
machines, via the File Transfer Protocol (FTP)
mechanism
 Users must change paradigms – establish a session, give
network-based commands
 More difficult for users
17.41 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Distributed-Operating Systems
 Users not aware of multiplicity of machines
 Access to remote resources similar to access to local
resources
 Data Migration – transfer data by transferring entire file, or
transferring only those portions of the file necessary for the
immediate task
 Computation Migration – transfer the computation, rather
than the data, across the system
 Via remote procedure calls (RPCs)
 or via messaging system
17.42 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Distributed-Operating Systems (Cont.)
 Process Migration – execute an entire process, or parts of it, at
different sites
 Load balancing – distribute processes across network to
even the workload
 Computation speedup – subprocesses can run concurrently
on different sites
 Hardware preference – process execution may require
specialized processor
 Software preference – required software may be available at
only a particular site
 Data access – run process remotely, rather than transfer all
data locally
 Consider the World Wide Web
17.43 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Network Structure
 Local-Area Network (LAN) – designed to cover small geographical
area
 Multiple topologies like star or ring
 Speeds from 1Mb per second (Appletalk, bluetooth) to 40 Gbps for
fastest Ethernet over twisted pair copper or optical fibre
 Consists of multiple computers (mainframes through mobile
devices), peripherals (printers, storage arrays), routers
(specialized network communication processors) providing access
to other networks
 Ethernet most common way to construct LANs
 Multiaccess bus-based
 Defined by standard IEEE 802.3
 Wireless spectrum (WiFi) increasingly used for networking
 I.e. IEEE 802.11g standard implemented at 54 Mbps
17.44 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Local-area Network
17.45 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Network Types (Cont.)
 Wide-Area Network (WAN) – links geographically separated sites
 Point-to-point connections over long-haul lines (often leased from
a phone company)
 Implemented via connection processors known as routers
 Internet WAN enables hosts world wide to communicate
 Hosts differ in all dimensions but WAN allows communications
 Speeds
 T1 link is 1.544 Megabits per second
 T3 is 28 x T1s = 45 Mbps
 OC-12 is 622 Mbps
 WANs and LANs interconnect, similar to cell phone network:
 Cell phones use radio waves to cell towers
 Towers connect to other towers and hubs
17.46 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Communication Processors in a Wide-Area Network
17.47 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Communication Structure
 Naming and name resolution - How do two processes
locate each other to communicate?
 Routing strategies - How are messages sent through the
network?
 Connection strategies - How do two processes send a
sequence of messages?
 Contention - The network is a shared resource, so how do
we resolve conflicting demands for its use?
The design of a communication network must address four basic
issues:
17.48 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Naming and Name Resolution
 Name systems in the network
 Address messages with the process-id
 Identify processes on remote systems by
<host-name, identifier> pair
 Domain name system (DNS) – specifies the naming
structure of the hosts, as well as name to address
resolution (Internet)
17.49 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Routing Strategies
 Fixed routing - A path from A to B is specified in advance; path
changes only if a hardware failure disables it
 Since the shortest path is usually chosen, communication
costs are minimized
 Fixed routing cannot adapt to load changes
 Ensures that messages will be delivered in the order in which
they were sent
 Virtual routing- A path from A to B is fixed for the duration of
one session. Different sessions involving messages from A to B
may have different paths
 Partial remedy to adapting to load changes
 Ensures that messages will be delivered in the order in which
they were sent
17.50 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Routing Strategies (Cont.)
 Dynamic routing - The path used to send a message form site
A to site B is chosen only when a message is sent
 Usually a site sends a message to another site on the link
least used at that particular time
 Adapts to load changes by avoiding routing messages on
heavily used path
 Messages may arrive out of order
 This problem can be remedied by appending a sequence
number to each message
 Most complex to set up
 Tradeoffs mean all methods are used
 UNIX provides ability to mix fixed and dynamic
 Hosts may have fixed routes and gateways connecting
networks together may have dynamic routes
17.51 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Routing Strategies (Cont.)
 Router is communications processor responsible for routing
messages
 Must have at least 2 network connections
 Maybe special purpose or just function running on host
 Checks its tables to determine where destination host is, where
to send messages
 Static routing – table only changed manually
 Dynamic routing – table changed via routing protocol
17.52 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Routing Strategies (Cont.)
 More recently, routing managed by intelligent software more
intelligently than routing protocols
 OpenFlow is device-independent, allowing developers to
introduce network efficiencies by decoupling data-routing
decisions from underlying network devices
 Messages vary in length – simplified design breaks them into
packets (or frames, or datagrams)
 Connectionless message is just one packet
 Otherwise need a connection to get a multi-packet message
from source to destination
17.53 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Connection Strategies
 Circuit switching - A permanent physical link is established for
the duration of the communication (i.e., telephone system)
 Message switching - A temporary link is established for the
duration of one message transfer (i.e., post-office mailing
system)
 Packet switching - Messages of variable length are divided
into fixed-length packets which are sent to the destination
 Each packet may take a different path through the network
 The packets must be reassembled into messages as they
arrive
 Circuit switching requires setup time, but incurs less overhead
for shipping each message, and may waste network bandwidth
 Message and packet switching require less setup time, but
incur more overhead per message
17.54 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Communication Protocol
 Layer 1: Physical layer – handles the mechanical and
electrical details of the physical transmission of a bit stream
 Layer 2: Data-link layer – handles the frames, or fixed-
length parts of packets, including any error detection and
recovery that occurred in the physical layer
 Layer 3: Network layer – provides connections and routes
packets in the communication network, including handling the
address of outgoing packets, decoding the address of
incoming packets, and maintaining routing information for
proper response to changing load levels
The communication network is partitioned into the following multiple
layers:
17.55 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Communication Protocol (Cont.)
 Layer 4: Transport layer – responsible for low-level network
access and for message transfer between clients, including
partitioning messages into packets, maintaining packet order,
controlling flow, and generating physical addresses
 Layer 5: Session layer – implements sessions, or process-to-
process communications protocols
 Layer 6: Presentation layer – resolves the differences in
formats among the various sites in the network, including
character conversions, and half duplex/full duplex (echoing)
 Layer 7: Application layer – interacts directly with the users,
deals with file transfer, remote-login protocols and electronic
mail, as well as schemas for distributed databases
17.56 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Communication Via ISO Network Model
17.57 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
The ISO Protocol Layer
17.58 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
The ISO Network Message
17.59 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
The TCP/IP Protocol Layers
17.60 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Example: TCP/IP
 The transmission of a network packet between hosts on an
Ethernet network
 Every host has a unique IP address and a corresponding
Ethernet Media Access Control (MAC) address
 Communication requires both addresses
 Domain Name Service (DNS) can be used to acquire IP addresses
 Address Resolution Protocol (ARP) is used to map MAC
addresses to IP addresses
 Broadcast to all other systems on the Ethernet network
 If the hosts are on the same network, ARP can be used
 If the hosts are on different networks, the sending host will
send the packet to a router which routes the packet to the
destination network
17.61 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
An Ethernet Packet
17.62 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Robustness
 Failure detection
 Reconfiguration
17.63 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Failure Detection
 Detecting hardware failure is difficult
 To detect a link failure, a heartbeat protocol can be used
 Assume Site A and Site B have established a link
 At fixed intervals, each site will exchange an I-am-up
message indicating that they are up and running
 If Site A does not receive a message within the fixed
interval, it assumes either (a) the other site is not up or (b)
the message was lost
 Site A can now send an Are-you-up? message to Site B
 If Site A does not receive a reply, it can repeat the
message or try an alternate route to Site B
17.64 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Failure Detection (Cont.)
 If Site A does not ultimately receive a reply from Site B, it
concludes some type of failure has occurred
 Types of failures:
- Site B is down
- The direct link between A and B is down
- The alternate link from A to B is down
- The message has been lost
 However, Site A cannot determine exactly why the failure
has occurred
17.65 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Reconfiguration
 When Site A determines a failure has occurred, it must
reconfigure the system:
1. If the link from A to B has failed, this must be broadcast
to every site in the system
2. If a site has failed, every other site must also be notified
indicating that the services offered by the failed site are
no longer available
 When the link or the site becomes available again, this
information must again be broadcast to all other sites
17.66 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Design Issues
 Transparency – the distributed system should appear as a
conventional, centralized system to the user
 Fault tolerance – the distributed system should continue to
function in the face of failure
 Scalability – as demands increase, the system should easily
accept the addition of new resources to accommodate the
increased demand
 Consider Hadoop open source programming framework
for processing large datasets in distributed environments
(based on Google search indexing)
 Clusters – a collection of semi-autonomous machines that
acts as a single system
Real Time System
• A system is said to be Real Time if it is
required to complete it’s work & deliver it’s
services on time.
• Example – Flight Control System
– All tasks in that system must execute on time.
• Non Example – PC system
67
How RTOS is different from OS
• The key difference between general-
computing operating systems and real-time
operating systems is the need for
"deterministic" timing behavior, general-
computing.
• non-real-time operating systems are often
quite non-deterministicII.
68
• Real-time operating systems are often uses
in embedded solutions, that is, computing
platforms that are within another device.
• While real-time operating systems are
typically designed for and used with
embedded systems.
69
Hard and Soft Real Time Systems
• Hard Real Time System
– Failure to meet deadlines is fatal
– example : Flight Control System
• Soft Real Time System
– Late completion of jobs is undesirable but not fatal.
– System performance degrades as more & more jobs
miss deadlines
– Online Databases
70
71
Classification of RTOS Kernels
• RT kernels vs modified kernels of standard OS
– Fast proprietary kernels: may be inadequate for
complex systems, because they are designed to
be fast rather than to be predictable in every
respect, e.g., QNX, PDOS, VCOS, VTRX32,
VxWORKS
– RT extensions to standard OS: RT-kernel runs
all RT-tasks and standard-OS executed as one
task on it
• General RTOS vs RTOS for specific domains
• Standard APIs vs proprietary APIs
– e.g. POSIX RT-Extension of Unix, ITRON, OSEK)
INTRODUCTION TO RTOS
• Tasks and Task States
• A task – a simple subroutine
• ES application makes calls to the RTOS functions to start tasks,
passing to the OS, start address, stack pointers, etc. of the tasks
• Task States:
– Running
– Ready (possibly: suspended, pended)
– Blocked (possibly: waiting, dormant, delayed)
– [Exit]
– Scheduler – schedules/shuffles tasks between Running and Ready
states
– Blocking is self-blocking by tasks, and moved to Running state via
other tasks’ interrupt signaling (when block-factor is
removed/satisfied)
– When a task is unblocked with a higher priority over the ‘running’
task, the scheduler ‘switches’ context immediately (for all pre-
emptive RTOSs) 72
73
A Sample Real Time System (1)
Features of RTOS’s
• Scheduling.
• Resource Allocation.
• Interrupt Handling.
• Other issues like kernel size.
74
75
Why Use an RTOS?
• Can use drivers that are available with an RTOS
• Can focus on developing application code, not on
creating or maintaining a scheduling system
• Multi-thread support with synchronization
• Portability of application code to other CPUs
• Resource handling by RTOS
• Add new features without affecting higher priority
functions
• Support for upper layer protocols such as:
– TCP/IP, USB, Flash Systems, Web Servers,
– CAN protocols, Embedded GUI, SSL, SNMP
76
Characteristics of Embedded OS
• Device drivers often not integrated into kernel
– Embedded systems often application-specific 
specific devices  move device out of OS to tasks
– For desktop OS, many devices are implicitly assumed
to be presented, e.g., disk, network, audio, etc.
 they need to be integrated to low-level SW
stack
Embedded OS Standard OS
kernel
77
Characteristics of Embedded OS
• Real-time capability
– Many embedded systems are real-time (RT)
systems and, hence, the OS used in these
systems must be real-time operating systems
(RTOSs)
• Features of a RTOS:
– Allows multi-tasking
– Scheduling of the tasks with priorities
– Synchronization of the resource access
– Inter-task communication
– Time predictable
– Interrupt handling
78
Requirements for RTOS
• Predictability of timing
– The timing behavior of the OS must be
predictable
– For all services of the OS, there is an upper
bound on the execution time
– Scheduling policy must be deterministic
– The period during which interrupts are disabled
must be short (to avoid unpredictable delays in
the processing of critical events)
79
Requirements for RTOS
• OS should manage timing and scheduling
– OS possibly has to be aware of task deadlines;
(unless scheduling is done off-line).
– Frequently, the OS should provide precise time
services with high resolution.
• Important if internal processing of the embedded
system is linked to an absolute time in the physical
environment
• Speed:
– The OS must be fast
Programming languages Used
• C is most widely used in RTOS programming
• C++ and Ada are the next more popular for large
projects.
• Assembly languages for increasing efficiency and
reusing the previous code
• Java may also be a choice for some applications
80
Which is the Best?
• It is always very difficult to judge which
RTOS is the best and which is the worst. It
depends on the application and interests of
the user. Among the above, Linux is
royalty free but it has serious drawbacks if
it comes to real-time behavior. The
VxWorks is a very old and stable RTOS.
Similarly Windows CE 5.0 version RTOS is
a robust and stable regarding the real-time
behavior. 81
82
Functionality of RTOS Kernel
• Processor management
• Memory management
• Timer management
• Task management (resume, wait etc)
• Inter-task communication and
synchronization
resource management
83
RTOS Kernel Functions
84
RTOS Kernel
• RTOS Kernel provides an Abstraction layer that
hides from application software the hardware
details of the processor / set of processors upon
which the application software shall run.
Application Software
RTOS
Hardware
• Type of RTOS kernel
– Monolithic kernel – less run-time overhead but
not extensible
– Microkernel – high run-time overhead but
highly extensible
85
86
What is MQX?
• Multi-threaded, priority-based RTOS
provides
– Task scheduling
– Task management
– Interrupt handling
– Task synchronization: mutexes, semaphores,
events, messages
– Memory management
– IO subsystems
– Kernel logging
87
MQX Facilities
Required
Optional
MQX, RTCS, etc are structured
as a set of C files built by the
user into a library that is linked
into the same code space as the
application. Libraries contain
all functions but only called
functions are included with the
image.
88
Message passing in RTOS
• In RTOS, the OS copies a pointer to the message,
delivers the pointer to the message-receiver task,
and then deletes the copy of the pointer with
message-sender task.
Message Sender
Task
RAM
Message Receiver
Task
RTOS
msg_ptr
msg_ptr
Message Message
89
Task Management
• Set of services used to allow application software developers
to design their software as a number of separate chunks of
software each handling a distinct topic, a distinct goal, and
sometimes its own real-time deadline.
• Main service offered is Task Scheduling
– controls the execution of application software tasks
– can make them run in a very timely and responsive fashion.
90
91
Task Scheduling
• Non Real -time systems usually use Non-preemptive
Scheduling
– Once a task starts executing, it completes its full execution
• Most RTOS perform priority-based preemptive task
scheduling.
• Basic rules for priority based preemptive task scheduling
– The Highest Priority Task that is Ready to Run, will be the Task
that Must be Running.
Scheduling in RTOS
• Running (executing on the CPU);
• Ready (ready to be executed);
• Blocked (waiting for an event, I/O for
example)
92
Scheduling Algorithms in RTOS
• Clock Driven Scheduling
• Weighted Round Robin Scheduling
• Priority Scheduling (Greedy / List / Event Driven)
• Cooperative scheduling
• Preemptive scheduling
• Rate-monotonic scheduling
93
• Fixed priority pre-emptive scheduling, an
implementation of preemptive time slicing
• Fixed-Priority Scheduling with Deferred
Preemption
• Fixed-Priority Non-preemptive Scheduling
• Critical section preemptive scheduling
• Static time scheduling
• Earliest Deadline First approach
• Stochastic digraphs with multi-threaded
graph traversal
94
Scheduling Algorithms in RTOS
• Clock Driven
– All parameters about jobs (release time/
execution time/deadline) known in advance.
– Schedule can be computed offline or at some
regular time instances.
– Minimal runtime overhead.
– Not suitable for many applications.
95
Peripheral devices and protocols
• Interfacing
Serial/parallel ports, USB, I2C, PCMCIA, IDE
• Communication
Serial, Ethernet, Low bandwidth radio, IrDA,
802.11b based devices
• User Interface
LCD, Keyboard, Touch sensors, Sound, Digital
pads, Webcams
• Sensors
A variety of sensors using fire, temperature,
pressure, water level, seismic, sound, vision
96
97
Dynamic Memory Allocation in RTOS
• RTOS does it by a mechanism known as Pools.
• Pools memory allocation mechanism allows application
software to allocate chunks of memory of 4 to 8 different
buffer sizes per pool.
• Pools avoid external memory fragmentation, by not
permitting a buffer that is returned to the pool to be broken
into smaller buffers in the future.
• When a buffer is returned the pool, it is put onto a free
buffer list of buffers of its own size that are available for
future re-use at their original buffer size
Process & Program
• A process invokes or initiates a program. It
is an instance of a program that can be
multiple and running the same application.
• Example:- Notepad is one program and can
be opened twice.
98
Mobile Operating Systems
Overview
http://cmer.cis.uoguelph.ca 10
0
• Introduction
• Mobile Operating System Structure
• Mobile Operating System Platforms
• Java ME Platform
• Palm OS
• Symbian OS
• Linux OS
• Windows Mobile OS
• BlackBerry OS
• iPhone OS
• Google Android Platform
OS Features
http://cmer.cis.uoguelph.ca 10
1
• Features
– Multitasking
– Scheduling
– Memory Allocation
– File System Interface
– Keypad Interface
– I/O Interface
– Protection and Security
– Multimedia features
Introduction
http://cmer.cis.uoguelph.ca 10
2
• Design and capabilities of a Mobile OS (Operating
System) is very different than a general purpose OS
running on desktop machines:
– mobile devices have constraints and restrictions on
as screen size,
communication
their physical characteristic such
memory, processing power and etc.
– Scarce availability of battery power
– Limited amount of computing and
capabilities
Introduction (Cont.)
http://cmer.cis.uoguelph.ca 10
3
• Thus, they need different types of operating systems
depending on the capabilities they support. e.g. a PDA
OS is different from a Smartphone OS.
• Operating System is a piece of software responsible for
management of operations, control, coordinate the use
of the hardware among the various application
programs, and sharing the resources of a device.
Operating System Structure
http://cmer.cis.uoguelph.ca 10
4
• A mobile OS is a software platform on top of which other
programs called application programs, can run on
mobile devices such as PDA, cellular phones,
smartphone and etc.
Low-Level Hardware, Manufacturer Device Drivers
Device Operating System Base, Kernel
OS Libraries
Applications
Mobile Operating
System Platforms
http://cmer.cis.uoguelph.ca 10
5
• There are many mobile operating systems. The
followings demonstrate the most important ones:
– Java ME Platform
– Palm OS
– Symbian OS
– Linux OS
– Windows Mobile OS
– BlackBerry OS
– iPhone OS
– Google Android Platform
Java ME Platform
http://cmer.cis.uoguelph.ca 10
6
• J2ME platform is a set of technologies, specifications
and libraries developed for small devices like mobile
phones, pagers, and personal organizers.
• Java ME was designed by Sun Microsystems. It is
licensed under GNU General Public License
Java ME Architecture
• Java ME platforms are composed of the following
elements:
Device/ Hardware
Native Operating System
Configuration
Profile
Optional
Package
s
Vendor
specific
classes -
OEM
Application
http://cmer.cis.uoguelph.ca 10
7
Java ME Main Components
http://cmer.cis.uoguelph.ca 10
8
• Configuration: it defines a minimum platform including
the java language, virtual machine features and minimum
class libraries for a grouping of devices. E.g. CLDC
• Profile: it supports higher-level services common to a
more specific class of devices. A profile builds on a
configuration but adds more specific APIs to make a
complete environment for building applications. E.g.
MIDP
Java ME
http://cmer.cis.uoguelph.ca 10
9
• Optional Package: it provides specialized service or
functionality that may not be associated with a specific
configuration or profile. The following table lists some of
the available packages:
Packages Description
JSR 75 - PIM PDA Package
JSR 82 - BTAPI Java APIs for Bluetooth
JSR 120 - WMA Wireless Messaging API
JSR 172 J2ME Web Service
JSR 179 Location API for J2ME
Java ME Platforms
• It includes two kinds of platforms:
– High-end platform for high-end consumer devices.
E.g. TV set-top boxes, Internet TVs, auto-mobile
navigation systems
– Low-end platform for low-end consumer devices. E.g.
cell phones, and pagers
Platforms Device Characteristics
“High-End” consumer
devices
• a large range of user interface capabilities
• total memory budgets starting from about two to four megabytes
• persistent, high-bandwidth network connections, often using TCP/IP
“Low-end” consumer
devices
•simple user interfaces
•minimum memory budgets starting from about 128–256 kilobytes
•low bandwidth, intermittent network connections that is often not based on
the TCP/IP protocol suite.
• most of these devices are battery-operated
http://cmer.cis.uoguelph.ca 11
0
Java ME Platforms (Cont.)
• The following figures demonstrate the elements of these two
types of platforms:
KVM
CLDC
MIDP
JVM
Foundation Profile
Personal Profile
Fig.1- Low-end consumer device
platform architecture
Fig.2- High-end consumer device
platform architecture
CDC
http://cmer.cis.uoguelph.ca 11
1
Java ME CLDC
http://cmer.cis.uoguelph.ca 11
2
• We focus on “Low-end” consumer devices:
– CLDC configuration address the following areas:
• Java language and virtual machine features
• Core Java libraries
• CLDC Specific Libraries (Input/output & Networking)
• Internationalization: There is a limited support for converting
Unicode characters to and from a sequence of bytes.
• Security: CLDC addresses the following topics to security
– At the low-level the virtual machine security is achieved
by requiring downloaded Java classes to pass a class file
verification step.
– Applications are protected from each other by being run
in a closed “sandbox” environment.
– Classes in protected system packages cannot be
overridden by applications.
Java ME CLDC (Cont.)
http://cmer.cis.uoguelph.ca 11
3
• The entire CLDC implementation (static size of the K
virtual machine + class libraries) should fit in less than
128 kilobytes.
• It guarantee portability and interoperability of profile-
level code between the various kinds of mobile (CLDC)
devices
Palm OS
http://cmer.cis.uoguelph.ca 11
4
• Palm OS[1] is an embedded operating system designed
for ease of use with a touchscreen-based graphical user
interface.
• It has been implemented on a wide variety of mobile
devices such as smart phones, barcode readers, and
GPS devices.
• It is run on Arm architecture-based processors. It is
designed as a 32-bit architecture.
Palm OS Features
http://cmer.cis.uoguelph.ca 11
5
[1,2,3] are:
• The key features of Palm OS
– A single-tasking OS:
• Palm OS Garnet (5.x) uses a kernel developed at
Palm, but it does not expose tasks or threads to
user applications. In fact, it is built with a set of
threads that can not be changed at runtime.
• Palm OS Cobalt (6.0 or higher) does support
multiple threads but does not support creating
additional processes by user applications.
• Palm OS has a preemptive multitasking kernel that
provides basic tasks but it does not expose this
feature to user applications .
Palm OS Features (Cont.)
http://cmer.cis.uoguelph.ca 11
6
– Memory Management:
• The Memory, RAM and ROM, for each Palm resides
on a memory module known as card. In other
words, each memory card contains RAM, ROM or
both. Palms can have no card, one card or multiple
cards.
– Expansion support[3]:
• This capability not only augments the memory and
I/O , but also it facilitates data interchanges with
other Palm devices and with other non-Palm
devices such as digital cameras, and digital audio
players.
– Handwriting recognition input called Graffiti 2
Palm OS Features (Cont.)
http://cmer.cis.uoguelph.ca 11
7
– HotSync technology for synchronization with PC
computers
– Sound playback and record capabilities
– TCP/IP network access
– Support of serial port, USB, Infrared, Bluetooth and
Wi-Fi connections
– Defined standard data format for PIM (Personal
Information Management) applications to store
calendar, address, task and note entries, accessible
by third-party applications
Palm OS Features (Cont.)
http://cmer.cis.uoguelph.ca 11
8
– Security model:
• Device can be locked by password, arbitrary
application records can be made private [2]
• Palm OS Cobalt include a certificate manager. The
Certificate Manager handles X.509 certificates[3].
Symbian OS
http://cmer.cis.uoguelph.ca 11
9
• Symbian OS is 32 bit, little-endian operating system,
running on different flavors of ARM architecture[4].
• It is a multitasking operating system and very less
dependence on peripherals.
• Kernel runs in the privileged mode and exports its
service to user applications via user libraries.
Symbian OS Structure
http://cmer.cis.uoguelph.ca 12
0
• User libraries include networking, communication, I/O
interfaces and etc.
• Access to these services and resources is coordinated
through a client-server framework.
• Clients use the service APIs exposed by the server to
communicate with the server.
• The client-server communication is conducted by the
kernel.
Symbian OS
Structure (Cont.)
• The following demonstrates the Symbian OS
architecture[5]:
Symbian OS
Libraries
KVM
Application Engines
Servers
Symbian OS Base- Kernel
Hardware
http://cmer.cis.uoguelph.ca 12
1
Symbian OS Features
http://cmer.cis.uoguelph.ca 12
2
• Real-time: it has a real-time, multithreaded kernel.
• Data Caging [6]: it allows applications to have their own
private data partition. This feature allows for applications
to guarantee a secure data store. It can be used for e-
commerce applications, location aware applications and
etc.
• Multimedia: it supports audio, video recording, playback
and streaming, and Image conversion.
Symbian OS
Features (Cont.)
http://cmer.cis.uoguelph.ca 12
3
• Platform Security [6]: Symbian provides a security
mechanism against malware. It allows sensitive
operations can be accessed by applications which have
been certified by a signing authority. In addition, it
supports full encryption and certificate management,
secure protocols ( HTTPS, TLS and SSL) and WIM
framework.
Symbian OS
Features (Cont.)
http://cmer.cis.uoguelph.ca 12
4
it supports Unicode
• Internationalization support:
standard.
[6]:
• Fully object-oriented and component- based
• Optimized memory management
• Client- server architecture described in previous
slides, it provides simple and high-efficient inter-process
communication. This feature also eases porting of code
written for other platforms to Symbian OS.
Symbian OS
Features (Cont.)
http://cmer.cis.uoguelph.ca 12
5
• A Hardware Abstraction Layer (HAL): This layer provides
a consistent interface to hardware and supports device-
independency
• Kernel offers hard real-time guarantees to kernel and
user mode threads.
Embedded Linux OS
http://cmer.cis.uoguelph.ca 12
6
• It is known as Embedded Linux which is used in
embedded computer systems such as mobile phones,
Personal Digital Assistants, media players and other
consumer devices.
• In spite of Linux operating system designed for Servers
and desktops, the Embedded Linux is designed for
devices which have relatively limited resources such as
small size of RAM, storage, screen, limited power and
etc. Then, they should have an optimized kernel.
Embedded Linux OS
http://cmer.cis.uoguelph.ca 12
7
• It is a Real-Time Operating System (RTOS). It meets
deadlines and switch context
• It has relatively a small footprint. Today, mobile phones
can ship with a small memory. Thus, OS must not seek
to occupy a large amount of available storage. It should
have a small foot print. Theoretically, they deploy in a
footprint of 1MB or less.
• It is open source. It has no cost for licensing.
• Examples: Motorola Mobile phones such as RAZR V8,
RAZR V9, A1200 are based on MontaVista Linux.
Embedded Linux OS
http://cmer.cis.uoguelph.ca 12
8
• ARM and MIPS structures [7]: Embedded CPU
architectures like ARM and MIPS offer small instruction
that
special execution modes
size and consequently generates
shrinks
smaller
sets and
application
code.
Windows Mobile OS
http://cmer.cis.uoguelph.ca 12
9
• Windows Mobile is a compact operating system
designed for mobile devices and based on Microsoft
Win32.
• It is run on Pocket PCs, Smartphones and Portable
media centers.
• It provides ultimate interoperability. Users with various
requirements are able to manipulate their data.
Google Android Platform
http://cmer.cis.uoguelph.ca 13
0
• It is a platform and an operating system for mobile
devices based on the Linux operating system.
• It allows developers design applications in a java-like
language using Google-developed java libraries.
• It supports a wide variety of connectivity such as GSM,
WiFi, 3G, …
• The Operating system has not been implemented yet
(Feb, 2008). Several prototypes have been proposed.
Google Android Platform
Android architecture:
http://code.google.com/android/what-is-android.html
http://cmer.cis.uoguelph.ca 13
1
Google Android Platform
http://cmer.cis.uoguelph.ca 13
2
• As demonstrated in the previous slide, the Android
platform contains the following layers:
– Linux Kernel: Android relies on Linux for core system
services such as security, memory management,
process management and etc.
– Android [7] Runtime: it provides a set of core libraries
which supports most of the functionality in the core
libraries of Java. The Android Virtual Machine known
as Dalvik VM relies on the linux kernel for some
underlying functionality such as threading,…
Google Android Platform
http://cmer.cis.uoguelph.ca 13
3
– Libraries: Android includes a set of C/C++ libraries.
These libraries are exposed to developers through the
Android application framework. They include media
libraries, system C libraries, surface manager, 3D
libraries, SQLite and etc.
For more details, please visit the following link:
http://code.google.com/android/what-is-android.html
– Application Framework: it provides an access layer to
the framework APIs used by the core applications. It
allows components to be used by the developers.
iPhone OS
http://cmer.cis.uoguelph.ca 13
4
• iPhone OS is an operating system run on iPhone and
iPod.
• It is based on Mach Kernel and Drawin core as Mac OS X.
• The Mac OS X kernel includes the following component:
– Mach Kernel
– BSD
– I/O component
– File Systems
– Networking components
iPhone OS
• The following is Mac OS X Architecture [8]:
Kernel Environment
Core Services
Application Services
QuickTime
Classic Carbon Cocoa JDK BSD
http://cmer.cis.uoguelph.ca 13
5
iPhone OS
http://cmer.cis.uoguelph.ca 13
6
• Mac OS X has a preemptive multitasking environment.
• Preempting is the act of taking the control of operating
system from one task and giving it to another task.
• It supports real-time behavior.
• In Mac OS X, each application has access to its own 4
GB address space.
iPhone OS
http://cmer.cis.uoguelph.ca 13
7
• Not any application can directly modify the memory of
the kernel. It has a strong mechanism for memory
protection.
• For more details about kernel architecture, please visit
the following link:
http://developer.apple.com/documentation/Darwin/Conce
ptual/KernelProgramming/Architecture/Architecture.html

More Related Content

Similar to Overview Of Operating System and its Basics

Module 1 Introduction.ppt
Module 1 Introduction.pptModule 1 Introduction.ppt
Module 1 Introduction.ppt
shreesha16
 

Similar to Overview Of Operating System and its Basics (20)

Introduction to Operating System
Introduction to Operating SystemIntroduction to Operating System
Introduction to Operating System
 
1. Introduction to OS.ppt
1. Introduction to OS.ppt1. Introduction to OS.ppt
1. Introduction to OS.ppt
 
Introduction to operating systems
 Introduction to operating systems Introduction to operating systems
Introduction to operating systems
 
Operating Systems PPT 1 (1).pdf
Operating Systems PPT 1 (1).pdfOperating Systems PPT 1 (1).pdf
Operating Systems PPT 1 (1).pdf
 
Os notes 1_5
Os notes 1_5Os notes 1_5
Os notes 1_5
 
Operating systems1[1]
Operating systems1[1]Operating systems1[1]
Operating systems1[1]
 
os assignment -individual presenation.pptx
os assignment -individual presenation.pptxos assignment -individual presenation.pptx
os assignment -individual presenation.pptx
 
PROJECT 3.pptx
PROJECT 3.pptxPROJECT 3.pptx
PROJECT 3.pptx
 
Module 1 Introduction.ppt
Module 1 Introduction.pptModule 1 Introduction.ppt
Module 1 Introduction.ppt
 
Introduction of os and types
Introduction of os and typesIntroduction of os and types
Introduction of os and types
 
Operating System-adi.pdf
Operating System-adi.pdfOperating System-adi.pdf
Operating System-adi.pdf
 
Advanced computer architecture lesson 1 and 2
Advanced computer architecture lesson 1 and 2Advanced computer architecture lesson 1 and 2
Advanced computer architecture lesson 1 and 2
 
ch1.ppt
ch1.pptch1.ppt
ch1.ppt
 
OS chapter 1.pptx
OS chapter 1.pptxOS chapter 1.pptx
OS chapter 1.pptx
 
OS chapter 1.pptx
OS chapter 1.pptxOS chapter 1.pptx
OS chapter 1.pptx
 
chapter2.pptx
chapter2.pptxchapter2.pptx
chapter2.pptx
 
Unit 2.pptx
Unit 2.pptxUnit 2.pptx
Unit 2.pptx
 
Unit 2.pptx
Unit 2.pptxUnit 2.pptx
Unit 2.pptx
 
Unit I OS.pdf
Unit I OS.pdfUnit I OS.pdf
Unit I OS.pdf
 
SISTEMAS OPERATIVOS.pptx
SISTEMAS OPERATIVOS.pptxSISTEMAS OPERATIVOS.pptx
SISTEMAS OPERATIVOS.pptx
 

More from ChandrakantDivate1

More from ChandrakantDivate1 (20)

Web Technology LAB MANUAL for Undergraduate Programs
Web Technology  LAB MANUAL for Undergraduate ProgramsWeb Technology  LAB MANUAL for Undergraduate Programs
Web Technology LAB MANUAL for Undergraduate Programs
 
UNIVERSAL HUMAN VALUES- Harmony in the Nature
UNIVERSAL HUMAN VALUES- Harmony in the NatureUNIVERSAL HUMAN VALUES- Harmony in the Nature
UNIVERSAL HUMAN VALUES- Harmony in the Nature
 
Study of Computer Hardware System using Block Diagram
Study of Computer Hardware System using Block DiagramStudy of Computer Hardware System using Block Diagram
Study of Computer Hardware System using Block Diagram
 
Computer System Output Devices Peripherals
Computer System Output  Devices PeripheralsComputer System Output  Devices Peripherals
Computer System Output Devices Peripherals
 
Computer system Input Devices Peripherals
Computer system Input  Devices PeripheralsComputer system Input  Devices Peripherals
Computer system Input Devices Peripherals
 
Computer system Input and Output Devices
Computer system Input and Output DevicesComputer system Input and Output Devices
Computer system Input and Output Devices
 
Introduction to COMPUTER’S MEMORY RAM and ROM
Introduction to COMPUTER’S MEMORY RAM and ROMIntroduction to COMPUTER’S MEMORY RAM and ROM
Introduction to COMPUTER’S MEMORY RAM and ROM
 
Introduction to Computer Hardware Systems
Introduction to Computer Hardware SystemsIntroduction to Computer Hardware Systems
Introduction to Computer Hardware Systems
 
Fundamentals of Internet of Things (IoT) Part-2
Fundamentals of Internet of Things (IoT) Part-2Fundamentals of Internet of Things (IoT) Part-2
Fundamentals of Internet of Things (IoT) Part-2
 
Fundamentals of Internet of Things (IoT)
Fundamentals of Internet of Things (IoT)Fundamentals of Internet of Things (IoT)
Fundamentals of Internet of Things (IoT)
 
Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)
 
Fundamentals of functions in C program.pptx
Fundamentals of functions in C program.pptxFundamentals of functions in C program.pptx
Fundamentals of functions in C program.pptx
 
Fundamentals of Structure in C Programming
Fundamentals of Structure in C ProgrammingFundamentals of Structure in C Programming
Fundamentals of Structure in C Programming
 
INPUT AND OUTPUT STATEMENTS IN PROGRAMMING IN C
INPUT AND OUTPUT STATEMENTS IN PROGRAMMING IN CINPUT AND OUTPUT STATEMENTS IN PROGRAMMING IN C
INPUT AND OUTPUT STATEMENTS IN PROGRAMMING IN C
 
Programming in C - Fundamental Study of Strings
Programming in C - Fundamental Study of  StringsProgramming in C - Fundamental Study of  Strings
Programming in C - Fundamental Study of Strings
 
Basics of Control Statement in C Languages
Basics of Control Statement in C LanguagesBasics of Control Statement in C Languages
Basics of Control Statement in C Languages
 
Features and Fundamentals of C Language for Beginners
Features and Fundamentals of C Language for BeginnersFeatures and Fundamentals of C Language for Beginners
Features and Fundamentals of C Language for Beginners
 
Basics of Programming Algorithms and Flowchart
Basics of Programming Algorithms and FlowchartBasics of Programming Algorithms and Flowchart
Basics of Programming Algorithms and Flowchart
 
Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
Computer Graphics Three-Dimensional Geometric Transformations
Computer Graphics Three-Dimensional Geometric TransformationsComputer Graphics Three-Dimensional Geometric Transformations
Computer Graphics Three-Dimensional Geometric Transformations
 

Recently uploaded

Teachers record management system project report..pdf
Teachers record management system project report..pdfTeachers record management system project report..pdf
Teachers record management system project report..pdf
Kamal Acharya
 
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
tuuww
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
Kamal Acharya
 
ENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu sweENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu swe
MohammadAliNayeem
 
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdfDR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DrGurudutt
 

Recently uploaded (20)

Teachers record management system project report..pdf
Teachers record management system project report..pdfTeachers record management system project report..pdf
Teachers record management system project report..pdf
 
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
一比一原版(UNK毕业证)内布拉斯加州立大学科尼分校毕业证成绩单
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
Supermarket billing system project report..pdf
Supermarket billing system project report..pdfSupermarket billing system project report..pdf
Supermarket billing system project report..pdf
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
E-Commerce Shopping for developing a shopping ecommerce site
E-Commerce Shopping for developing a shopping ecommerce siteE-Commerce Shopping for developing a shopping ecommerce site
E-Commerce Shopping for developing a shopping ecommerce site
 
ENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu sweENCODERS & DECODERS - Digital Electronics - diu swe
ENCODERS & DECODERS - Digital Electronics - diu swe
 
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdfRESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
 
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationKIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
 
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdfDR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
 
Electrical shop management system project report.pdf
Electrical shop management system project report.pdfElectrical shop management system project report.pdf
Electrical shop management system project report.pdf
 
Dairy management system project report..pdf
Dairy management system project report..pdfDairy management system project report..pdf
Dairy management system project report..pdf
 
Lect_Z_Transform_Main_digital_image_processing.pptx
Lect_Z_Transform_Main_digital_image_processing.pptxLect_Z_Transform_Main_digital_image_processing.pptx
Lect_Z_Transform_Main_digital_image_processing.pptx
 
2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge
 
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineLow rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
 
Peek implant persentation - Copy (1).pdf
Peek implant persentation - Copy (1).pdfPeek implant persentation - Copy (1).pdf
Peek implant persentation - Copy (1).pdf
 
Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission line
 
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
Attraction and Repulsion type Moving Iron Instruments.pptx
Attraction and Repulsion type Moving Iron Instruments.pptxAttraction and Repulsion type Moving Iron Instruments.pptx
Attraction and Repulsion type Moving Iron Instruments.pptx
 

Overview Of Operating System and its Basics

  • 1. Mr. C.P.Divate Overview Of Operating System
  • 2. Operating system Definition An Operating System ( OS ) i s system software that manages computer hardware, software resources, and provides common services for computer programs. An Operating System is a program that acts as an interface between the software and the computer hardware. An Operating System is system software which may be viewed as an organized collection of software consisting of procedures for operating a computer and providing an environment for execution of programs.
  • 3. Basic Elements Of Operating Systems • Processor • Main memory • I/O modules • System bus
  • 4. Objectives Of Operating Systems • Convenience: It makes a computer more suitable to use. • Efficiency: It provides the computer system resources with efficiency and in easy to use format. • Ability to develop: It should be built in such a way that it permits the efficient development, testing, and installation of new system functions without interfering with service. • Protection: Protect Data from unauthorized access. • Communication: Make communication in Network.
  • 5. Services Of Operating Systems An Operating System supplies different kinds of services to both the users and programs. Here is a list of common services offered by all operating systems: • User Interface • Program Execution • File system manipulation • Input / Output Operations • Inter process Communication • Resource Allocation • Error Detection • Accounting • Security and protection
  • 6. 1. User Interface in Operating System Usually Operating system comes in three forms or types. Depending on the interface their types have been further subdivided. These are: • Command line interface (C L I ) • Batch based interface ( B I ) • Graphical User Interface ( G U I ) The command line interface (CLI) usually deals with using text commands and a technique for entering those commands. The Batch interface (BI): commands and directives are used to manage those commands that are entered into files and those files get executed. Graphical User Interface (GUI): which is a window system with a pointing device (like mouse or trackball) to point to the I/O, choose from menus driven interface and to make choices viewing from a number of lists and a
  • 7. 2. Program Execution Operating System The operating system must have the capability to load a program into memory and execute that program. Furthermore, the program must be able to end its execution, either normally or abnormally / forcefully.
  • 8. 3. File system manipulation in Operating System Programs need has to be read and then write them as files and directories. File handling portion of operating system also allows users to create and delete files by specific name along with extension, search for a given file and / or list file information. Some programs comprise of permissions management for allowing or denying access to files or directories based on file ownership.
  • 9. 4. I/O operations in Operating System A program which is currently executing may require I/O, which may involve file or other I/O device. For efficiency and protection, users cannot directly govern the I/O devices. So, the OS provide a means to do I/O Input / Output operation which means read or write operation with any file.
  • 10. 5. Inter process Communication in operating System Process needs to swap over information with other process. Processes executing on same computer system or on different computer systems can communicate using operating system support. Communication between two processes can be done using shared memory or via message passing.
  • 11. 6. Resource Allocation of Operating System When multiple jobs running concurrently, resources must need to be allocated to each of them. Resources can be CPU cycles, main memory storage, file storage and I/O devices. CPU scheduling routines are used here to establish how best the CPU can be used.
  • 12. 7. Error Detection with Operating System Errors may occur within CPU, memory hardware, I/O devices and in the user program. For each type of error, the OS takes adequate action for ensuring correct and consistent computing.
  • 13. 8. Accounting in Operating System This service of the operating system keeps track of which users are using how much and what kinds of computer resources have been used for accounting or simply to accumulate usage statistics.
  • 14. 9. Protection and Security Operating System Protection includes in ensuring all access to system resources in a controlled manner. For making a system secure, the user needs to authenticate him or her to the system before using (usually via login ID and password).
  • 15. Type Of Operating Systems 1. Single Processor Operating Systems 2. Batch Processing Operating Systems 3. Multiprocessing Operating System 4. Multiprogramming / Multitasking Operating System 5. Time Sharing Operating System 6. Distributed Operating System 7. Mobile Operating systems
  • 16. 1. Single Processor Operating Systems • Most systems at least contain a single processor. • The variation of single-processor systems may be unexpected, but since these systems can range from PDA's to mainframe computers. • On a single-processor system, there is one main CPU able to execute a general-purpose instruction layout, including different instructions from users and then process them. • Almost every system has special-purpose processors within them. • They may come in the appearance of device-specific processors, such as disks, keyboards, graphics controllers, etc.; or on mainframes, they may come in the form of more general-purpose processors.
  • 17. 2. Batch Processing Operating Systems • Definition – Batch processing system works as an operating System. • Batch processing system means to grab all types of programs and data in the batch form then proceed to process. • Main motive of using batch processing system is to decrease the set up time while submitting the similar jobs to CPU. • Batch processing techniques was implemented in the hard disk and card readers as well. In this, all jobs are saved on the hard disk for making the pool of jobs for their execution as a batch form.
  • 18. 2. Batch Processing Operating Systems benefits and characteristics such as: • In batch system all jobs are performed in repeating form without user’s permission. • Can be feed input data in the batch processing system without using extra hardware components. • Small scale business can use batch processing system for executing small tasks to their benefits. • For giving rest to system’s processors, your batch system is capable to work in off-line mode. • Batch processing system consumes less time for executing the all jobs. • Batch system is shareable nature, so it can be shared for couples of users, if needed. • When batch processing system executes their jobs then its idle time is very low. • Batch processing system has more capable to handle huge repeated task smoothly
  • 19. 2. Batch Processing Operating Systems limitations of batch processing operating system • Provide well education to computer handler for operating the batch processing system. • It takes more time for debugging the batch processing system. • Some time it may be more costly. • It has more turnaround time. • It has Non linear behavior. • Model inaccuracies. • Batch processing system’s online sensors is often not available. • Include constrained operation. • Unmeasured disturbances. • Irreversible behavior. • Time-varying process characteristics. • If any one job halts, then increase workload for predicting time.
  • 20. 2. Batch Processing Operating Systems Examples of Batch Processing Operating System • Payroll System • Bank Invoice System • Transactions Process • Daily Report • Research Segment • Billing System
  • 21. 3. Multiprocessing Operating System • A multiprocessing operating system (OS) is one in which two or more central processing units (CPUs) control the functions of the computer. • Each CPU contains a copy of the OS, and these copies communicate with one another to coordinate operations. • The use of multiple processors allows the computer to perform calculations faster, since tasks can be divided up between processors.
  • 23. Single Processor / Multiprocessing Operating System • Multiprocessing operating systems performs quick tasks, as each CPU is available to access the shared memory to complete the task.
  • 24. Advantages of Multiprocessor Operating System • More reliable Systems: Ability to continue working despite hardware failure. • Enhanced Throughput: number of processes getting executed per unit of time increase. • More Economic Systems: Multiprocessor systems are cheaper than single processor systems in the long run because they share the data storage, peripheral devices, power supplies etc.
  • 25. Disadvantages of Multiprocessor Operating System • Increased Expense: Even though multiprocessor systems are cheaper in the long run than using multiple computer systems, still they are quite expensive. • Complicated Operating System Required: There are multiple processors in a multiprocessor system that share peripherals, memory etc. So, it is much more complicated to schedule processes and impart resources to processes. than in single processor systems. Hence, a more complex and complicated operating system is required in multiprocessor systems. • Large Main Memory Required: All the processors in the multiprocessor system share the memory.
  • 26. 4. Multiprogramming in Operating System • In a modern computing system, there are usually several concurrent application processes which want to execute. • Now it is the responsibility of the Operating System to manage all the processes effectively and efficiently. • One of the most important aspects of an Operating System is to multi program. • In a computer system, there are multiple processes waiting to be executed, i.e. they are waiting when the CPU will be allocated to them and they begin their execution. • These processes are also known as jobs. • Now the main memory is too small to accommodate all of these processes or jobs into it.
  • 27. 4. Multiprogramming in Operating System • Thus, these processes are initially kept in an area called job pool. This job pool consists of all those processes awaiting allocation of main memory and CPU. • CPU selects one job out of all these waiting jobs, brings it from the job pool to main memory and starts executing it. • The processor executes one job until it is interrupted by some external factor or it goes for an I/O task.
  • 28. 4. Multiprogramming in Operating System Non-multi programmed system’s working – • In a non multi programmed system, As soon as one job leaves the CPU and goes for some other task (say I/O ), the CPU becomes idle. • The CPU keeps waiting and waiting until this job (which was executing earlier) comes back and resumes its execution with the CPU. • So CPU remains free for all this while. • Now it has a drawback that the CPU remains idle for a very long period of time. Also, other jobs which are waiting to be executed might not get a chance to execute because the CPU is still allocated to the earlier job. • This poses a very serious problem that even though other jobs are ready to execute, CPU is not allocated to them as the CPU is allocated to a job which is not even utilizing it (as it is busy in I/O tasks). • It cannot happen that one job is using the CPU for say 1 hour
  • 29. 4. Multiprogramming in Operating System Multi programmed system’s working – • In a multi-programmed system, as soon as one job goes for an I/O task, the Operating System interrupts that job, chooses another job from the job pool (waiting queue), gives CPU to this new job and starts its execution. The previous job keeps doing its I/O operation while this new job does CPU bound tasks. Now say the second job also goes for an I/O task, the CPU chooses a third job and starts executing it. As soon as a • job completes its I/O operation and comes back for CPU tasks, the CPU is allocated to it. • In this way, no CPU time is wasted by the system waiting for the I/O task to be completed. • Therefore, the ultimate goal of multi programming is to keep the CPU busy as long as there are processes ready to execute. This way, multiple programs can be executed on a single processor by executing a part of a program at one time,
  • 30. 4. Multiprogramming in Operating System program A runs for some time and then goes to waiting state. In the mean time program B begins its execution. So the CPU does not waste its resources and gives program B an opportunity to run.
  • 31. 5. Multitasking in Operating System • Multitasking is a logical extension of a multiprogramming system that supports multiple programs to run concurrently. • In a multitasking operating system, more than one task is executed at the same time. • In this technique, multiple tasks, also known as processes, share common processing resources such as a CPU.
  • 32. 5. Multitasking in Operating System Definition – Multitasking operating system provides the interface for executing the multiple program tasks by single user at a same time on the one computer system. For example, any editing task can be performed while other programs are executing concurrently. Other example, user can open Gmail and Power Point same time.
  • 33. 5. Multitasking in Operating System Types of Multitasking Operating System True Multitasking: True multitasking is the capable for executing and process multiple tasks concurrently without taking delay instead of switching tasks from one processor to other processor. It can perform couple of tasks in parallel with underlying the H/W or S/W. Preemptive Multitasking: Pre-emptive multitasking is special task that is assigned to computer operating system, in which it takes decision that how much time spent by one task before assigning other task for using the operating system. Operating system has control for completing this entire process, so it is known as “Pre-emptive”. Cooperative Multitasking Cooperative multitasking is known as “Non-Preemptive Multitasking”. Main goal of Cooperative multitasking is to run currently task, and to release the CPU to allow another task run. This task is performed by calling task YIELD().Context-switch is executed when this function is called.
  • 34. 5. Multitasking in Operating System Advantages of Multitasking Operating System • Time Shareable: In which, all tasks are allocated specific piece of time, so they do not need for waiting time for CPU. • Manage Several Users: This operating system is more comfort for handling the multiple users concurrently, and several programs can run smoothly without degradation of system’s performance. • Secured Memory: Multitasking operating system has well defined memory management, because this operating system does not provide any types of permissions of unwanted programs to wasting the memory. • Great Virtual Memory: Multitasking operating system contains the best virtual memory system. Due to virtual memory, any program do not need long waiting time for completion their tasks, if this problem is occurred then those programs are transferred to virtual memory. • Background Processing: Multitasking operating system creates the better environment to execute the background programs. These background programs are not transparent for normal users, but there programs help to other programs to run smoothly like firewall, antivirus etc.
  • 35. 17.35 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Distributed Operating Systems Topics  Advantages of Distributed Systems  Types of Network-Based Operating Systems  Network Structure  Communication Structure  Communication Protocols  An Example: TCP/IP  Robustness  Design Issues  Distributed File System
  • 36. 17.36 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Distributed OS Objectives  To provide a high-level overview of distributed systems and the networks that interconnect them  To discuss the general structure of distributed operating systems  To explain general communication structure and communication protocols  To describe issues concerning the design of distributed systems
  • 37. 17.37 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Overview  Distributed system is collection of loosely coupled processors interconnected by a communications network  Processors variously called nodes, computers, machines, hosts  Site is location of the processor  Generally a server has a resource a client node at a different site wants to use
  • 38. 17.38 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Reasons for Distributed Systems  Reasons for distributed systems  Resource sharing  Sharing and printing files at remote sites  Processing information in a distributed database  Using remote specialized hardware devices  Computation speedup – load sharing or job migration  Reliability – detect and recover from site failure, function transfer, reintegrate failed site  Communication – message passing  All higher-level functions of a standalone system can be expanded to encompass a distributed system  Computers can be downsized, more flexibility, better user interfaces and easier maintenance by moving from large system to multiple smaller systems performing distributed computing
  • 39. 17.39 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Types of Distributed Operating Systems  Network Operating Systems  Distributed Operating Systems
  • 40. 17.40 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Network-Operating Systems  Users are aware of multiplicity of machines  Access to resources of various machines is done explicitly by:  Remote logging into the appropriate remote machine (telnet, ssh)  Remote Desktop (Microsoft Windows)  Transferring data from remote machines to local machines, via the File Transfer Protocol (FTP) mechanism  Users must change paradigms – establish a session, give network-based commands  More difficult for users
  • 41. 17.41 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Distributed-Operating Systems  Users not aware of multiplicity of machines  Access to remote resources similar to access to local resources  Data Migration – transfer data by transferring entire file, or transferring only those portions of the file necessary for the immediate task  Computation Migration – transfer the computation, rather than the data, across the system  Via remote procedure calls (RPCs)  or via messaging system
  • 42. 17.42 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Distributed-Operating Systems (Cont.)  Process Migration – execute an entire process, or parts of it, at different sites  Load balancing – distribute processes across network to even the workload  Computation speedup – subprocesses can run concurrently on different sites  Hardware preference – process execution may require specialized processor  Software preference – required software may be available at only a particular site  Data access – run process remotely, rather than transfer all data locally  Consider the World Wide Web
  • 43. 17.43 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Network Structure  Local-Area Network (LAN) – designed to cover small geographical area  Multiple topologies like star or ring  Speeds from 1Mb per second (Appletalk, bluetooth) to 40 Gbps for fastest Ethernet over twisted pair copper or optical fibre  Consists of multiple computers (mainframes through mobile devices), peripherals (printers, storage arrays), routers (specialized network communication processors) providing access to other networks  Ethernet most common way to construct LANs  Multiaccess bus-based  Defined by standard IEEE 802.3  Wireless spectrum (WiFi) increasingly used for networking  I.e. IEEE 802.11g standard implemented at 54 Mbps
  • 44. 17.44 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Local-area Network
  • 45. 17.45 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Network Types (Cont.)  Wide-Area Network (WAN) – links geographically separated sites  Point-to-point connections over long-haul lines (often leased from a phone company)  Implemented via connection processors known as routers  Internet WAN enables hosts world wide to communicate  Hosts differ in all dimensions but WAN allows communications  Speeds  T1 link is 1.544 Megabits per second  T3 is 28 x T1s = 45 Mbps  OC-12 is 622 Mbps  WANs and LANs interconnect, similar to cell phone network:  Cell phones use radio waves to cell towers  Towers connect to other towers and hubs
  • 46. 17.46 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Communication Processors in a Wide-Area Network
  • 47. 17.47 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Communication Structure  Naming and name resolution - How do two processes locate each other to communicate?  Routing strategies - How are messages sent through the network?  Connection strategies - How do two processes send a sequence of messages?  Contention - The network is a shared resource, so how do we resolve conflicting demands for its use? The design of a communication network must address four basic issues:
  • 48. 17.48 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Naming and Name Resolution  Name systems in the network  Address messages with the process-id  Identify processes on remote systems by <host-name, identifier> pair  Domain name system (DNS) – specifies the naming structure of the hosts, as well as name to address resolution (Internet)
  • 49. 17.49 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Routing Strategies  Fixed routing - A path from A to B is specified in advance; path changes only if a hardware failure disables it  Since the shortest path is usually chosen, communication costs are minimized  Fixed routing cannot adapt to load changes  Ensures that messages will be delivered in the order in which they were sent  Virtual routing- A path from A to B is fixed for the duration of one session. Different sessions involving messages from A to B may have different paths  Partial remedy to adapting to load changes  Ensures that messages will be delivered in the order in which they were sent
  • 50. 17.50 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Routing Strategies (Cont.)  Dynamic routing - The path used to send a message form site A to site B is chosen only when a message is sent  Usually a site sends a message to another site on the link least used at that particular time  Adapts to load changes by avoiding routing messages on heavily used path  Messages may arrive out of order  This problem can be remedied by appending a sequence number to each message  Most complex to set up  Tradeoffs mean all methods are used  UNIX provides ability to mix fixed and dynamic  Hosts may have fixed routes and gateways connecting networks together may have dynamic routes
  • 51. 17.51 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Routing Strategies (Cont.)  Router is communications processor responsible for routing messages  Must have at least 2 network connections  Maybe special purpose or just function running on host  Checks its tables to determine where destination host is, where to send messages  Static routing – table only changed manually  Dynamic routing – table changed via routing protocol
  • 52. 17.52 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Routing Strategies (Cont.)  More recently, routing managed by intelligent software more intelligently than routing protocols  OpenFlow is device-independent, allowing developers to introduce network efficiencies by decoupling data-routing decisions from underlying network devices  Messages vary in length – simplified design breaks them into packets (or frames, or datagrams)  Connectionless message is just one packet  Otherwise need a connection to get a multi-packet message from source to destination
  • 53. 17.53 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Connection Strategies  Circuit switching - A permanent physical link is established for the duration of the communication (i.e., telephone system)  Message switching - A temporary link is established for the duration of one message transfer (i.e., post-office mailing system)  Packet switching - Messages of variable length are divided into fixed-length packets which are sent to the destination  Each packet may take a different path through the network  The packets must be reassembled into messages as they arrive  Circuit switching requires setup time, but incurs less overhead for shipping each message, and may waste network bandwidth  Message and packet switching require less setup time, but incur more overhead per message
  • 54. 17.54 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Communication Protocol  Layer 1: Physical layer – handles the mechanical and electrical details of the physical transmission of a bit stream  Layer 2: Data-link layer – handles the frames, or fixed- length parts of packets, including any error detection and recovery that occurred in the physical layer  Layer 3: Network layer – provides connections and routes packets in the communication network, including handling the address of outgoing packets, decoding the address of incoming packets, and maintaining routing information for proper response to changing load levels The communication network is partitioned into the following multiple layers:
  • 55. 17.55 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Communication Protocol (Cont.)  Layer 4: Transport layer – responsible for low-level network access and for message transfer between clients, including partitioning messages into packets, maintaining packet order, controlling flow, and generating physical addresses  Layer 5: Session layer – implements sessions, or process-to- process communications protocols  Layer 6: Presentation layer – resolves the differences in formats among the various sites in the network, including character conversions, and half duplex/full duplex (echoing)  Layer 7: Application layer – interacts directly with the users, deals with file transfer, remote-login protocols and electronic mail, as well as schemas for distributed databases
  • 56. 17.56 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Communication Via ISO Network Model
  • 57. 17.57 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition The ISO Protocol Layer
  • 58. 17.58 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition The ISO Network Message
  • 59. 17.59 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition The TCP/IP Protocol Layers
  • 60. 17.60 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Example: TCP/IP  The transmission of a network packet between hosts on an Ethernet network  Every host has a unique IP address and a corresponding Ethernet Media Access Control (MAC) address  Communication requires both addresses  Domain Name Service (DNS) can be used to acquire IP addresses  Address Resolution Protocol (ARP) is used to map MAC addresses to IP addresses  Broadcast to all other systems on the Ethernet network  If the hosts are on the same network, ARP can be used  If the hosts are on different networks, the sending host will send the packet to a router which routes the packet to the destination network
  • 61. 17.61 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition An Ethernet Packet
  • 62. 17.62 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Robustness  Failure detection  Reconfiguration
  • 63. 17.63 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Failure Detection  Detecting hardware failure is difficult  To detect a link failure, a heartbeat protocol can be used  Assume Site A and Site B have established a link  At fixed intervals, each site will exchange an I-am-up message indicating that they are up and running  If Site A does not receive a message within the fixed interval, it assumes either (a) the other site is not up or (b) the message was lost  Site A can now send an Are-you-up? message to Site B  If Site A does not receive a reply, it can repeat the message or try an alternate route to Site B
  • 64. 17.64 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Failure Detection (Cont.)  If Site A does not ultimately receive a reply from Site B, it concludes some type of failure has occurred  Types of failures: - Site B is down - The direct link between A and B is down - The alternate link from A to B is down - The message has been lost  However, Site A cannot determine exactly why the failure has occurred
  • 65. 17.65 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Reconfiguration  When Site A determines a failure has occurred, it must reconfigure the system: 1. If the link from A to B has failed, this must be broadcast to every site in the system 2. If a site has failed, every other site must also be notified indicating that the services offered by the failed site are no longer available  When the link or the site becomes available again, this information must again be broadcast to all other sites
  • 66. 17.66 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9th Edition Design Issues  Transparency – the distributed system should appear as a conventional, centralized system to the user  Fault tolerance – the distributed system should continue to function in the face of failure  Scalability – as demands increase, the system should easily accept the addition of new resources to accommodate the increased demand  Consider Hadoop open source programming framework for processing large datasets in distributed environments (based on Google search indexing)  Clusters – a collection of semi-autonomous machines that acts as a single system
  • 67. Real Time System • A system is said to be Real Time if it is required to complete it’s work & deliver it’s services on time. • Example – Flight Control System – All tasks in that system must execute on time. • Non Example – PC system 67
  • 68. How RTOS is different from OS • The key difference between general- computing operating systems and real-time operating systems is the need for "deterministic" timing behavior, general- computing. • non-real-time operating systems are often quite non-deterministicII. 68
  • 69. • Real-time operating systems are often uses in embedded solutions, that is, computing platforms that are within another device. • While real-time operating systems are typically designed for and used with embedded systems. 69
  • 70. Hard and Soft Real Time Systems • Hard Real Time System – Failure to meet deadlines is fatal – example : Flight Control System • Soft Real Time System – Late completion of jobs is undesirable but not fatal. – System performance degrades as more & more jobs miss deadlines – Online Databases 70
  • 71. 71 Classification of RTOS Kernels • RT kernels vs modified kernels of standard OS – Fast proprietary kernels: may be inadequate for complex systems, because they are designed to be fast rather than to be predictable in every respect, e.g., QNX, PDOS, VCOS, VTRX32, VxWORKS – RT extensions to standard OS: RT-kernel runs all RT-tasks and standard-OS executed as one task on it • General RTOS vs RTOS for specific domains • Standard APIs vs proprietary APIs – e.g. POSIX RT-Extension of Unix, ITRON, OSEK)
  • 72. INTRODUCTION TO RTOS • Tasks and Task States • A task – a simple subroutine • ES application makes calls to the RTOS functions to start tasks, passing to the OS, start address, stack pointers, etc. of the tasks • Task States: – Running – Ready (possibly: suspended, pended) – Blocked (possibly: waiting, dormant, delayed) – [Exit] – Scheduler – schedules/shuffles tasks between Running and Ready states – Blocking is self-blocking by tasks, and moved to Running state via other tasks’ interrupt signaling (when block-factor is removed/satisfied) – When a task is unblocked with a higher priority over the ‘running’ task, the scheduler ‘switches’ context immediately (for all pre- emptive RTOSs) 72
  • 73. 73 A Sample Real Time System (1)
  • 74. Features of RTOS’s • Scheduling. • Resource Allocation. • Interrupt Handling. • Other issues like kernel size. 74
  • 75. 75 Why Use an RTOS? • Can use drivers that are available with an RTOS • Can focus on developing application code, not on creating or maintaining a scheduling system • Multi-thread support with synchronization • Portability of application code to other CPUs • Resource handling by RTOS • Add new features without affecting higher priority functions • Support for upper layer protocols such as: – TCP/IP, USB, Flash Systems, Web Servers, – CAN protocols, Embedded GUI, SSL, SNMP
  • 76. 76 Characteristics of Embedded OS • Device drivers often not integrated into kernel – Embedded systems often application-specific  specific devices  move device out of OS to tasks – For desktop OS, many devices are implicitly assumed to be presented, e.g., disk, network, audio, etc.  they need to be integrated to low-level SW stack Embedded OS Standard OS kernel
  • 77. 77 Characteristics of Embedded OS • Real-time capability – Many embedded systems are real-time (RT) systems and, hence, the OS used in these systems must be real-time operating systems (RTOSs) • Features of a RTOS: – Allows multi-tasking – Scheduling of the tasks with priorities – Synchronization of the resource access – Inter-task communication – Time predictable – Interrupt handling
  • 78. 78 Requirements for RTOS • Predictability of timing – The timing behavior of the OS must be predictable – For all services of the OS, there is an upper bound on the execution time – Scheduling policy must be deterministic – The period during which interrupts are disabled must be short (to avoid unpredictable delays in the processing of critical events)
  • 79. 79 Requirements for RTOS • OS should manage timing and scheduling – OS possibly has to be aware of task deadlines; (unless scheduling is done off-line). – Frequently, the OS should provide precise time services with high resolution. • Important if internal processing of the embedded system is linked to an absolute time in the physical environment • Speed: – The OS must be fast
  • 80. Programming languages Used • C is most widely used in RTOS programming • C++ and Ada are the next more popular for large projects. • Assembly languages for increasing efficiency and reusing the previous code • Java may also be a choice for some applications 80
  • 81. Which is the Best? • It is always very difficult to judge which RTOS is the best and which is the worst. It depends on the application and interests of the user. Among the above, Linux is royalty free but it has serious drawbacks if it comes to real-time behavior. The VxWorks is a very old and stable RTOS. Similarly Windows CE 5.0 version RTOS is a robust and stable regarding the real-time behavior. 81
  • 82. 82 Functionality of RTOS Kernel • Processor management • Memory management • Timer management • Task management (resume, wait etc) • Inter-task communication and synchronization resource management
  • 84. 84 RTOS Kernel • RTOS Kernel provides an Abstraction layer that hides from application software the hardware details of the processor / set of processors upon which the application software shall run. Application Software RTOS Hardware
  • 85. • Type of RTOS kernel – Monolithic kernel – less run-time overhead but not extensible – Microkernel – high run-time overhead but highly extensible 85
  • 86. 86 What is MQX? • Multi-threaded, priority-based RTOS provides – Task scheduling – Task management – Interrupt handling – Task synchronization: mutexes, semaphores, events, messages – Memory management – IO subsystems – Kernel logging
  • 87. 87 MQX Facilities Required Optional MQX, RTCS, etc are structured as a set of C files built by the user into a library that is linked into the same code space as the application. Libraries contain all functions but only called functions are included with the image.
  • 88. 88 Message passing in RTOS • In RTOS, the OS copies a pointer to the message, delivers the pointer to the message-receiver task, and then deletes the copy of the pointer with message-sender task. Message Sender Task RAM Message Receiver Task RTOS msg_ptr msg_ptr Message Message
  • 89. 89 Task Management • Set of services used to allow application software developers to design their software as a number of separate chunks of software each handling a distinct topic, a distinct goal, and sometimes its own real-time deadline. • Main service offered is Task Scheduling – controls the execution of application software tasks – can make them run in a very timely and responsive fashion.
  • 90. 90
  • 91. 91 Task Scheduling • Non Real -time systems usually use Non-preemptive Scheduling – Once a task starts executing, it completes its full execution • Most RTOS perform priority-based preemptive task scheduling. • Basic rules for priority based preemptive task scheduling – The Highest Priority Task that is Ready to Run, will be the Task that Must be Running.
  • 92. Scheduling in RTOS • Running (executing on the CPU); • Ready (ready to be executed); • Blocked (waiting for an event, I/O for example) 92
  • 93. Scheduling Algorithms in RTOS • Clock Driven Scheduling • Weighted Round Robin Scheduling • Priority Scheduling (Greedy / List / Event Driven) • Cooperative scheduling • Preemptive scheduling • Rate-monotonic scheduling 93
  • 94. • Fixed priority pre-emptive scheduling, an implementation of preemptive time slicing • Fixed-Priority Scheduling with Deferred Preemption • Fixed-Priority Non-preemptive Scheduling • Critical section preemptive scheduling • Static time scheduling • Earliest Deadline First approach • Stochastic digraphs with multi-threaded graph traversal 94
  • 95. Scheduling Algorithms in RTOS • Clock Driven – All parameters about jobs (release time/ execution time/deadline) known in advance. – Schedule can be computed offline or at some regular time instances. – Minimal runtime overhead. – Not suitable for many applications. 95
  • 96. Peripheral devices and protocols • Interfacing Serial/parallel ports, USB, I2C, PCMCIA, IDE • Communication Serial, Ethernet, Low bandwidth radio, IrDA, 802.11b based devices • User Interface LCD, Keyboard, Touch sensors, Sound, Digital pads, Webcams • Sensors A variety of sensors using fire, temperature, pressure, water level, seismic, sound, vision 96
  • 97. 97 Dynamic Memory Allocation in RTOS • RTOS does it by a mechanism known as Pools. • Pools memory allocation mechanism allows application software to allocate chunks of memory of 4 to 8 different buffer sizes per pool. • Pools avoid external memory fragmentation, by not permitting a buffer that is returned to the pool to be broken into smaller buffers in the future. • When a buffer is returned the pool, it is put onto a free buffer list of buffers of its own size that are available for future re-use at their original buffer size
  • 98. Process & Program • A process invokes or initiates a program. It is an instance of a program that can be multiple and running the same application. • Example:- Notepad is one program and can be opened twice. 98
  • 100. Overview http://cmer.cis.uoguelph.ca 10 0 • Introduction • Mobile Operating System Structure • Mobile Operating System Platforms • Java ME Platform • Palm OS • Symbian OS • Linux OS • Windows Mobile OS • BlackBerry OS • iPhone OS • Google Android Platform
  • 101. OS Features http://cmer.cis.uoguelph.ca 10 1 • Features – Multitasking – Scheduling – Memory Allocation – File System Interface – Keypad Interface – I/O Interface – Protection and Security – Multimedia features
  • 102. Introduction http://cmer.cis.uoguelph.ca 10 2 • Design and capabilities of a Mobile OS (Operating System) is very different than a general purpose OS running on desktop machines: – mobile devices have constraints and restrictions on as screen size, communication their physical characteristic such memory, processing power and etc. – Scarce availability of battery power – Limited amount of computing and capabilities
  • 103. Introduction (Cont.) http://cmer.cis.uoguelph.ca 10 3 • Thus, they need different types of operating systems depending on the capabilities they support. e.g. a PDA OS is different from a Smartphone OS. • Operating System is a piece of software responsible for management of operations, control, coordinate the use of the hardware among the various application programs, and sharing the resources of a device.
  • 104. Operating System Structure http://cmer.cis.uoguelph.ca 10 4 • A mobile OS is a software platform on top of which other programs called application programs, can run on mobile devices such as PDA, cellular phones, smartphone and etc. Low-Level Hardware, Manufacturer Device Drivers Device Operating System Base, Kernel OS Libraries Applications
  • 105. Mobile Operating System Platforms http://cmer.cis.uoguelph.ca 10 5 • There are many mobile operating systems. The followings demonstrate the most important ones: – Java ME Platform – Palm OS – Symbian OS – Linux OS – Windows Mobile OS – BlackBerry OS – iPhone OS – Google Android Platform
  • 106. Java ME Platform http://cmer.cis.uoguelph.ca 10 6 • J2ME platform is a set of technologies, specifications and libraries developed for small devices like mobile phones, pagers, and personal organizers. • Java ME was designed by Sun Microsystems. It is licensed under GNU General Public License
  • 107. Java ME Architecture • Java ME platforms are composed of the following elements: Device/ Hardware Native Operating System Configuration Profile Optional Package s Vendor specific classes - OEM Application http://cmer.cis.uoguelph.ca 10 7
  • 108. Java ME Main Components http://cmer.cis.uoguelph.ca 10 8 • Configuration: it defines a minimum platform including the java language, virtual machine features and minimum class libraries for a grouping of devices. E.g. CLDC • Profile: it supports higher-level services common to a more specific class of devices. A profile builds on a configuration but adds more specific APIs to make a complete environment for building applications. E.g. MIDP
  • 109. Java ME http://cmer.cis.uoguelph.ca 10 9 • Optional Package: it provides specialized service or functionality that may not be associated with a specific configuration or profile. The following table lists some of the available packages: Packages Description JSR 75 - PIM PDA Package JSR 82 - BTAPI Java APIs for Bluetooth JSR 120 - WMA Wireless Messaging API JSR 172 J2ME Web Service JSR 179 Location API for J2ME
  • 110. Java ME Platforms • It includes two kinds of platforms: – High-end platform for high-end consumer devices. E.g. TV set-top boxes, Internet TVs, auto-mobile navigation systems – Low-end platform for low-end consumer devices. E.g. cell phones, and pagers Platforms Device Characteristics “High-End” consumer devices • a large range of user interface capabilities • total memory budgets starting from about two to four megabytes • persistent, high-bandwidth network connections, often using TCP/IP “Low-end” consumer devices •simple user interfaces •minimum memory budgets starting from about 128–256 kilobytes •low bandwidth, intermittent network connections that is often not based on the TCP/IP protocol suite. • most of these devices are battery-operated http://cmer.cis.uoguelph.ca 11 0
  • 111. Java ME Platforms (Cont.) • The following figures demonstrate the elements of these two types of platforms: KVM CLDC MIDP JVM Foundation Profile Personal Profile Fig.1- Low-end consumer device platform architecture Fig.2- High-end consumer device platform architecture CDC http://cmer.cis.uoguelph.ca 11 1
  • 112. Java ME CLDC http://cmer.cis.uoguelph.ca 11 2 • We focus on “Low-end” consumer devices: – CLDC configuration address the following areas: • Java language and virtual machine features • Core Java libraries • CLDC Specific Libraries (Input/output & Networking) • Internationalization: There is a limited support for converting Unicode characters to and from a sequence of bytes. • Security: CLDC addresses the following topics to security – At the low-level the virtual machine security is achieved by requiring downloaded Java classes to pass a class file verification step. – Applications are protected from each other by being run in a closed “sandbox” environment. – Classes in protected system packages cannot be overridden by applications.
  • 113. Java ME CLDC (Cont.) http://cmer.cis.uoguelph.ca 11 3 • The entire CLDC implementation (static size of the K virtual machine + class libraries) should fit in less than 128 kilobytes. • It guarantee portability and interoperability of profile- level code between the various kinds of mobile (CLDC) devices
  • 114. Palm OS http://cmer.cis.uoguelph.ca 11 4 • Palm OS[1] is an embedded operating system designed for ease of use with a touchscreen-based graphical user interface. • It has been implemented on a wide variety of mobile devices such as smart phones, barcode readers, and GPS devices. • It is run on Arm architecture-based processors. It is designed as a 32-bit architecture.
  • 115. Palm OS Features http://cmer.cis.uoguelph.ca 11 5 [1,2,3] are: • The key features of Palm OS – A single-tasking OS: • Palm OS Garnet (5.x) uses a kernel developed at Palm, but it does not expose tasks or threads to user applications. In fact, it is built with a set of threads that can not be changed at runtime. • Palm OS Cobalt (6.0 or higher) does support multiple threads but does not support creating additional processes by user applications. • Palm OS has a preemptive multitasking kernel that provides basic tasks but it does not expose this feature to user applications .
  • 116. Palm OS Features (Cont.) http://cmer.cis.uoguelph.ca 11 6 – Memory Management: • The Memory, RAM and ROM, for each Palm resides on a memory module known as card. In other words, each memory card contains RAM, ROM or both. Palms can have no card, one card or multiple cards. – Expansion support[3]: • This capability not only augments the memory and I/O , but also it facilitates data interchanges with other Palm devices and with other non-Palm devices such as digital cameras, and digital audio players. – Handwriting recognition input called Graffiti 2
  • 117. Palm OS Features (Cont.) http://cmer.cis.uoguelph.ca 11 7 – HotSync technology for synchronization with PC computers – Sound playback and record capabilities – TCP/IP network access – Support of serial port, USB, Infrared, Bluetooth and Wi-Fi connections – Defined standard data format for PIM (Personal Information Management) applications to store calendar, address, task and note entries, accessible by third-party applications
  • 118. Palm OS Features (Cont.) http://cmer.cis.uoguelph.ca 11 8 – Security model: • Device can be locked by password, arbitrary application records can be made private [2] • Palm OS Cobalt include a certificate manager. The Certificate Manager handles X.509 certificates[3].
  • 119. Symbian OS http://cmer.cis.uoguelph.ca 11 9 • Symbian OS is 32 bit, little-endian operating system, running on different flavors of ARM architecture[4]. • It is a multitasking operating system and very less dependence on peripherals. • Kernel runs in the privileged mode and exports its service to user applications via user libraries.
  • 120. Symbian OS Structure http://cmer.cis.uoguelph.ca 12 0 • User libraries include networking, communication, I/O interfaces and etc. • Access to these services and resources is coordinated through a client-server framework. • Clients use the service APIs exposed by the server to communicate with the server. • The client-server communication is conducted by the kernel.
  • 121. Symbian OS Structure (Cont.) • The following demonstrates the Symbian OS architecture[5]: Symbian OS Libraries KVM Application Engines Servers Symbian OS Base- Kernel Hardware http://cmer.cis.uoguelph.ca 12 1
  • 122. Symbian OS Features http://cmer.cis.uoguelph.ca 12 2 • Real-time: it has a real-time, multithreaded kernel. • Data Caging [6]: it allows applications to have their own private data partition. This feature allows for applications to guarantee a secure data store. It can be used for e- commerce applications, location aware applications and etc. • Multimedia: it supports audio, video recording, playback and streaming, and Image conversion.
  • 123. Symbian OS Features (Cont.) http://cmer.cis.uoguelph.ca 12 3 • Platform Security [6]: Symbian provides a security mechanism against malware. It allows sensitive operations can be accessed by applications which have been certified by a signing authority. In addition, it supports full encryption and certificate management, secure protocols ( HTTPS, TLS and SSL) and WIM framework.
  • 124. Symbian OS Features (Cont.) http://cmer.cis.uoguelph.ca 12 4 it supports Unicode • Internationalization support: standard. [6]: • Fully object-oriented and component- based • Optimized memory management • Client- server architecture described in previous slides, it provides simple and high-efficient inter-process communication. This feature also eases porting of code written for other platforms to Symbian OS.
  • 125. Symbian OS Features (Cont.) http://cmer.cis.uoguelph.ca 12 5 • A Hardware Abstraction Layer (HAL): This layer provides a consistent interface to hardware and supports device- independency • Kernel offers hard real-time guarantees to kernel and user mode threads.
  • 126. Embedded Linux OS http://cmer.cis.uoguelph.ca 12 6 • It is known as Embedded Linux which is used in embedded computer systems such as mobile phones, Personal Digital Assistants, media players and other consumer devices. • In spite of Linux operating system designed for Servers and desktops, the Embedded Linux is designed for devices which have relatively limited resources such as small size of RAM, storage, screen, limited power and etc. Then, they should have an optimized kernel.
  • 127. Embedded Linux OS http://cmer.cis.uoguelph.ca 12 7 • It is a Real-Time Operating System (RTOS). It meets deadlines and switch context • It has relatively a small footprint. Today, mobile phones can ship with a small memory. Thus, OS must not seek to occupy a large amount of available storage. It should have a small foot print. Theoretically, they deploy in a footprint of 1MB or less. • It is open source. It has no cost for licensing. • Examples: Motorola Mobile phones such as RAZR V8, RAZR V9, A1200 are based on MontaVista Linux.
  • 128. Embedded Linux OS http://cmer.cis.uoguelph.ca 12 8 • ARM and MIPS structures [7]: Embedded CPU architectures like ARM and MIPS offer small instruction that special execution modes size and consequently generates shrinks smaller sets and application code.
  • 129. Windows Mobile OS http://cmer.cis.uoguelph.ca 12 9 • Windows Mobile is a compact operating system designed for mobile devices and based on Microsoft Win32. • It is run on Pocket PCs, Smartphones and Portable media centers. • It provides ultimate interoperability. Users with various requirements are able to manipulate their data.
  • 130. Google Android Platform http://cmer.cis.uoguelph.ca 13 0 • It is a platform and an operating system for mobile devices based on the Linux operating system. • It allows developers design applications in a java-like language using Google-developed java libraries. • It supports a wide variety of connectivity such as GSM, WiFi, 3G, … • The Operating system has not been implemented yet (Feb, 2008). Several prototypes have been proposed.
  • 131. Google Android Platform Android architecture: http://code.google.com/android/what-is-android.html http://cmer.cis.uoguelph.ca 13 1
  • 132. Google Android Platform http://cmer.cis.uoguelph.ca 13 2 • As demonstrated in the previous slide, the Android platform contains the following layers: – Linux Kernel: Android relies on Linux for core system services such as security, memory management, process management and etc. – Android [7] Runtime: it provides a set of core libraries which supports most of the functionality in the core libraries of Java. The Android Virtual Machine known as Dalvik VM relies on the linux kernel for some underlying functionality such as threading,…
  • 133. Google Android Platform http://cmer.cis.uoguelph.ca 13 3 – Libraries: Android includes a set of C/C++ libraries. These libraries are exposed to developers through the Android application framework. They include media libraries, system C libraries, surface manager, 3D libraries, SQLite and etc. For more details, please visit the following link: http://code.google.com/android/what-is-android.html – Application Framework: it provides an access layer to the framework APIs used by the core applications. It allows components to be used by the developers.
  • 134. iPhone OS http://cmer.cis.uoguelph.ca 13 4 • iPhone OS is an operating system run on iPhone and iPod. • It is based on Mach Kernel and Drawin core as Mac OS X. • The Mac OS X kernel includes the following component: – Mach Kernel – BSD – I/O component – File Systems – Networking components
  • 135. iPhone OS • The following is Mac OS X Architecture [8]: Kernel Environment Core Services Application Services QuickTime Classic Carbon Cocoa JDK BSD http://cmer.cis.uoguelph.ca 13 5
  • 136. iPhone OS http://cmer.cis.uoguelph.ca 13 6 • Mac OS X has a preemptive multitasking environment. • Preempting is the act of taking the control of operating system from one task and giving it to another task. • It supports real-time behavior. • In Mac OS X, each application has access to its own 4 GB address space.
  • 137. iPhone OS http://cmer.cis.uoguelph.ca 13 7 • Not any application can directly modify the memory of the kernel. It has a strong mechanism for memory protection. • For more details about kernel architecture, please visit the following link: http://developer.apple.com/documentation/Darwin/Conce ptual/KernelProgramming/Architecture/Architecture.html