2. 2
DEFINITION
• It is difficult to clearly define operating system.
• In general, there is no completely adequate definition of OS.
• Also, there is no universally accepted definition what is OS part.
• Simple: includes everything seller delivers as "operating system".
• However, characteristics vary from system to system:
• Some systems take up less than 1 MB of space and do not even
have a word processing program, while others require several
GB of space and are fully windows-based and graphics-oriented.
3. 3
DEFINITION
• Therefore, it is usually understood that operating system is a
program constantly running in computer (or a program that is
constantly in computer main memory) and then usually called
the kernel.
• Along with the kernel, there are two other types of programs:
system programs, which are associated with the operating
system but are not necessarily part of the kernel, and application
programs, which include all programs not associated with the
operation of the system.
• The matter of what makes an OS became increasingly important.
4. 4
DEFINITION
• In 1998, the United States Department of Justice filed suit
against Microsoft, in essence claiming that Microsoft included
too much functionality in its operating systems and thus
prevented application vendors from competing. (For example, a
Web browser was an integral part of the operating systems.) As
a result, Microsoft was found guilty of using its operating-system
monopoly to limit competition.
5. 5
USER VIEW
• Issue is that operating systems have two "unrelated" role:
➢ provides user programs clean abstraction set of resources instead of
chaotic hardware, and
➢ manages these hardware resources.
• User view varies according to the interface being used.
• Most users have a laptop/PC (monitor, keyboard, mouse).
6. 6
USER VIEW
• PC is designed for one user to monopolize its resources.
• The goal is to maximize the work that the user is performing.
• In this case, the operating system is designed mostly for ease of
use, with some attention paid to performance and none paid to
resource utilization—how various hardware and software
resources are shared. Performance is, of course, important to the
user; but such systems are optimized for the single-user
experience rather than the requirements of multiple users.
7. 7
USER VIEW
• Second case, users interact with mobile devices
• These devices are typically connected to networks through
cellular or other wireless technologies.
• The user interface for mobile computers - a touch screen.
• Mobile devices interact through a voice recognition interface.
• Third case, computers with little or no user view (embedded
computers).
8. 8
SYSTEM VIEW
• OS is a program closest to hardware devices.
• OS acts as their manager.
• OS faces numerous and potentially conflicting requirements for
resource allocation to certain programs and users, but also that
the system as a whole operates efficiently and reliably.
• Therefore, it is control program that controls the execution of
user applications to prevent errors and improper computer use.
9. 9
SYSTEM VIEW
• This primarily relates to the use and control I/O devices.
• When multiple programs want to use same resources, OS takes
its role, to ensure orderly and controlled allocation of processors,
memory and I/O devices between these programs.
• So, main task is to take care of who is using which resource, to
allow use of certain resources, monitor their use and to mediate
between conflicting demands of different users/programs.
10. 10
SYSTEM VIEW
• For example, what would happen if three programs that are
running on the same computer at the same time trying tu print
outputs on the same printer?
• First few lines of the press could be the first, following the line of
the second, and then some lines from the third program.
• So, the result would be chaos.
• The operating system brings order buffering on disk all output
sent to the same printer.
11. 11
SYSTEM VIEW
• When printing one program output is completed, OS copies
another program output from a file on the disk where it was
stored and send it to the printer.
• At the same time another program can continue generate more
output and is not aware that output have not yet gone to printer.
• This role is evident when computer or network has more users.
12. 12
SYSTEM VIEW
• In this case it is necessary to control and protect memory, I/O
devices, and other resource.
• Otherwise, users can interfere each other.
• So, OS basic tasks are to monitor which programs use which
resources, to allocate resources to the requirements, be
responsible for their use, and to mediate the conflicting
demands of different applications and users.
13. 13
SYSTEM VIEW
• Resource management includes multiplexing (sharing) resources
in two ways: in time and space.
• Time multiplexing occurs when a different programs alternate in
the use of resources.
• First, one program uses a particular resource, then second, ...
• OS determines which program is next and how long resource will
be used. eg., previous printer case.
14. 14
SYSTEM VIEW
• OS first assigns CPU to one program, then after a certain time it
granted another, and then another, and yet it can be assigned to
the first one and so on.
• Space multiplexing - each user gets part of the resource.
• Eg., main memory is shared among several programs.
• More efficient to hold several programs in memory rather than
give the entire memory to one program, especially when
multiplexing needs only a small part.
15. 15
SYSTEM VIEW
• hard disc - OS has to allocate disc space and take care of who is
using which disk blocks.
• computer architecture at the machine language level for the user
program is primitive
• (I/O operations concerning the interrupts, the counter, main
memory and other low-level details)
16. 16
SYSTEM VIEW
• Therefore, the user program does not want intimacy with the
programming, for example hard disk programming.
• User program requires simple high-level abstraction.
• Eg., operation (abstraction) "read a block from a file" is far
simpler than the start-up operation of the head drive, its position
within the desired block, defining the empty space between
sectors etc., all this is "read from the disc block".
17. 17
SYSTEM VIEW
• So, it is necessary the existence of software "layer" that "hides"
complexity of a computer system to the end-user and provides
simpler instruction set.
• This software layer is just an operating system.
•Thus, abstraction is the key for managing complexity.
•Good abstraction turns unsolvable task in two feasible.
18. 18
SYSTEM VIEW
•First is the defining and implementation of abstraction.
•Second is its use to solve computer problems.
•The form of abstraction, which all end users understand is file.
•This is useful information in the form of digital images, stored e-
mail or Web pages.
19. 19
SYSTEM VIEW
•Working with photos, e-mail and Web pages is much easier than
to load the block from the file.
•In any case, OS has to create a good abstraction, properly
implements it and at the end managing objects abstracted.
•So, OS role is to create for user virtual machine that is a lot
easier to program than the existing hardware.
40. 40
HISTORY
• OS have evolved along with the hardware.
• Therefore, computer generations are OS historical development.
• First true digital computer - English mathematician Charles
Babbage (1792-1871).
• The greater part of his life and fortune he spent on the attempt to
build "Analytical Engine", it has never worked properly.
• This machine was purely mechanical, a former technology could
not produce machine parts with required accuracy.
• In any case, the analytical engine did not have an OS.
41. 41
HISTORY
• First generation computers (1945-1955).
• Period from analytical engine to the Second World War: very
small progress in constructing digital computers.
• Since World War II real explosion of activity.
• The State University of Iowa, first functional digital computer (300
vacuum tubes).
42. 42
HISTORY
• At the same time, Berlin: Konrad Zuse Z3 computer made of the
relay.
• In 1944 a group of English Bletchley Park built the Colossus,
• Mark I - Harvard,
• ENIAC University of Pennsylvania.
43. 43
HISTORY
•Their basis were vacuum tubes (up to 20000 tubes per computer),
huge and very expensive.
•They were used mainly by army.
•very slow, they were programmed in machine language, and even
plugboard was used through which they are linked by electric
circuits connecting thousands of cables to the panel, which was
carrying out basic machine control functions.
•Symbolic languages (including assembler), as well as OS at that
time were unknown.
•People who worked on these computers perform all tasks - from
programming to maintenance.
44. 44
HISTORY
• Servicing computer system was entirely left to the operator, who
had to prepare all necessary things for certain task.
• The man had full control of the computer system.
• The system was slow and carried out only one program, ie.
performed only one task.
• Utilization of the most important resources - CPU and operating
memory - was very small.
46. 46
HISTORY
• Most of the time spent on operator activities and I/O operations,
a much smaller part CPU operations.
• Although this system was extremely inefficient, the relationship
between these periods was in the acceptable range because of
the relatively low speed of the central processor.
• 1950‘ - punch cards were introduced, somewhat improved
routine tasks.
• It was possible to write programs and to read them from the
cards instead of using the plugboard. Otherwise, all other
procedures remained the same.
48. 48
HISTORY
• Second generation (1955-1965) was based on transistors
• Computers were much smaller, more reliable and cheaper.
• Located in separate rooms, divided into three functional units:
the front room, mainframe and exit room.
• The developers wrote programs on paper, usually FORTRAN, then
programs transmitted on punched cards, which were left in a
room with a computer input.
49. 49
HISTORY
• System operator was taking punch cards and put them into the
computer, first card with an FORTRAN interpreter, and then punch
cards with a program to be executed.
• The main computer is performing a job, and the result was also
on punch cards, which were passed in the room with the results.
• A lot of time were spent on walking between different rooms
with punch cards.
50. 50
HISTORY
• OS as a separate term was still not there.
• Improvement - batch processing based on the use of
reader/writer of magnetic tape - unit faster than punch cards.
• in the entry room operator collected a certain quantity of similar
programs (eg. all programs that require an FORTRAN interpreter);
using cheaper computer which transferred punch cards to
magnetic tape.
51. 51
HISTORY
• After that, the magnetic tape is transferred to the main computer
room reserved for program execution (for example, IBM 7094).
• The host computer loaded by a special program that was in
charge to load programs one by one and executes them.
• This program can be considered as ancestor of the OS.
52. 52
HISTORY
• After executing the program, the results are recorded on the
second magnetic tape which the operator transfers to the third
computer in charge for results transfer from the magnetic tape to
the punch cards.
• Smaller computers (input-output) are not directly connected to
the host computer, which means to work in off-line mode.
55. 55
HISTORY
• Second generation characteristics:
• increasing speed of central processors, capacity of main memory
and external memory,
• new and faster input-output units.
• Programs are written in symbolic machine language, assembly
language or high-level programming language (FORTRAN).
• The operator is no longer able to effectively serve the computer
system, because his reactions are too slow.
56. 56
HISTORY
• Servicing and management system functions have been divided
between the operator and the control program.
• two basic types of programs: the control and user.
• Third generation (1965 -1980).
• By the early sixties there are two separate, incompatible, groups
of computers.
• One - types IBM 7094 - for scientific and engineering
calculations.
• The other - commercial computers as IBM 1401 - the banks and
insurance companies for sorting and printing.
57. 57
HISTORY
• The appearance of class IBM System/360 (integrated circuits)
IBM has joined this two types in a series of compatible
computers with different power.
• Each of these computers is suitable for both scientific and
business applications.
• Computer's series System/360 were working under OS/360,
which was very cumbersome and full of errors.
59. 59
HISTORY
• development of discipline software engineering, introduced new
features:
• multiprogramming
• multiple input-output operations (spool)
• time-sharing (multitasking)
• When a program is waiting results of the input-output operations,
the processor is unused, lost of processor time.
60. 60
HISTORY
• This problem was especially expressed in the business program.
• Multiprogramming is a technique for better processor utilization:
memory divided into partitions loaded by different applications.
• While a program is waiting for I/O operation, the processor can
execute another program. If a sufficient number of programs in
memory, the processor is constantly used.
• This means, CPU utilization is increased: activities are organized
while a specific job is waiting for I/O other process can use CPU.
61. 61
HISTORY
• For multiprogramming OS must provide:
• I/O routines,
• Memory management - system must allocate memory to tasks,
• CPU scheduling - system must make choice between jobs that are
ready to execute,
• Resources allocation.
• Multiprogramming batch systems enable the effective utilization
of system resources but are not adapted to user-computer
interaction.
62. 62
HISTORY
• Spooling (Simultaneous Peripheral Operation On Line)
• technique compensate speed of I/O devices by using fast devices
such as disk drives.
• Therefore, multiple I/O operations can simultaneously execute.
• Faster device accepts all the inputs, and then input to the CPU
forwards with fast devices.
• The entrance is realized by transferring the contents of punch
cards to disk using a special device, without using the CPU.
63. 63
HISTORY
• Parallel new jobs are loaded to the disc, while the processor
executes programs in memory.
• When one program finishes, the processor in it place loads
second one from the disc.
• Time-sharing is a technique that allows each user can work with
computer interactively, through a special terminal which is in the
same time input and output device for user.
• Time-sharing is a special form of multiprogramming, where each
terminal has allocated CPU time.
64. 64
HISTORY
• After the expiration of the assigned amounts of processing time,
the processor is allocated to another terminal.
• Time-sharing is logical extension of multiprogramming.
• Allows the CPU to execute multiple jobs by switching among
them, but the switches occur so frequently that the users can
interact with each program while it is running.
• In systems with time sharing:
65. 65
HISTORY
➢Multiple tasks that are in the memory and on disk multiplex CPU (CPU
can be allocated to a particular task only if it is in memory).
➢The task is moved from memory to disk, and vice versa.
➢"on-line" communication between users and systems is enabled; when
OS ends executing a single command, looks for "control report" from the
(keyboard) user.
• Usual interaction between the CPU and I/O device is I/O
operations are typically carried out by man-speed as they are
man-dependent.
• In this way, the processor has ability to serve other users.
66. 66
HISTORY
• In order to achieve a satisfactory response time, jobs swapping
between memory and disk is introduced (virtual memory
implementation).
• Time-sharing OS allows multiple users to simultaneously use the
computer system.
• Time-sharing OS is more complex than ordinary
multiprogramming OS.
• Part of the disk is allocated for swapping.
67. 67
HISTORY
• Therefore, time-sharing systems have to provide virtual memory
management, which implies file system implementation.
• The file system can be located on the collection of discs, so that
time-sharing systems must also support and disc management.
• There are two major operating systems - Multics and Unix.
• The project Multics (Multiplexed Information and Computing
Service) unsuccessful attempt of the company MIT, Bell Labs, and
General Electric to build a powerful computer and OS that will be
able to work with a large number of terminals.
68. 68
HISTORY
• This model is ancestor of computer networks and the Internet.
• UNIX is simplified variant of the Multics system, which has
undergone a practical realization and expansion to the present
day. (UNI = one, X = CS = Computing Service).
• Third generation characteristics:
➢ due to multiprogramming, increased speed and memory size, and
variety of I/O units, more control and management functions are
transferred from man to computer.
➢ man loses ability to control the internal situation in a computer
system and everything possible is transferred to the computer system
(the individual system programs).
69. 69
HISTORY
• Set of all these programs is called OS.
• developer releases a series of complex routine work and he has
possibility of greater involvement in the creative part of the job.
• Development of utility programs, whose task is to facilitate and
simplify the use of computer systems.
• Therefore, there is division on system and user (application)
software.
70. 70
HISTORY
• Fourth computer generation (1980-1990), the emergence of PC.
• LSI (Large Scale Integration) chips, containing thousands of
transistors on a square centimeter of silicon. Known computers
that generation were Spectrum, Commodore, Atari, IBM PC,
Apple Macintosh, etc.
• First PC OS are MS-DOS and UNIX.
71. 71
HISTORY
• User software development, follows user interface development.
• In this way, people who do not know the detail computer system
and programs, can use it.
• there are also network and distributed operating systems.
• Network OS - PCs are connected to a network, each computer has
its own OS, and communicate with each other using a protocol (a
common language for communication).
72. 72
HISTORY
• User one computer, can log on another, download some files and
so on. He knows he is not alone in the network, is aware of the
different computers with which to communicate over the
network (local and global).
• Distributed OS - users sees it as a uniprocessor system, but in fact
works with multiple processors.
• Several computers in the network, but only one OS - manages all
resources in the network.
73. 73
HISTORY
• user does not need to take into account where his files are
located or where the program is executed, it is OS job. Distributed
OS is therefore acting as a single entity.
• The user is not aware that he is in a network with other
computers, it seems that there is only one computer.
• Fifth computer generation.
• Very Large-Scale Integration hundreds of thousands of transistors
on a chip, massive parallelism,
74. 74
HISTORY
• RISC architecture (Reduced Instruction Set Computer).
• developed a new generation of processors (Intel Pentium series
processors) whose power reached a fantastic level.
• strong development of the Microsoft Windows OS with a
complete graphical environment, development of various Linux
and Unix platforms.
• Sixth generation; modern computers.
• nanotechnology and neural networks (mimic human brain).
75. 75
HISTORY
• multicore processors and incredibly large Internet development,
network systems and services.
• significant emergence and development of Cloud Computing,
which means that soon there will be no need for OS in computers
because it will contain all the software on the Internet.
• Implementation of new solutions and chips production
techniques (chips based on graphene, nanotubes and biochips),
developing robotics and artificial intelligence.