CSC 222 New
CSC 222 New
CSC 222
(WINDOWS APPLICATION)
Course Con
Definition
Advantage
Windows
Componen
Interpreter
Batch Pro
Multiproc
Allocation
Operating
Input / Ou
READ THE
1
An overview of Operating System-Definition, Types, Uses, Advantages and Disadvantages
Operating System Definition
An operating system (OS) is a collection of software that manages computer hardware resources
and provides common services for computer programs. The operating system is a vital
component of the system software in a computer system.
An operating system (OS) is a complex software that manages computer hardware resources and
provides a platform for running application software
An operating system is a program that acts as an interface between the user and the computer
hardware and controls the execution of all kinds of programs.
An operating system (OS) is a software that manages computer hardware resources and provides
a platform for running application software.
An Operating System (OS) can be defined as a set of computer programs that manage the
hardware and software resources of a computer. It is the core of compute programming that
primarily deals with computer architecture. Operating system is basically an application program
that serves as an interface to coordinate different resources of computer. An operating system
processes raw system and user input and responds by allocating and managing tasks and internal
system resources as a service to users and programs of the system
2
computing. As technology continues to evolve, it is likely that new types of operating systems
will emerge, providing evens more innovative solutions and capabilities.
1. Single-user-single-tasking operating systems allow only one user to run one program at a
time. MS-DOS is a classic example of this type of operating system. This type of operating
system is simple, efficient, and easy to use, but it has limited capabilities and is not suitable
for modern computing needs.
2. Single-user-multi-tasking operating systems allow one user to run multiple programs
simultaneously. Windows and macOS are popular examples of this type of operating
system. This type of operating system provides a high degree of flexibility and
productivity, enabling users to run multiple applications concurrently.
3. Multi-user operating systems allow multiple users to access the computer simultaneously.
Unix and Linux are examples of this type of operating system. This type of operating
system provides a high degree of security, flexibility, and scalability, making it suitable for
large-scale computing environments.
4. Multi-processing operating systems allow multiple processors or cores to be utilized.
Windows Server and Linux are examples of this type of operating system. This type of
operating system provides a high degree of performance, scalability, and reliability,
making it suitable for demanding applications such as scientific simulations, data analytics,
and cloud computing.
5. Real-time operating systems guarantee a predictable and fast response to events. VxWorks
and QNX are examples of this type of operating system. This type of operating system is
designed for applications that require precise timing and control, such as robotics,
automation, and medical devices.
6. Mobile operating systems are designed for mobile devices such as smartphones and tablets.
Android and iOS are popular examples of this type of operating system. This type of
operating system provides a high degree of portability, flexibility, and usability, enabling
users to access a wide range of applications and services on the go.
7. Embedded operating systems are designed for embedded systems such as traffic lights,
appliances, and industrial control systems. This type of operating system provides a high
degree of reliability, efficiency, and security, enabling it to operate in harsh environments
and meet strict performance requirements.
4
The following points indicate the need for the operating system:
o More than one program runs at a time in a computer, and all of them require your
computer's CPU and memory. The operating system manages resources for all those
programs. That is why the operating system is required.
o Multitasking is a very critical feature of the OS. With its help, we can run many programs
simultaneously.
o The operating system provides a platform to run any application program in the
computer. Due to which we can do our work with the help of that application.
o It helps the user in file management. Through this, the user can save the data according to
his needs.
o You use your mouse to open the application and click on the menu. All this is possible
due to the modern operating system. This operating system allows you to do this with the
help of GUI (Graphical user interface).
o The operating system creates a communication link between the user and the computer,
allowing the user to run any application program and obtain the required output properly.
o It is almost impossible for a user to use a computer system without an operating system.
Many processes run simultaneously when a program is executed, which is not easy for a
person to manage.
5
platforms, without modifying the code. For instance, a program written for a Windows
operating system can run on different hardware configurations, such as laptops, desktops,
or servers, without requiring significant modifications. Hardware abstraction simplifies
the development process, reduces costs, and increases productivity.
2. Another significant advantage of operating systems is multi-tasking. Operating systems
allow multiple tasks to be performed simultaneously, improving productivity and
efficiency. Multi-tasking enables users to run multiple applications concurrently, such as
browsing the internet, editing documents, and listening to music. Multi-tasking enhances
the overall computing experience, making it more efficient and enjoyable.
3. Operating systems also provide efficient memory management, which is essential for
modern computing. Memory management involves allocating and deallocating memory
for running programs, ensuring that memory is used efficiently and effectively. Efficient
memory management prevents memory-related errors, reduces crashes, and improves
overall system performance.
4. Operating systems provide Security. It provide mechanisms for controlling access to
computer resources, ensuring that unauthorized users cannot access sensitive data or
disrupt system operations. Operating systems use various security mechanisms, such as
access control lists, firewalls, and encryption, to protect against security threats.
5. Operating systems provide portability, allowing software to be run on different hardware
platforms. Portability enables software developers to write programs that can run on
multiple operating systems and hardware configurations, without requiring significant
modifications. For instance, a program written for a Windows operating system can run
on a Linux or macOS operating system, without requiring significant changes.
7
1. Assemblers are a type of programming language translator that translates assembly
language into machine code. Assembly language is a low-level programming language
that uses symbolic codes to represent machine-specific instructions. Assemblers take the
assembly language code as input and generate machine code as output. This process
involves substituting symbolic codes with their corresponding machine codes and
generating object code that can be executed by the computer.
2. Compilers are another type of programming language translator that translates an entire
high-level programming language into machine code. High-level programming
languages, such as C, C++, and Java, are easier to learn and use than assembly language,
but they need to be translated into machine code before they can be executed by the
computer. Compilers take the high-level programming language code as input and
generate machine code as output.
8
The Evolution of Computer Processing explore four major examples: batch processing,
real-time processing, time-sharing processing, and multi-processing.
Computers are amazing machines that can perform a wide range of tasks, from simple
calculations to complex simulations. However, have you ever wondered how computers manage
to do all these tasks? The answer lies in the way computers process information, which can be
broadly classified into four categories: batch processing, real-time processing, time-sharing
processing, and multi-processing. In this essay, we will explore each of these concepts in simple
terms.
9
their tasks simultaneously. Time-sharing processing is commonly used in cloud computing,
online banking, and social media platforms.
The allocation of resources is a multifaceted process that begins with resource identification.
This involves recognizing the available resources within a system, such as CPU, memory, and
I/O devices. Once these resources are identified, the next step is resource allocation, where
resources are assigned to tasks or processes based on factors like priority, need, and availability.
This allocation must be judicious to prevent resource starvation, where a task is perpetually
denied access to the resources it needs. Finally, resource deallocation occurs when tasks or
processes complete or are terminated, allowing resources to be reclaimed and reassigned.
Scheduling resources is equally critical and involves deciding when and how to allocate
resources to tasks or processes. This can be further divided into job scheduling, process
scheduling, and resource scheduling. Job scheduling involves scheduling tasks or processes
(jobs) based on priority, deadlines, and resource availability. Process scheduling, on the other
hand, focuses on scheduling processes (programs in execution) based on factors like CPU usage,
I/O operations, and memory requirements. Resource scheduling manages access to shared
resources such as printers, scanners, or network devices.
10
To achieve efficient scheduling, various algorithms are employed. Some common scheduling
algorithms include:
1. First-Come-First-Served (FCFS): Schedule tasks in the order they arrive.
2. Shortest Job First (SJF): Schedule the shortest task first.
3. Priority Scheduling: Schedule tasks based on priority. Where the operating system
prioritizes certain processes over others based on their importance.
4. Round Robin (RR): Where the operating system gives each process a "slice" of time to
run. This ensures that no single process monopolizes the system's resources.
5. Shortest Remaining Time First (SRTF). This algorithm prioritizes processes based on
how much time they have left to run. So if two processes have the same priority, the one
that will finish the soonest will be scheduled first.
6. Multilevel feedback queue (MLFQ), which uses a hierarchy of queues to prioritize
processes. The scheduler uses information about each process, such as its priority and
how much time it has used, to decide which queue to put it in.
7. Fair-share scheduling. This algorithm prioritizes processes based on their "fair share" of
the system's resources. So if one process has used a lot of the system's resources, it will
be de-prioritized so that other processes can have a fair chance to run. This algorithm is
often used in virtualized environments, where multiple operating systems share the same
physical hardware.
11
7. Resource Allocation: The nucleus manages the allocation and deallocation of system
resources, such as CPU time, memory, and I/O devices.
In conclusion, the operating system nucleus is the heart of the operating system, responsible for
managing hardware resources and providing basic services to applications. Its functions and
importance make it a critical component of modern computer systems.
Memory management
Memory management is the process of allocating and de-allocating memory to processes and
keeping track of which memory is in use and which is available. The operating system's memory
manager is responsible for this. It uses a variety of techniques to manage memory, such as
paging, segmentation, and swapping.
Paging is a technique that breaks up the memory into small, fixed-sized blocks called
pages. The memory manager keeps track of which pages are in use and can load and
unload them from memory as needed.
Segmentation breaks the memory into logical segments based on the process that's using
it. Segmentation allows the operating system to share the physical memory between
multiple processes, even if they're all using different logical addresses.
Swapping is a technique where the memory manager moves inactive pages of memory to
a disk, so they are not taking up valuable physical memory. This allows the system to
have more memory available for active processes.
The memory manager also keeps track of which pages of memory are shared between
processes. This is called copy-on-write. So, there's a lot going on behind the scenes to
manage the system's memory!
So, let us discuss about memory allocation requests from processes. There are two main types of
requests: static and dynamic.
12
Static requests are made at compile time and don't change during the lifetime of the
process.
Dynamic requests are made at runtime and can change as the process runs.
The memory manager keeps track of these requests and tries to meet them as best as possible. It
does this by using a variety of algorithms, such as best-fit, first-fit, and worst-fit. These
algorithms have different trade-offs in terms of efficiency and performance.
Best-Fit Algorithm.
This algorithm tries to find the smallest block of memory that can satisfy the request. This is the
most efficient use of memory, but it can take a long time to search through all the possible
blocks.
First-Fit Algorithm
The algorithm tries to find the first block of memory that can satisfy the request. This is faster
than best-fit, but it can waste more memory. The worst-fit algorithm tries to find the largest block
of memory that can satisfy the request. This can be slow, but it minimizes memory wastage.
Worst-fit algorithm
Worst-fit is generally considered the most effective of the three algorithms. It's slower than the
others, but it minimizes memory wastage and fragmentation. Fragmentation occurs when there
are many small, unused blocks of memory scattered throughout the system. This can lead to
memory shortages, even when there's enough total memory available. Worst-fit helps to reduce
this problem by trying to allocate the largest possible block of memory. So, worst-fit is slower,
but it's more efficient in the long run.
INPUT/OUTPUT SYSTEM
Input systems
An input system is a subsystem of the operating system that handles user input. This includes
devices like keyboards, mice, and touchscreens. The input system is responsible for translating
the raw data from these devices into something that the operating system can understand. This is
done by an input driver, which is a program that communicates with the device and converts the
data into a standard format. The input system also handles things like user authentication, so only
authorized users can access the system.
One important part of the input system is called the interrupt handler. This is a piece of code
that's triggered whenever an input device sends an interrupt signal. An interrupt signal is sent
when a device needs the operating system's attention, such as when a key is pressed or a mouse
button is clicked. The interrupt handler decides what to do with the interrupt, and it sends the
data to the appropriate process. This allows the input system to handle multiple input devices at
the same time.
13
Interrupts come in two flavors: hardware interrupts and software interrupts.
A hardware interrupt is triggered by an external device, like a mouse or keyboard.
A software interrupt is triggered by the operating system itself. For example, when the
operating system needs to schedule a process, it will send a software interrupt to the
processor. This causes the processor to stop what its doing and handle the interrupt.
Interrupts are a vital part of the input system, as they allow the system to respond quickly
to input from the user.
Output systems
Output systems are the part of the operating system that handles outputting information to the
user. This includes things like printing, displaying images on the screen, and playing sounds. The
output system also includes the output driver, which is the program that sends the output to the
appropriate device. For example, the output driver for the display will send the image data to the
monitor. The output system is closely integrated with the input system, so they can work together
to provide a seamless user experience.
Let's start with one of the most important parts of the output system: The display driver. This is a
program that translates the graphics commands from the operating system into signals that the
monitor can understand. It also handles tasks like refreshing the screen and rendering 3D
graphics. Without the display driver, the monitor would just be a blank screen! Another
important part of the output system is the audio driver, which sends sound data to the speakers or
headphones. It also manages tasks like encoding and decoding audio data.
One example of an output system is a printer. The printer driver is the program that sends data to
the printer. It also handles tasks like converting the data into a format that the printer can
understand. Another example is the Graphics Processing Unit (GPU). The GPU is a specialized
chip that handles rendering 3D graphics. It's often used in gaming, as it can render complex
images very quickly. The GPU also helps to speed up other tasks that involve complex graphics,
like video editing.
Another important part of the output system is the Universal Serial Bus (USB) driver.
This driver manages the USB ports on the computer. It allows you to connect a variety of
devices, like printers, cameras, and keyboards. It also handles tasks like power
management and data transfer. Without the USB driver, you will not be able to use all of
the devices that rely on USB.
Another example is the serial port driver, which handles data transfer over serial ports.
Serial ports are used to connect devices like modems and scanners.
14