Please enable JavaScript.
Coggle requires JavaScript to display documents.
INTRODUCTION TO OPERATING SYSTEM - Coggle Diagram
INTRODUCTION TO OPERATING SYSTEM
Defination
A program that acts as an intermediary between a user of a computer and the computer hardware.
Four Component of Operating System
Operating Sytem
Controls and coordinates use of hardware among various applications and users.
Users
People, machines,
other computers.
Application Programs
Define the way in which the system resources are used to solve the computing problems of the users.
Hardware
Provides basic computing
resources.
Basic Function of Operating System
Permit File Operations
Create, Delete, Edit, Rename and more
Interface
Security
Password
User accounts
Computer operation
Manage
Memory
Processor time
Schedule programs
Resources usage
Control
Program execution
Input/Output devices
Product of OS
Closed Source System
Only the final product is made available.
Distributed directly to end user or via vendors.
Have copyright/patented, legally protected as intellectual property.
Open Source System
Can be freely used.
Can be freely changed.
Can be shared in modified/unmodified form.
Made by many people.
Can be freely shared.
Various of OS Structure
Monolithic
The earliest and most common OS
architecture.
Every component of OS contained in the kernel and can directly communicate with any other components.
The kernel runs with unrestricted access.
Monolithic Architecture Characteristics
1 source code
1 program generated
No structure.
Monolithic Architecture
Design to handle multiple related tasks. They're typically complex applications that encompass several tightly coupled functions.
All user program can access components of kernel through System Call (syscall).
Monolithic Strength and Weakness
Strength
Highly efficient & good performance.
Shared kernel space.
The monolithic kernel is a static single
binary file.
Weakness
Inflexible.
No hidden information.
Chaotic.
Difficult to understand.
To add any new service, the entire operating system needs to be modified by the user.
Layered
Designed to overcome the issue of
monolithic architecture.
Components were grouped according to
their similarity of functions into layers.
Implementation of each layer can be modified without requiring
any modification to other layers. (called modular)
Each component hides how it performs its job and presents a standard interface that other components can use to request its services.
Lower performances compare to monolithic kernel.
Kernel susceptible to damage from errant or malicious code
because all layer has unrestricted access to the system.
Example: Windows XP, Linux, Windows 2000 implement some
level of layering.
Each layer communicates ONLY with those immediately
above and below it.
Lower-level layers provide services to higher-level layer
using interfaces that hide their implementation.
There can be N number of layers, each built on top of lower layers. The bottom layer (layer 0), is the hardware, the highest ( layer N) is the user interface.
Layered Strength and Weakness
Strength
Modularity.
Simplicity.
Flexibility
Scalability.
Portability.
Weakness
More risk of
breakdown.
Issues related to
higher/lower layers.
Sluggish operation
mode on application.
Data overhead
Microkernel
Aimed at migrating services of an OS from
monolithic kernel into user level process.
Divide OS into several processes, each
implements a single set of services.
Example: I/O servers, memory server,
process server
Developed to take out of the kernel as much functionally as possible, in order to :
▪ limit the code executed in privileged mode and
▪ to allow easy modifications and extensions.
Allows us to build a number of different OS
using the same micro-kernel.
How they work
Components above microkernel communicate directly with one another, although using message that pass through the microkernel itself.
Microkernel validate messages, passes them between the components and grants access to hardware.
Example: C-DAC microkernel, Mach, Windows NT,
Chorus.
Networked and Distributed
Networked and distributed are being used in network
operating system.
A network operating system(NOS) is a specialized operating system for a network device such as a router, switch or firewall.
It enables process to access resources (e.g file) that
reside on other independent computers on a network.
The client computers in such a network request resources-such as files and processor time and the server respond with the appropriate resource.
A network operating system was an operating system for a
computer which implemented network capabilities.
Operating systems with a network stack allowed personal computers to participate in a client-server architecture (this enables sharing of resources)
Client-server architecture then replaced by peer-to-peer networks. (not only can share resources but also files from other computer).
Nowadays, distributed computing and groupware applications are used. ( Computer of different platform, brands, size can now communicate)
OS in Different System
Single processor system
These systems range from PDAs to mainframes.On a single-processor system,
◦ there is ONE main CPU capable of executing a general purpose instruction set, including instructions from user processes.
◦ Almost all systems have other special-purpose processors as well.
The special-purpose processors are like disk, keyboard, and graphics controllers; or, on mainframes, it can be like I/O processors that move data rapidly among the components of the system.
Special-purpose processors:◦ Run a limited instruction set and do not run user processes.◦ Sometimes managed by the operating system
Special-purpose processors are low-level components built into the hardware.
The OS cannot communicate with these processors; they do their jobs autonomously.
Having special purpose microprocessors does not make a single-processor
system become a multiprocessor
If there is only one general-purpose CPU, then the system is a single-processor
system.
Multiprocessor system
Multiprocessor system is a kind of processing system where two or more processors work together to process more than one program at one time. It helps the system to complete work in shorter period of time.
Also known as: ◦ parallel systems or ◦ tightly coupled systems.
This systems have two or more processors in close communication, sharing the computer bus and sometimes the clock, memory, and peripheral devices.
Multiprocessor systems advantages
Increased throughput ▪ By increasing the number of processors, we expect to get more work done in less time.▪When 1 task is done cooperatively by multiple processors, works can be done faster an less error
Economy of scale ▪ Multiprocessor systems can cost less than equivalent multiple single-processor systems, because they can share peripherals, mass storage, and power supplies.▪ If several programs operate on the same set of data, it is cheaper to store those data on one disk and to have all the processors share them.
Increased reliability ▪ If functions can be distributed properly among several processors, then the failure of one processor will not halt the system, only slow it down. ▪ If we have 10 processors and 1 fails, then each of the remaining nine processors can 'help' do the work of the failed processor Thus, the entire system runs only 10 percent slower, rather than failing altogether.
Clustered systems
Clustering is usually used to provide high-availability service; that is, service will continue even if one or more systems in the cluster fail.
High availability is generally obtained by adding a level of redundancy in the system.
A layer of cluster software runs on the cluster nodes. Each node can monitor one or more of the others (over the LAN).
If the monitored machine fails, the monitoring machine can take ownership of its storage and restart the applications that were running on the failed machine.
The users and clients of the applications see only a brief interruption of a service.
Clustering structure
Asymmetrically
One machine work, another standby.
Symmetrically
All machine work, monitoring each other.
Component of OS
Kernel
Represents the operating system’s basic functions such as management of memory, processes, files, main inputs/outputs and communication functionalities. This components run all the time a computer is turned on.
Shell
Allowing communication with the operating system via a control language, letting the user control the peripherals without knowing the characteristics of the hardware used, management of physical addresses
File system
Allowing files to be recorded in a tree structure.
Concept of relation to OS
Multitasking
The user gives instructions to the OS or to a program
directly, and receives an immediate response.
OS handles multitasking in the way that it can handle multiple operations / executes multiple programs at a time.
Multitasking OS are also known as Time-sharing
systems.
These OS were developed to provide interactive use
of a computer system at a reasonable cost.
Multiprogramming
When two or more programs are residing in memory at the same time, then sharing the processor is referred to the multiprogramming.
Multiprogramming assumes a single shared
processor.
Multiprogramming increases CPU utilization by organizing jobs so that the CPU always has one to execute.
Goal of multiprogramming is to efficiently utilize all
of the computing resources.
When a job issues an I/O request (e.g., open a file, When a job issues an I/O request (e.g., open a file, request is fulfilled.
The CPU then becomes idle (the job is blocked on
the request).
Time sharing
Sharing of a computing resource among many
users by means of multiprogramming and multitasking.
In time sharing, the CPU executes multiple jobs by switching among them, but switching occur so frequently that the users can interact with each program while it is running.
Switching between users is very fast.
Goal is to give the illusion that each user has own
machine.
Buffering
Buffering is a method of overlapping the computation
of a job with its execution.
The buffer provides a waiting station where data can
rest while the slower device catches up.
It temporarily stores input or output data in an attempt to better match the speeds of two devices such as a fast CPU and a slow disk drive.
If, for example, the CPU writes information to the buffer, it can continue in its computation while the disk drive stores the information.
Spooling
Spooling refers to a process of transferring data by placing it in a temporary working area where another program may access it for processing at a later point in time.
Spooling refers to putting jobs in a buffer, a special area in memory or on a disk where a device can access them when it is ready.
With spooling, the disk is used as a very large buffer. Usually
complete jobs are queued on disk to be completed later.
A typical example is the spooler for a printer. When a print job is issued, the spooler takes care of it, sending it to the printer if it is not busy, or storing it on disk otherwise.
Caching
Copying information into faster storage system; main memory
can be viewed as a last cache for secondary storage.
Important principle, performed at many levels in a computer (in
hardware, operating system, software)
Information in use copied from slower to faster storage temporarily
Faster storage (cache) checked first to determine if information is there
• If it is, information used directly from the cache (fast)
• If not, data copied to cache and used there.
Cache smaller than storage being cached
• Cache management important design problem
• Cache size and replacement policy
Interaction between Application and OS
Shell
Kernel
Hardware
Application
Users
Utilities
Utilities, Application and Hardware all interacts with the operating system in order to accomplish their goals.
Users can only interact with the operating system through communication with applications.
Shell is the only component that could directly communicate with the kernel.
Relationship Between System Calls and Application
Programming Interface (API)
System call
User programs ask the OS to access system resources
directly for them
Typically written in a high-level language (C or C++)
OS Services mostly accessed by programs via a high-level Application Program Interface (API) rather than direct system call use.
OS provides a set of functions that can be called by user programs to request for OS services. These functions are called “system calls”
System calls run in kernel mode.
When the system call finishes, processor returns to
the user program and runs in user mode.
Programming interface to the services provided by
the OS
Application Programming Interface (API)
clearly defines how to call functions and what the results are. (API
is specification, not implementation).
User programs that follow the API’s definition are portable. An API can provide a common interface for different implementations of a service.
For example, the UNIX file system API is the same for all kinds of
devices.
X windows API has many implementations on different machine
architectures
Using an API allows upgrading system software without changing user programs
User Interface
The system by which people (users) interact with a machine. The user interface includes hardware (physical) and software (logical) components.
User interfaces exist for various systems, and provide a means of:
-Input, allowing the users to manipulate a system, and/or
-Output, allowing the system to indicate the effects of the users'
manipulation.
The user interface has two main components:
◦ Presentation language, which is the computer-to-human part of the transaction.
◦ Action language that characterizes the human-tocomputer portion
There are several types of user interfaces:
Command Line Interfaces
CLI are often used by programmers and system administrators, in engineering and scientific environments, and by technically advanced personal computer users.
Graphical User Interfaces (GUIs)
type of user interface item that allows people to interact with programs in more ways than typing such as computers
hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment with images rather than text commands.
A GUI offers graphical icons, and visual indicators, as opposed to text-based interfaces, typed command labels or text navigation to fully represent the information and actions available to a user.
Voice Actuated Interfaces.
It makes human interaction with computers possible through a voice/speech platform in order to initiate an automated service or process.
This is the interface to any speech application.
Controlling a machine by simply talking to it was science fiction only a short time ago.
However, with advances in technology, this interface have become more common place, and people are taking advantage of the value that these hands-free, eyes-free interfaces provide in many situations.
There are two different types of voice recognition:
◦ Continuous speech systems, allowing for dictation.
◦ Speaker independence, so people can enter commands or words at a given workstation
Web Form Interfaces.
Web Form interfaces are onscreen forms displaying fields containing data items or parameters that need to be communicated to the user.
Web Form interfaces may be implemented using the Web.
A Web Form allows a user to enter data that is sent to a server for
processing.
Web forms resemble paper forms because internet users fill out the forms using checkboxes, radio buttons, or text fields.
For example, Web Forms can be used to enter shipping or credit card data to order a product or can be used to retrieve data (e.g: searching on a search engine).
In addition to functioning as input templates for new information, Web Forms can also be used to query and display existing data in a similar manner to mail merge forms, with the same advantages.