0% found this document useful (0 votes)
2 views12 pages

Overview of Operating Systems and Management

Uploaded by

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

Overview of Operating Systems and Management

Uploaded by

watson sileti
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

Operating System
The need for an operating system:
There was no operating system at all on early computers. Every time the computer was turned on, control
software needed to be loaded; punched cards or paper tape were used for this purpose.
The home computer was growing in popularity in the 1970s. Early models, like the Acorn BBC B, stored a
portion of the operating system on an internal ROM chip. The remaining operating software was loaded
using a cassette tape machine. This required using a welcome cassette tape, which had to be inserted
each time the computer was turned on, in order to "get the computer started."

Operating systems were kept on the hard disk throughout the development of the hard disk drive (HDD),
and the basic input/output system (BIOS) managed motherboard startup. The BIOS was originally stored
on a ROM chip; however, flash memory chips are now used in current computers to store the BIOS's data.
The BIOS setup can be changed or removed as needed because it is kept in CMOS memory
(complementary metal-oxide semiconductor).
An operating system provides both the environment in which applications can be run, and a useable
interface between humans and computer. An operating system also disguises the complexity of computer
hardware.
A graphical user interface (GUI) is typically used to accomplish the human computer interaction (HCI),
while a command line interface (CLI) can be used if the user wants to speak with the computer directly.
With CLI, the user may communicate directly with the computer and isn't limited to a set of preset options,
which is an advantage.
For example, data from table A is imported into table B in the CLI part that follows. It demonstrates how
difficult it is to perform even a simple task.

The user interface of GUIs is provided via a variety of devices and technologies. Windows, icons, menu,
and pointing device (WIMP), which was created for use on personal computers (PCs), was one of the
earliest widely used GUI environments. In this case, windows are opened and closed by selecting icons
with the mouse. An application is present in every window. Multiple windows can be open at once on
modern computer systems. An example:

NAVID SAQIB 0333-4259883 1


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

But many PCs, tablets, and smartphones now use a post-WIMP interaction, which allows fingers to touch
the screen to perform tasks like rotating and pinching, which are challenging with a single pointer or
mouse.
Operating system tasks:

Memory management:
Memory management pertains to the administration of a computer's primary memory, as the name
implies. Three components comprise this: memory protection, memory organization, and memory
optimization.
Memory optimization: Memory optimization is the process by which an operating system reduces waste
and enhances overall system responsiveness and performance by effectively allocating, managing, and
utilizing memory resources.
Memory organization: The amount of memory allotted to each application and the most effective way to
divide that memory are determined by memory organization.
This can be accomplished by using:
• a single, contiguous allocation in which a single application has access to the entire memory. Both
embedded systems and MS-DOS use this.
• memory management allocates a partition (which might vary in size) to each program after
dividing the memory into contiguous partitions (or blocks).
• paged memory is comparable to partitioned allocation, with the exception that each partition has
a set size. Systems that use virtual memory use this.
• segmented memory, which differs in that each segment of memory will be a logical grouping of
data rather than memory blocks being continuous.
Memory protection:
By separating and protecting memory areas, memory protection is a technique employed by operating
systems to prevent processes from accessing each other's memory space. This helps to ensure system
stability and security.
Therefore, memory protection must always be a part of any type of memory organization used.
How different applications can be kept separate from each other.

NAVID SAQIB 0333-4259883 2


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

