0% found this document useful (0 votes)
3 views4 pages

OS

An operating system (OS) is essential system software that manages computer hardware and software resources, providing common services for programs and ensuring efficient task scheduling. As of September 2024, Android leads the market with a 46% share, followed by Windows, iOS, macOS, and Linux, with various types of OS tailored for different applications, including embedded and real-time systems. The document also discusses the evolution of operating systems from early manual programming to modern multiprogramming capabilities.

Uploaded by

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

OS

An operating system (OS) is essential system software that manages computer hardware and software resources, providing common services for programs and ensuring efficient task scheduling. As of September 2024, Android leads the market with a 46% share, followed by Windows, iOS, macOS, and Linux, with various types of OS tailored for different applications, including embedded and real-time systems. The document also discusses the evolution of operating systems from early manual programming to modern multiprogramming capabilities.

Uploaded by

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

An operating system (OS) is system software that manages computer

hardware and software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also
include accounting software for cost allocation of processor time, mass storage, peripherals,
and other resources.
For hardware functions such as input and output and memory allocation, the operating system
acts as an intermediary between programs and the computer hardware,[1][2] although the
application code is usually executed directly by the hardware and frequently makes system
calls to an OS function or is interrupted by it. Operating systems are found on many devices
that contain a computer – from cellular phones and video game consoles to web
servers and supercomputers.
As of September 2024, Android is the most popular operating system with a 46% market
share, followed by Microsoft Windows at 26%, iOS and iPadOS at 18%, macOS at 5%,
and Linux at 1%. Android, iOS, and iPadOS are mobile operating systems, while Windows,
macOS, and Linux are desktop operating systems.[3] Linux distributions are dominant in the
server and supercomputing sectors. Other specialized classes of operating systems (special-
purpose operating systems),[4][5] such as embedded and real-time systems, exist for many
applications. Security-focused operating systems also exist. Some operating systems have
low system requirements (e.g. light-weight Linux distribution). Others may have higher
system requirements.
Some operating systems require installation or may come pre-installed with purchased
computers (OEM-installation), whereas others may run directly from media (i.e. live CD) or
flash memory (i.e. USB stick).
Definition and purpose
An operating system is difficult to define,[6] but has been called "the layer of software that
manages a computer's resources for its users and their applications".[7] Operating systems
include the software that is always running, called a kernel—but can include other software
as well.[6][8] The two other types of programs that can run on a computer are system programs
—which are associated with the operating system, but may not be part of the kernel—and
applications—all other software.[8]
There are three main purposes that an operating system fulfills:[9]
 Operating systems allocate resources between different applications, deciding when
they will receive central processing unit (CPU) time or space in memory.[9] On
modern personal computers, users often want to run several applications at once. In
order to ensure that one program cannot monopolize the computer's limited hardware
resources, the operating system gives each application a share of the resource, either
in time (CPU) or space (memory).[10][11] The operating system also must isolate
applications from each other to protect them from errors and security vulnerabilities in
another application's code, but enable communications between different applications.
[12]

 Operating systems provide an interface that abstracts the details of


accessing hardware details (such as physical memory) to make things easier for
programmers.[9][13] Virtualization also enables the operating system to mask limited
hardware resources; for example, virtual memory can provide a program with the
illusion of nearly unlimited memory that exceeds the computer's actual memory. [14]
 Operating systems provide common services, such as an interface for accessing
network and disk devices. This enables an application to be run on different hardware
without needing to be rewritten.[15] Which services to include in an operating system
varies greatly, and this functionality makes up the great majority of code for most
operating systems.[16]
Types of operating systems
Multicomputer operating systems
With multiprocessors multiple CPUs share memory. A multicomputer or cluster computer has
multiple CPUs, each of which has its own memory. Multicomputers were developed because
large multiprocessors are difficult to engineer and prohibitively expensive;[17] they are
universal in cloud computing because of the size of the machine needed.[18] The different
CPUs often need to send and receive messages to each other;[19] to ensure good performance,
the operating systems for these machines need to minimize this copying of packets.[20] Newer
systems are often multiqueue—separating groups of users into separate queues—to reduce
the need for packet copying and support more concurrent users.[21] Another technique
is remote direct memory access, which enables each CPU to access memory belonging to
other CPUs.[19] Multicomputer operating systems often support remote procedure calls where
a CPU can call a procedure on another CPU,[22] or distributed shared memory, in which the
operating system uses virtualization to generate shared memory that does not physically exist.
[23]

