Makalah Isas Io w10 Final
Makalah Isas Io w10 Final
Makalah Isas Io w10 Final
OPERATION SYSTEMS II
Written by:
Faculty:
Mrs. Aisah Rini Susanti, S.T., M.Kom.
Class:
1CC1
This project report entitled "Windows 10 I/O System", is submitted to fulfill one of the
assignment from our beloved lecturer, Mrs. Aisah Rini Susanti, in order to accomplishing the
Stage-2 in 1CC1 Class, Professional Education Program at the Software Engineering Concent,
CEP-CCIT Faculty of Enguneering, University of Indonesia.
In arranging this report, we truly get lots challenges and obstructions, but with the
assistance of many indiviuals, those obstructions could passed.
We also realized there are still many mistakes in process of writing this report. But, there
are many individuals who have generously suggested and referred to the process to improve and
complete this project report writing. Then, we would like to express sincere gratitude and respect
to our beloved faculty, Mrs. Aisah Rini Susanti, the one who have contributed and given their
valuable evaluations, comments, and suggestions during the completion and finally
accomplishing of this project report.
Last but not least, hopefully, this script could give a positive feed-back and contribution
to the samantics major as an educational development or those who want to carry out further
research that will encourage us for future chance.
i
TABLE OF CONTENTS
PREFACE................................................................................................................................................
TABLE OF CONTENTS........................................................................................................................
TABLE OF FIGURES...........................................................................................................................iii
TABLE OF TABLES............................................................................................................................iii
CHAPTER I INTRODUCTION.............................................................................................................
1.1 Background..............................................................................................................................
3.10 Performance............................................................................................................................11
ii
3.12 I/O Cancellation.....................................................................................................................12
4.1 CONCLUSION......................................................................................................................15
4.2 SUGGESTION.......................................................................................................................15
BIBLIOGRAPHY.................................................................................................................................16
TABLE OF FIGURES
Figure 3.2 I/O System Components........................................................................................................
TABLE OF TABLES
Table 3.1..................................................................................................................................................
iii
CHAPTER I
INTRODUCTION
1.1 Background
An operating system (OS) is the program that, after being initially loaded into the
computer by a boot program, manages all of the other application programs in a computer..
(Bigelow, June, 2021)
To upgrade from a previous version of Windows 10, IT or users run the Windows 10
OS installer, which transfers any applications and software on the previous OS, as well as
settings and preferences over to Windows 10. IT or users can access a Windows 10 upgrade
through the Windows Update Assistant to manually begin an upgrade or wait for Windows
Update to offer an upgrade when it is set to run. In addition, organizations can use
traditional desktop management software such as Microsoft System Center Configuration
Manager.
BIOS, in full Basic Input/Output System, computer program that is typically stored in
EPROM and used by the CPU to perform start-up procedures when the computer is turned
on. Its two major procedures are determining what peripheral devices (keyboard, mouse,
disk drives, printers, video cards, etc. ) are available and loading the operating system (OS)
into main memory. (Britannica, T. Editors of Encyclopedia (2022, September 23). BIOS.
Encyclopedia Britannica. https://www.britannica.com/technology/BIOS).
1
1.4 Writing Methodology
The writing method that applied by author is quite simple that the way is. Research, discuss and
analyze all of the information materials. Search all of the information from official and reliable
sources.
2
III.8 Synchronous and Asynchronous Input Output
III.9 Input Output File Buffering and Charging
III.10 Performances
III.11 Input Output Completion Part
III.12 Input Output Cancellation
III.13 Input Output Priorities
3
CHAPTER II
BASIC THEORY
The operating system is a program that acts as an intermediary (interface) between the
computer user (user) with a computer (hardware). The operating system is a computer system
software that helps hardware in carrying out the functions of process management functions.
(Setiawan, 2017)
4
CHAPTER III
PROBLEM ANALYSYS
III.1 I/O Problems
Input and output have been a problem in operating system. One reason for this is the large
difference in speeds within a computer system. In the processor and the memory, data
processor and the memory, data processes very quickly though by comparison communication
with peripheral devices is very slow. To write to the screen and a file is a slow process. A user
typing on a keyboard can wait several seconds before he types a character, while for the
processer, it is not a good use of time to wait for input/ output devices.
Table 3.1 Table provides an overview of the speed of some input/output devices
(An Introduction to Windows Operating System Book)
The operating system takes care of communication with hardware. The operating system takes
care of the communication with the screen, mouse, printers and similar equipment.(Krough,
2016 )
III.2 I/O Devices
The type of data can divide input and Output devices that they send, there are:
Block Devices
Block Devices store data in blocks, each of which has an address. The typical size of a
block has generally been between 512 bytes and 32768 bytes. Hard drivers, CD-ROM and
USB drives are examples of block devices.
Character Devices
Character Devices are another type of input/output device than Block Devices.
Character devices transmit and receive data as characters. Examples of Character Devices are
the keyboard, the mouse, printers and network connections. Devices that are not disc are
usually Character Devices. (Krough, 2016 )
5
connection between software and hardware that provides an infrastructure that support
hardware drivers. The input/ output Manager takes care of system hardware drivers, and does
a variety of services related to the equipment attached. The I/O Manager takes care of the
following tasks:
The implementation of drivers.
The configuration of drivers.
Access to hardware devices.
Operations on hardware equipment. (Krough, 2016 )
The operating system calls a driver using a Device Switch is an array. Each driver has
an index in this array that contains a collection of pointers that point to methods used to use
the driver. Different operating system manages drivers in two ways:
1. The driver is always in the memory, so that it is sleeping when not in use.
2. The driver is loaded into the memory only when necessary.
A data structure called an IORB is important for a driver. IORBR – Input Output Request
Block
The data structure contains parameters for input/output drivers, and the information in an
IORB can be:
A flag indicating whether to read, print or similar.
Where data is located in memory.
The Number of bytes to transfer.
The peripheral unit numbers.
To make sure that the drivers for hardware work well with the rest of Windows Operating
System. There are hundreds of thousand of hardware drivers for a Windows operating system,
which provides a lot of code.. (Mark Russinovich, 2008)
6
The design goals for the Windows I/O system are to provide an abstraction of devices, both
hardware (physical) and software (virtual or logical), to applications with the following
features:
To implement these features the Windows I/O system consists of several executive components as
well as device drivers, which are shown in Figure 3.2
The I/O manager is the heart of the I/O system. It connects applications and system components
to virtual, logical, and physical devices, and it defines the infrastructure that supports device
drivers.
A device driver typically provides an I/O interface for a particular type of device. A driver is a
software module that interprets high-level commands, such as read or write, and issues low-
level, device-specific commands, such as writing to control registers. Device drivers receive
commands routed to them by the I/O manager that are directed at the devices they manage, and
they inform the I/O manager when those commands are complete. Device drivers often use the
I/O manager to forward I/O commands to other device drivers that share in the implementation
of a device’s interface or control.
7
The PnP manager works closely with the I/O manager and a type of device driver called a bus
driver to guide the allocation of hardware resources as well as to detect and respond to the
arrival and removal of hardware devices. The PnP manager and bus drivers are responsible for
loading a device’s driver when the device is detected. When a device is added to a system that
doesn’t have an appropriate device driver, the executive Plug and Play component calls on the
device installation services of a user-mode PnP manager.
The power manager also works closely with the I/O manager and the PnP manager to guide the
system, as well as individual device drivers, through power-state transitions.
Windows Management Instrumentation support routines, called the Windows Driver Model
(WDM) WMI provider, allow device drivers to indirectly act as providers, using the WDM
WMI provider as an intermediary to communicate with the WMI service in user mode.
The registry serves as a database that stores a description of basic hardware devices attached to
the system as well as driver initialization and configuration settings.
INF files, which are designated by the .inf extension, are driver installation files. INF files are
the link between a particular hardware device and the driver that assumes primary control of the
device. They are made up of script-like instructions describing the device they correspond to,
the source and target locations of driver files, required driver-installation registry modifications,
and driver dependency information. Digital signatures that Windows uses to verify that a driver
file has passed testing by the Microsoft Windows Hardware Quality Labs (WHQL) are stored in
.cat files. Digital signatures are also used to prevent tampering of the driver or its INF file.
The hardware abstraction layer (HAL) insulates drivers from the specifics of the processor and
interrupt controller by providing APIs that hide differences between platforms. In essence, the
HAL is the bus driver for all the devices soldered onto the computer’s motherboard that aren’t
controlled by other drivers. (Mark Russinovich, 2008)
8
Figure 3.2 I/O System Components (REF : https://www.microsoftpressstore.com/articles/article.aspx?p=2201309)
Most wired devices use cables to transfer data between connected PCs or to connect input and
output devices. Wired devices can have more stable connection as it is not interrupted by
electromagnetic signal, so you can have a faster data transferred from your input devices to your
computer. However, it also has some disadvantages. With wired devices, it is annoying to
manage your cable and sometimes it can be really messed up and tangled. If you are travelling
to somewhere and need more convenient devices, it is better to use wireless devices.
Here are some types of USB connectors:
o Type-A: The standard flat, rectangular interface that you find on one end of nearly every USB
cable. Most computers have multiple USB-A ports for connecting peripherals. You will find
them on game consoles, TVs, and other devices too. This cable only inserts in one way.
o Type-B: An almost square connector, mostly used for printers and other powered devices that
connect to a computer. They are not very common these days, as most devices have moved
onto a smaller connection
9
o Mini-USB: A smaller connector type that was standard for mobile devices before micro-USB.
While not as common today, you will still see these on some cameras, the PlayStation 3
controller, MP3 players, and similar.
o Micro-USB: The current standard (though slowly declining in popularity) for mobile and
portable devices, which is even smaller than mini-USB. While you will still find micro-USB
on all sorts of smartphones, tablets, USB battery packs, and game controllers, some have
moved onto USB-C.
o Type-C: The newest USB standard, this reversible cable promises higher transfer rates and
more power than previous USB types. It is also capable of juggling multiple functions. You
will see it on many new laptops and smartphones, including the MacBook, Pixel phones, and
Nintendo Switch Pro Controller. We discuss USB-C more below.
o Lightning: This is not a true USB standard, but is Apple’s proprietary connector for the
iPhone, iPad, Air Pods, and more. It is a similar size to USB-C and comes standard on Apple
devices released since September 2012. Older Apple devices use the much larger 30-pin
proprietary connector.[5]
2. Wireless devices
Wireless devices has developed rapidly in past few decades. Wireless devices means that you
can connect from a devices to others with a wireless connection, so you do not have to arrange
the cable, you just have to connect it and it is done. Wireless devices are really convenient and
useful. In this era, many devices have a wireless connection such as printer, mouse, keyboard,
10
etc. It becomes popular because it is easy to use, With wireless devices, you can have a better
arrangement of your devices, and you can manage or control it easily. If you have a smart light
bulb, you can connect it to a wife and remotely configure it everywhere and anywhere as long as
you got an internet connection. This type of devices really suits people that like to travel and do
not want to mess with a long tangled cable.
However, with wireless devices, it has some disadvantages too. The price is expensive
compared to the wired ones and you have to charge it. In addition, maybe your connection can be
interrupted by an electromagnetic field, your connection will not be as stable as the wired ones.
(Abraham Silberschatz, 2004)
1. File Buffering
File buffering is usually handled by the system behind the scenes and is considered part of file
caching within the Windows operating system unless otherwise specified. Although the terms
caching and buffering are sometimes used interchangeably, buffering specifically in the
context of explaining how to interact with data that is not being cached (buffered) by the
system, where it is otherwise largely out of the direct control of user-mode applications.
(Andrew S Tanenbaum, 2007)
12
2. File Caching
File data in the system file cache is written to the disk at intervals determined by the operating
system, and the memory previously used by that file data is freed—this is referred to as
flushing the cache. The time at which a block of file data is flushed is partially based on the
amount of time it has been stored in the cache and the amount of time since the data was last
accessed in a read operation. This ensures that file data that is frequently read will stay
accessible in the system file cache for the maximum amount of time. (Andrew S Tanenbaum,
2007)
III.10 Performance
The I/O system is a major factor in overall system performance, and can place heavy loads on
other major components of the system ( Interrupt handling, process switching, memory access,
bus contention, and CPU load for device drivers just to name a few) Interrupt handling can be
relatively expensive, which causes programmed I/O to be faster than interrupt-driven I/O when
the time spent busy waiting is not excessive. Network traffic can also put a heavy load on the
system. Consider for example the sequence of events that occur when a single character is
typed in a telnet session. (Ed Bott, 2015)
13
Figure 3.7 Performance (https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/13_IOSystems.html )
I/O completion ports provide an efficient threading model for processing multiple
asynchronous I/O requests on a multiprocessor system. When a process creates an I/O
completion port, Processes that handle many concurrent asynchronous I/O requests can do so
more quickly and efficiently by using I/O completion ports in conjunction with a pre-allocated
thread pool than by creating threads at the time they receive an I/O request.
The Create I/O Completion Port function creates an I/O completion port and associates one or
more file handles with that port. When an asynchronous I/O operation on one of these file
handles completes, an I/O completion packet is queued in first-in-first-out (FIFO) order to the
associated I/O completion port. One powerful use for this mechanism is to combine the
synchronization point for multiple file handles into a single object, although there are also
other useful applications. (Hart, 2015)
While there are many ways in which IRP processing occurs and various methods to complete
an I/O request, a great many I/O processing operations actually end in cancellation rather than
completion. For example, a device may require removal while IRPs are still active, or the user
might cancel a long running operation to a device—for example, a network operation. The
Windows I/O manager, working with drivers, must deal with these requests efficiently and
reliably to provide a smooth user experience.
14
When drivers fail to play their role in these scenarios, users may experience unkillable
processes, which have disappeared visually but linger and still appear in Task Manager or
Process Explorer. User-initiated I/O cancellation Most software uses one thread to handle user
interface (UI) input and one or more threads to perform work, including I/O. In some cases,
when a user wants to abort an operation that was initiated in the UI, an application might need
to cancel outstanding I/O operations. Operations that complete quickly might not require
cancellation, but that take arbitrary amounts of time like large data transfers or network
operations—Windows provides support for cancelling both synchronous and asynchronous
operations.
Cancelling asynchronous I/Os A thread can cancel its own outstanding asynchronous
I/Os by calling CancelIo. It can cancel all asynchronous I/Os issued to a specific file
handle, regardless of which thread initiated them, in the same process with
CancelIoEx. CancelIoEx also works on operations associated with I/O completion
15
ports through the aforementioned thread-agnostic support in Windows. This is because
the I/O system keeps track of a completion port’s outstanding I/Os by linking them
with the completion port. (Krough, 2016 )
16
Table 3.10 IO Priorities (https://www.microsoftpressstore.com/articles/article.aspx?p=2201309 )
CHAPTER IV
IV.1 Conclusion
The I/O system defines the model of I/O processing on Windows and performs
functions that are common to or required by more than one driver. Its chief responsibilities
are to create IRPs representing I/O requests and to shepherd the packets through various
drivers, returning results to the caller when an I/O is complete.
The I/O manager locates various drivers and devices by using I/O system objects,
including driver and device objects. Internally, the Windows I/O system operates
asynchronously to achieve high performance and provides both synchronous and
asynchronous I/O capabilities to user-mode applications. Device drivers include not only
traditional hardware device drivers but also file-system, network, and layered filter drivers.
All drivers have a common structure and communicate with each other and the I/O manager
by using common mechanisms.
IV.2 Suggestion
Hopefully after read that and understanding it, a reader can choose the input and output
system according to their individual needs
Input and output system can be improves more in the Operating System. Wired and
wireless connector can be improved to be faster and more better, the process of input and
output in the main system or processor is pretty good. But, we think it can be improve more,
like the capeable input output devices to the main system.
17
BIBLIOGRAPHY
Abraham Silberschatz, G. G. (2004). Operating System Concepts. WIley, india : Wiley Edition.
Andrew S. Tanenbaum, Herbert Bos. (2014). Modern Operating System. English: Pearson.
BitcrazedMicrosoft. (2018). Input and Output Methods. About Character Mode Applications,
https://docs.microsoft.com/en-us/windows/console/input-and-output-methods.
Casserly, M. (2018). How to access BIOS in Windows 10. Tech Advisor, techadvisor.co.uk/how-
to-/windows/how-access-bios-in-windows-10-3681505/.
tipskominfo. (2017). sejarah singkat windows 10. sejarah singkat windows 10,
tipskominfo.blogspot.com.
18