Security management:
An operating system's security management entails putting safeguards in place to guard against threats,
illegal access, and breaches of data. These safeguards include user authentication, access control,
encryption, and routine upgrades.
This can be achieved by:
• installing operating system updates as soon as they are made available
• making sure security software, including antivirus software, is constantly updated
• interacting, for instance, with a firewall to monitor all computer traffic going in and out
• Using privileges to stop users from accessing "private areas" on a computer that allows for many
users to interact. This contributes to protecting data privacy.
• keeping all users' access rights intact
• enabling data recovery (and system restoration) in the event that data is lost or damaged
• aiding in the prevention of unauthorized access to the computer system and protecting data
privacy
Process management:
In order to guarantee effective CPU resource utilization and seamless multitasking, process management
in an operating system entails monitoring the execution of processes, including their creation, scheduling,
and termination.
Hardware management:
All peripheral devices for input and output are included in hardware management. Among hardware
management's duties are:
• Using device drivers to communicate with all input and output devices
• utilizing device drivers to convert data from an operating system-defined file into a format that
the input/output device can comprehend
• establishing a priority system for each hardware resource to enable its usage and release as
needed.
Controlling and managing queues and buffers is basically what input/output device management entails.
For example, when a document is printed, the printer management:
• finds the printer driver and loads it into memory.
• data is sent to a printer buffer so that it can be printed.
• before transferring data to the printer buffer, it first sends data to a printer queue if the printer is
busy or the print job has a low priority.
• transmits different control commands to the printer at different points in the printing process.
• receives and responds to printer interruptions and error messages.
File management:
File management's primary responsibilities include:
• specifying the acceptable file name conventions, and so forth
• carrying out particular operations, like create, open, close, delete, rename, copy, and move
• keeping up the directory structures
• guaranteeing the upkeep of access control measures, such as file access permissions, password
protection, file editing accessibility, file locking, and so forth
• choosing the appropriate disk formatter type and then providing the logical file storage format
(such as FAT or NTFS if Windows is being used).
• retrieving a file from the HDD or SSD and loading it into memory to guarantee memory allocation.

NAVID SAQIB 0333-4259883 3


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

Utility software:
Programs created to assist in the analysis, configuration, optimization, or upkeep of a computer or its
systems are referred to as utility software. Utility software performs a number of duties to keep the
computer running effectively and securely, in contrast to programs that are used for specific tasks like
word processing or internet browsing. The majority of operating systems provide utility software, such as:
➢ hard disk formatter
➢ virus checker
➢ defragmentation software
➢ disk contents analysis/repair software
➢ file compression
➢ back-up software.
Hard disk formatter:
An utility program called a hard disk formatter is made to organize a solid-state drive's (SSD) or hard disk
drives (HDD) storage space in a way that the operating system can understand and use. The process of
formatting includes setting up a file system on the drive, such as APFS, HFS+ (macOS), or FAT32, NTFS
(Windows), that enables the management, storage, and access of files.
A tiny section of a hard drive or other storage medium that is physically damaged or unreliable at holding
data is referred to as a "bad sector." This can happen for a number of reasons, including ageing storage
media, manufacturing flaws, or physical damage to the disk surface.
Hard bad sectors (difficult to repair) Soft bad sectors
brought on by mistakes in production abrupt power outage that causes data corruption in
several industries
Allowing the read-write head to come into contact with impact of static electricity causing data corruption in a
the disk surface (for instance, by moving the HDD few hard disk surfaces' sectors
without first parking the read-write head) can cause
damage to the disk surface.
system failure that might result in the disk surface(s)
being damaged
Virus checkers:
Virus checkers, also known as antivirus software, are essential tools designed to detect, prevent, and
remove malicious software such as viruses, malware, spyware, and ransomware from computers and
networks. They continuously monitor system activity, scan files and incoming data for potential threats,
and quarantine or delete harmful programs to protect user data and ensure system security.
Regular updates and scans are recommended to keep up with evolving threats and maintain the
effectiveness of virus checkers.
A computer that has antivirus software running in the background will continuously scan for malware
threats. Antivirus software comes in a variety of forms, but they always share certain characteristics. They
• Verify files or applications before loading or running them on a computer.
• evaluate potential viruses against a list of recognized viruses
• do heuristic checking, which is the process of examining software for patterns of behavior that
might point to the presence of a virus. This is helpful if the program is compromised by a virus
that isn't yet included in the database.
• Place potentially infected files or programs in quarantine.
– automatically delete the virus, or
– allow the user to decide whether to delete the file (it is possible that the user knows that the
file or program is not infected by a virus – this is known as a false positive and is one of the
drawbacks of antivirus software).

