OS (Unit 1)
OS (Unit 1)
Disadvantage:
o Its speed is dependent on the bandwidth or throughput of the datapath between the
processor and memory. This is called the von Neumann bottleneck.
Operating System Structure:
• The structure of the OS depends mainly on how the various standard components of the
operating system are interconnected and melded into the kernel.
• A design known as an operating system enables user application programs to communicate
with the machine’s hardware.
• The operating system is a component of every segment.
• The strategy for integrating different operating system components within the kernel can
be thought of as an operating system structure.
• It also defines the operating system structure.
o Simple Structure
o Monolithic Structure
o Layered Approach Structure
o Micro-Kernel Structure
o Exo-Kernel Structure
o Virtual Machines
Simple structure
• Such operating systems do not have well-defined structures and are small, simple, and
limited.
• The interfaces and levels of functionality are not well separated.
• MS-DOS is an example of such an operating system.
• In MS-DOS, application programs are able to access the basic I/O routines.
• These types of operating systems cause the entire system to crash if one of the user
programs fails.
• A diagram of the structure of MS-DOS is shown below.
Advantages:
• Simple to develop.
• These fewer layers offers superior performance.
Disadvantages:
• The entire operating system breaks if just one user program malfunctions.
• Since the layers are interconnected, and in communication with one another, there is no
abstraction or data hiding.
• The operating system's operations are accessible to layers, which can result in data
tampering and system failure.
MONOLITHIC STRUCTURE
• The monolithic operating system controls all aspects of the operating system's operation,
including file management, memory management, device management, and operational
operations.
• The monolithic operating system is often referred to as the monolithic kernel.
• Multiple programming techniques such as batch processing and time-sharing increase a
processor's usability.
• Working on top of the operating system and under complete command of all hardware, the
monolithic kernel performs the role of a virtual computer.
• This is an old operating system that was used in banks to carry out simple tasks like batch
processing and time-sharing, which allows numerous users at different terminals to access
the Operating System.
• The following diagram represents the monolithic structure:
Advantages:
• It enables portability of the operating system across platforms.
• Due to the isolation of each Micro-Kernel, it is reliable and secure.
• The reduced size of Micro-Kernels allows for successful testing.
• The remaining operating system remains unaffected and keeps running properly even if a
component or Micro-Kernel fails.
Disadvantages:
• The performance of the system is decreased by increased inter-module communication.
• The construction of a system is complicated.
EXOKERNEL
• An operating system called Exokernel was created at MIT with the goal of offering
application-level management of hardware resources.
• The exokernel architecture's goal is to enable application-specific customization by
separating resource management from protection.
• Exokernel size tends to be minimal due to its limited operability.
• The exokernel architecture is designed, a single tiny kernel is responsible for moving all
hardware abstractions into unreliable libraries known as library operating systems.
• Exokernels differ from micro- and monolithic kernels in that their primary objective is to
prevent forced abstraction.
Advantages:
• Application performance is enhanced by it.
• Accurate resource allocation and revocation enable more effective utilisation of hardware
resources.
• New operating systems can be tested and developed more easily.
• Every user-space program is permitted to utilise its own customised memory management.
Disadvantages:
• A decline in consistency
• Exokernel interfaces have a complex architecture.
Process management:
• A program in execution is called a process.
• To accomplish its task, process needs the computer resources.
• More than one process in the system which may require the same resource at the same time.
• Therefore, the operating system has to manage all the processes and the resources in a
convenient and efficient way.
• The operating system is responsible for the following activities in connection with Process
Management
o Scheduling processes and threads on the CPUs.
o Creating and deleting both user and system processes.
o Suspending and resuming processes.
o Providing mechanisms for process synchronization.
o Providing mechanisms for process communication.
Memory Management
• Memory is the important part of the computer that is used to store the data.
• Its management is critical to the computer system because the amount of main memory
available in a computer system is very limited.
• At any time, many processes are competing for it. Moreover, to increase performance,
several processes are executed simultaneously.
• For this, we must keep several processes in the main memory, so it is even more important
to manage them effectively.
Security:
• The process of ensuring OS availability, confidentiality, integrity is known as operating
system security.
• OS security refers to the processes or measures taken to protect the operating system from
dangers, including viruses, worms, malware, and remote hacker intrusions.
• Security refers to providing safety for computer system resources like software, CPU,
memory, disks, etc.
• It can protect against all threats, including viruses and unauthorized access.
• It can be enforced by assuring the operating system's integrity, confidentiality, and
availability.
• System security may be threatened through two violations, and these are as follows:
1. Threat
o A program that has the potential to harm the system seriously.
2. Attack
o A breach of security that allows unauthorized access to a resource.
Goal:
1. Integrity
• Unauthorized users must not be allowed to access the system's objects, and users with
insufficient rights should not modify the system's critical files and resources.
2. Secrecy
• The system's objects must only be available to a small number of authorized users.
• The system files should not be accessible to everyone.
3. Availability
• All system resources must be accessible to all authorized users, i.e., no single user/process
should be able to consume all system resources.
• If such a situation arises, service denial may occur. In this case, malware may restrict
system resources and preventing legitimate processes from accessing them.
Distributed System:
• Distributed System is a collection of autonomous computer systems that are physically
separated but are connected by a centralized computer network that is equipped with
distributed system software.
• The autonomous computers will communicate among each system by sharing resources
and files and performing the tasks assigned to them.
• Distributed System Software: This Software enables computers to coordinate their
activities and to share the resources such as Hardware, Software, Data, etc.
• Database: It is used to store the processed data that are processed by each Node/System of
the Distributed systems that are connected to the Centralized network.
Characteristics:
Resource Sharing: It is the ability to use any Hardware, Software, or Data anywhere in the System.
Openness: It is concerned with Extensions and improvements in the system (i.e., How openly the
software is developed and shared with others)
Concurrency: It is naturally present in Distributed Systems, that deal with the same activity or
functionality that can be performed by separate users who are in remote locations. Every local
system has its independent Operating Systems and Resources.
Scalability: It increases the scale of the system as a number of processors communicate with more
users by accommodating to improve the responsiveness of the system.
Fault tolerance: It cares about the reliability of the system if there is a failure in Hardware or
Software, the system continues to operate properly without degrading the performance the system.
Transparency: It hides the complexity of the Distributed Systems to the Users and Application
programs as there should be privacy in every system.
Heterogeneity: Networks, computer hardware, operating systems, programming languages, and
developer implementations can all vary and differ among dispersed system components.
Advantages:
• Applications in Distributed Systems are Inherently Distributed Applications.
• Information in Distributed Systems is shared among geographically distributed users.
• Resource Sharing (Autonomous systems can share resources from remote locations).
• It has a better price performance ratio and flexibility.
• It has shorter response time and higher throughput.
• It has higher reliability and availability against component failure.
• It has extensibility so that systems can be extended in more remote locations and also
incremental growth.
Disadvantages:
• Relevant Software for Distributed systems does not exist currently.
• Security possess a problem due to easy access to data as the resources are shared to multiple
systems.
• Networking Saturation may cause a hurdle in data transfer i.e., if there is a lag in the
network then the user will face a problem accessing data.
• In comparison to a single user system, the database associated with distributed systems is
much more complex and challenging to manage.
• If every node in a distributed system tries to send data at once, the network may become
overloaded.
Applications:
• Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce websites.
• Information Society: Search Engines, Wikipedia, Social Networking, Cloud Computing.
• Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
• Entertainment: Online Gaming, Music, youtube.
• Healthcare: Online patient records, Health Informatics.
• Education: E-learning.
• Transport and logistics: GPS, Google Maps.
• Environment Management: Sensor technologies.
Computing Environments:
• Computing environments refer to the technology infrastructure and software platforms that
are used to develop, test, deploy, and run software applications.
• There are several types of computing environments,
1. Personal Computing Environment: In personal computing environment there is a stand-
alone machine. Complete program resides on computer and executed there. Different stand-
alone machines that constitute a personal computing environment are laptops, mobiles,
printers, computer systems, scanners etc. That we use at our homes and offices.
2. Time-Sharing Computing Environment: In Time Sharing Computing Environment
multiple users share system simultaneously. Different users (different processes) are
allotted different time slice and processor switches rapidly among users according to it. For
example, student listening to music while coding something in an IDE. Windows 95 and
later versions, Unix, IOS, Linux operating systems are the examples of this time-sharing
computing environment.
3. Client Server Computing Environment: In client server computing environment two
machines are involved i.e., client machine and server machine, sometime same machine
also serve as client and server. In this computing environment client requests
resource/service and server provides that respective resource/service. A server can provide
service to multiple clients at a time and here mainly communication happens through
computer network.
4. Distributed Computing Environment: In a distributed computing environment multiple
nodes are connected together using network but physically they are separated. A single task
is performed by different functional units of different nodes of distributed unit. Here
different programs of an application run simultaneously on different nodes, and
communication happens in between different nodes of this system over network to solve
task.
5. Grid Computing Environment : In grid computing environment, multiple computers from
different locations works on single problem. In this system set of computer nodes running
in cluster jointly perform a given task by applying resources of multiple computers/nodes.
It is network of computing environment where several scattered resources provide running
environment for single task.
6. Cloud Computing Environment : In cloud computing environment on demand availability
of computer system resources like processing and storage are availed. Here computing is
not done in individual technology or computer rather it is computed in cloud of computers
where all required resources are provided by cloud vendor. This environment primarily
comprised of three services i.e software-as-a-service (SaaS), infrastructure-as-a-service
(IaaS), and platform-as-a-service (PaaS).
7. Cluster Computing Environment : In cluster computing environment cluster performs task
where cluster is a set of loosely or tightly connected computers that work together. It is
viewed as single system and performs task parallelly that’s why also it is similar to parallel
computing environment. Cluster aware applications are especially used in cluster
computing environment.
Advantages:
• Mainframe: High reliability, security, and scalability, making it suitable for mission-critical
applications.
• Client-Server: Easy to deploy, manage and maintain, and provides a centralized point of
control.
• Cloud Computing: Cost-effective and scalable, with easy access to a wide range of
resources and services.
• Mobile Computing: Allows users to access information and applications from anywhere,
at any time.
• Grid Computing: Provides a way to harness the power of multiple computers for large-
scale computations.
• Embedded Systems: Enable the integration of software into devices and products, making
them smarter and more functional.
Disadvantages:
• Mainframe: High cost and complexity, with a significant learning curve for developers.
• Client-Server: Dependence on network connectivity, and potential security risks from
centralized data storage.
• Cloud Computing: Dependence on network connectivity, and potential security and privacy
concerns.
• Mobile Computing: Limited processing power and memory compared to other computing
environments, and potential security risks.
• Grid Computing: Complexity in setting up and managing the grid infrastructure.
• Embedded Systems: Limited processing power and memory, and the need for specialized
skills for software development.
*******************