Distributed systems
A distributed system is a group of distinct, networked computers—each of which might have
their own operating system and file system. Unlike multicomputers, they may be dispersed
anywhere in the world.[24] Middleware, an additional software layer between the operating
system and applications, is often used to improve consistency. Although it functions similarly
to an operating system, it is not a true operating system.[25]
Embedded
Embedded operating systems are designed to be used in embedded computer systems,
whether they are internet of things objects or not connected to a network. Embedded systems
include many household appliances. The distinguishing factor is that they do not load user-
installed software. Consequently, they do not need protection between different applications,
enabling simpler designs. Very small operating systems might run in less than 10 kilobytes,
[26]
and the smallest are for smart cards.[27] Examples include Embedded
Linux, QNX, VxWorks, and the extra-small systems RIOT and TinyOS.[28]
Real-time
A real-time operating system is an operating system that guarantees to process events or data
by or at a specific moment in time. Hard real-time systems require exact timing and are
common in manufacturing, avionics, military, and other similar uses.[28] With soft real-time
systems, the occasional missed event is acceptable; this category often includes audio or
multimedia systems, as well as smartphones.[28] In order for hard real-time systems be
sufficiently exact in their timing, often they are just a library with no protection between
applications, such as eCos.[28]
Hypervisor
A hypervisor is an operating system that runs a virtual machine. The virtual machine is
unaware that it is an application and operates as if it had its own hardware.[14][29] Virtual
machines can be paused, saved, and resumed, making them useful for operating systems
research, development,[30] and debugging.[31] They also enhance portability by enabling
applications to be run on a computer even if they are not compatible with the base operating
system.[14]
Library
A library operating system (libOS) is one in which the services that a typical operating
system provides, such as networking, are provided in the form of libraries and composed with
a single application and configuration code to construct a unikernel: [32] a specialized (only
the absolute necessary pieces of code are extracted from libraries and bound
together [33]), single address space, machine image that can be deployed to cloud or embedded
environments.
The operating system code and application code are not executed in separated protection
domains (there is only a single application running, at least conceptually, so there is no need
to prevent interference between applications) and OS services are accessed via simple library
calls (potentially inlining them based on compiler thresholds), without the usual overhead
of context switches, [34] in a way similarly to embedded and real-time OSes. Note that this
overhead is not negligible: to the direct cost of mode switching it's necessary to add the
indirect pollution of important processor structures (like CPU caches, the instruction pipeline,
and so on) which affects both user-mode and kernel-mode performance. [35]
History
Main article: History of operating systems
IBM System/360 Model 50 operator's console and CPU;
the operator's console is a terminal used by the operating system to communicate with the
operator.
The first computers in the late 1940s and 1950s were directly programmed either
with plugboards or with machine code inputted on media such as punch cards,
without programming languages or operating systems.[36] After the introduction of
the transistor in the mid-1950s, mainframes began to be built. These still needed professional
operators[36] who manually do what a modern operating system would do, such as scheduling
programs to run,[37] but mainframes still had rudimentary operating systems such as Fortran
Monitor System (FMS) and IBSYS.[38] In the 1960s, IBM introduced the first series of
intercompatible computers (System/360). All of them ran the same operating system
—OS/360—which consisted of millions of lines of assembly language that had thousands
of bugs. The OS/360 also was the first popular operating system to
support multiprogramming, such that the CPU could be put to use on one job while another
was waiting on input/output (I/O). Holding multiple jobs in memory necessitated memory
partitioning and safeguards against one job accessing the memory allocated to a different one.
[39]

Around the same time, teleprinters began

You might also like