NAVID SAQIB 0333-4259883 4


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

Defragmentation software:
Hard disk drives' (HDDs) performance can be enhanced by defragmentation software, which arranges
fragmented data on the disk. The data contained in files may eventually become fragmented spread over
several physical locations on the disk as a result of creation, modification, and deletion. The disk drive
must search and read data from several places as a result of this fragmentation, which can cause file
access speeds to lag.
Disk content analysis/repair software:
The section above covered the idea of disk repair software. By examining files and file folders, disk content
analysis software examines disk drives for vacant space and disk utilization. This can result in the best
possible use of disk space by deleting unnecessary downloads and files.
Disk compression and file compression:
Although they function at distinct levels, disk compression and file compression are methods used to
lower the amount of storage space needed for data:
Disk compression: By compressing entire volumes or partitions on a hard drive, disk compression
software increases the amount of data that can be stored in the same amount of space. It optimizes disk
space utilization by transparently compressing data when it is written to disk and decompressing it when
read.
File compression: On the other hand, file compression focuses on specific files or folders, shrinking them
to free up storage space or enable quicker network transfer. Well-known file compression formats like 7z,
RAR, and ZIP use algorithms to eliminate extraneous or superfluous data before compressing files. Before
being utilized, these compressed files need to be decompressed, which can be accomplished with
specialized software tools.
Back-up software:
Although utilizing a memory stick or portable HDD for manual backups makes sense, it's also a good idea
to use the operating system backup tool. This tool will
• Permit the creation of a backup schedule for files.
• Perform a backup procedure solely in the event that a file has undergone modifications.
A file should have three versions for complete security:
• The internal HDD contains the most recent (functional) version.
• a local backup of the file that is kept on a portable SSD, for instance.
• A cloud-based backup version that is remotely saved and kept separate from the machine.
When utilizing the backup software, the Windows environment provides the following capabilities:
• The capacity to establish a restore point, which returns a computer to its previous state and is
particularly helpful when a crucial file gets erased and cannot be restored using any other utility.
• The ability to restore data, files, or the computer from the backup.
• Choices for the location of backup files can be configured from the program to guarantee that
files are automatically backed up to a selected device.
The Time Machine backup software is available on Mac OS. By doing this, the contents of a chosen drive
are deleted and replaced with those from the backup. It is required to have an external HDD or SSD
(attached via USB port) in order to use this feature, and the machine you have chosen must have the Time
Machine application installed and active. The time machine will function automatically
• back up every hour
• keep daily back-ups for the past month, and
• keep weekly back-ups for all the previous months.

NAVID SAQIB 0333-4259883 5


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

Program libraries:
Program libraries are used
• when software is being developed and the programmer can save a significant amount of time by
using pre-written subroutines in their own programs
• to support a software developer who wants to use DLL (dynamic link library) functions in their
own program; hence, these functions need to be accessible throughout program execution.
Software procedures, like sorting routines, are often built and then kept in a program library so that other
programmers can utilize them later. A library program is a program that is kept in a program library. To
designate subroutines that might be utilized in a future software project, we also have the phrase library
routines.
Assume we are creating a kid-friendly game with animated graphics of a cuddly panda, scoreboard
graphics, and musical sequences.

It is possible to create this game with pre-existing routines


from a library.
Developing software in this way:
• eliminates the necessity of constantly rewriting the
numerous routines
• results in modular programming, which enables
multiple programmers to work simultaneously on the same piece of software.
• allows continuity with other games that may form part of a whole range
• permits a specific organization to maintain a "corporate image" throughout all of the software it
develops.
• saves considerable development time having to test each routine, since the routines are all fully
tested in other software and should be error-free.
Software in development is not connected to the library functions in dynamic libraries until it is actually
running; these files are called dynamic link library files, or DLLs.
summarizes the benefits and drawbacks of DLL file use.
Benefits of using DLL files Drawbacks of using DLL files
Because DLL files are loaded into memory only when Since the executable code is not self-contained, all DLL
the application is running, the executable code of the files must be accessible during program execution in
main program is substantially less. order to prevent error messages (like the [Link]
problem) from appearing and potential program
crashes.
It is feasible to modify DLL files separately from the To make links with DLL files, any DLL linking software in
primary program; as a result, any modifications made the main program must be accessible during runtime.
to the DLL files won't require recompiling the primary
program.
DLL files can be made available to many programs If any DLL files have been altered, this could cause
concurrently. unexpected outcomes or even cause the main program
to crash.
All of the aforementioned reduce execution time and Malicious modifications to DLL files may arise from
memory usage. malware, posing a threat to the primary software that
follows the linking procedure.
NAVID SAQIB 0333-4259883 6
COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

Language Translator:
Translation and execution of programs:
Program instructions can only be carried out after they are encoded in machine code and placed into the
computer's main memory.
Translators are the systems programs used to translate source programs written in any language other
than machine code. There are three basic kinds of translators, and each one has a distinct function.
Assemblers:
Program instructions can only be carried out after they are encoded in machine code and placed into the
computer's main memory. Before being used, programming instructions written in any other
programming language than machine code need to be translated. Translators are the systems programs
used to translate source programs written in any language other than machine code. There are three basic
kinds of translators, and each one has a distinct function.
Each type of chip or computer has its own assembly language and machine code. For example, PIC and
GENIE are used to assemble microcontrollers, whereas MASM is used to assemble the X86 family of
processors. Programs written in assembly language are platform-specific; they do not transfer well
between different kinds of computers or chips. A little example PIC assembly program is provided here:

Compilers and interpreters:


Programs written in a high-level language can be either translated into machine code by a compiler
program, or directly executed line-by-line using an interpreter program.
Compilers: typically save the translated program, also known as an object program, on a storage medium
so that it can be run at a later time. Before the stored translated program can be executed, a loader
program must load it into main memory. The translated program that has been stored can be run
repeatedly without requiring translation. Only when modifications are made to the source code will the
software need to be retranslated.
Interpreters: No translated program is created in main memory or saved for subsequent use when using
an interpreter. Every time a program is run, each line is first interpreted and then carried out.
Differences between assemblers, compilers and interpreters are:
Assembler Compiler Interpreter
Source program written in assembly high-level language high-level language
language
Machine dependent yes no no
Object program generated yes, stored on yes, stored on disk or in no, instructions are
disk or in main main memory executed under the
memory control of the
interpreter
Each line of the source one machine many machine code many machine code
program generates code instruction, instructions, instruction instructions, instruction
one to one explosion explosion
translation
Pros and cons of compiling or interpreting a program:
Programs created in high-level languages use both interpreters and compilers. Since interpreters are most
helpful in the early stages of development while compilers create a stand-alone program that can be run

NAVID SAQIB 0333-4259883 7


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

repeatedly without the compiler, some integrated development environments (IDEs) offer both for
programmers.
Compiler Interpreter
Because the user only requires the executable To translate the source code before it is utilized,
code, they gain from not having to buy a compiler the end user must buy a compiler or an
in order to translate the program before using it. interpreter.
Because the developer retains ownership of the The source code is no longer under the
source code, users are unable to add to or modify developer's control, which makes charging for
it. This gives the developer the ability to charge for updates and modifications more challenging. End
updates and modifications. users may use the developer's intellectual
property because they have access to the source
code.
Because translation has already been finished and Because every time the program is run, every line
the machine code the compiler created may have of the source code must be translated before it is
been optimized, compiled applications run faster. executed, an interpreted program may run more
slowly than a compiled one.
Syntax and semantic mistakes are absent from If any portion of the program has not been
compiled programs. thoroughly tested, interpreted programs may still
have syntactic or semantic problems, which will
require debugging.
It is possible to translate the source program on It is not possible to run interpreted programs on
one kind of machine and then run it on another. one kind of computer and interpret them on
another.
A compiler detects every mistake in a program. If Using an interpreter makes it easy to write and
an error is found in the program, it may indicate debug programs because mistakes can be fixed on
that the compiler finds other dependent mistakes each line and the program may be started again
later on that won't cause problems if the original from there, making it simple for the programmer
issue is fixed. As a result, there's a chance that to learn from mistakes.
more faults were discovered than there were
really.
Error-ridden, untested programs could bring down Untested programs should not be able to cause
the computer. the computer to crash.
In order to observe partial results during During development, partial results can be shown,
development, the developer must implement allowing the developer to decide whether to
special methods, which makes evaluating the continue, alter, or scrap and start again with a
quality of certain code sections more challenging. particular area of code.
Because they lack access to the run-time libraries If an interpreted program is purchased, end users
and source code, end users are dependent on the have all the source code and the run-time
developer to make updates and changes to the libraries, enabling the program to be modified as
product. required without further purchase.
Partial compiling and interpreting:
Many programs written in high-level languages employ a mechanism that is partially compilation and
half interpretation in order to gain faster execution speeds. A compiler verifies and converts the source
code into object code. Complicated object code, often known as intermediate code, p-code, or bytecode,
is a low-level machine-independent code. The object code can be compiled with a compiler or interpreted
by an interpreter to run the program.

NAVID SAQIB 0333-4259883 8


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

For example, a compiler can convert programs written in Python and Java into a collection of virtual
machine instructions. An interpreter then decodes these instructions, often known as bytecode.
Examples of intermediate code (bytecode) in Python and Java are provided below:

Integrated development environment (IDE):


Programmers utilize an integrated development environment (IDE) to facilitate the writing and
development of programs. There are numerous IDEs available; some only support a single programming
language, while others are multi-language compatible. The IDEs that are currently in use are Sharp
Develop, PyCharm, Visual Studio, and NetBeans.
IDEs usually have
➢ a source code editor
➢ a compiler, an interpreter, or both
➢ a run-time environment with a debugger
➢ an auto-documenter.
Source code editor:
A specialized software tool used for writing and modifying computer program source code is called a
source code editor. In contrast to a comprehensive Integrated Development Environment (IDE), which
includes development tools other than editing (such as debugging, compilation, and projectmanagement),
a source code editor is primarily concerned with offering features that facilitate the coding process itself.

NAVID SAQIB 0333-4259883 9


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

These features in the PyCharm source code editor.

Here, string values are shown colored green and integer values are shown colored blue.

When a programmer types code into a source code editor, dynamic syntax checking looks for potential
syntax problems and notifies them in real time, before the code is translated. This means that while
writing and revising a program, many problems can be discovered and fixed before the program is
executed. Only after the program is executed can logic faults be detected.
Compilers and interpreters:
To run the program, the majority of IDEs often come with a compiler and/or an interpreter.
The program is often developed using the interpreter, and the object code is eventually produced by the
compiler.

NAVID SAQIB 0333-4259883 10


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

PyCharm allows for the availability of multiple interpreters for various Python versions. With the help of
the given run-time environment, the program results are shown.
A run-time environment with a debugger:
A debugger is a tool that helps with debugging by running the program that is being developed. It enables
the programmer to create a breakpoint to halt the program's execution at a specific location in the source
code or to single step through the program one line at a time. The contents of the variables and
expressions that were evaluated at that stage of the program are then displayed in a report window. This
enables the programmer to verify that the program functions as planned and to find any logic problems
in the program.

Every variable that is utilized, together with its type and contents at that particular program point, are
displayed in the report pane. The final variable to be used is the one at the top of the display.
It is also possible to display results from computations and other expressions.

NAVID SAQIB 0333-4259883 11


COMPUTER SCIENCE 9618 PAPER 2 CHAP-5 (SYSTEM SOFTWARE) AS PER SYLLABUS 2023-2025

Auto-documenter:
An auto-documenter that explains the meaning and function of programming code is often included in
most IDEs.

NAVID SAQIB 0333-4259883 12

You might also like