Introduction to
Objectives
A firm understanding about OS, its primary purpose and goals to a computer system; 2. Trace the history of OS and the development of systems. 3. Concepts basic to OS; 4. OS components and its component management; 5. Computer system operations, structure of the computer systems and hardware protection; 6. Services of OS.
1.
Introduction
Major components of Computer Systems:
Hardware Computer users Software
Note:
Without software, computer is of little use. However with software, computer can store, manipulate and retrieve information, and can engage in many other activities.
Introduction
Software
can be grouped into:
System software (OS and utilities) Application software (user programs)
User1 User2 User3 User n
compiler systems
assembler
text editor
database
Application Programs
OPERATING SYSTEMS
Computer Hardware
Introduction
Utilities Application Software
OS
device CPU
device
device
Memory
Introduction
Without
an OS, a user who wanted to run a program that uses some of the resources of the system will need to write a program that includes code for driving the resources required. Code for handling keyboard, printers, etc. have to be written.
Introduction
To
alleviate these difficulties, OS contains set of procedures for driving the resources of the system, thus it frees the users from the dirty details of writing these drivers for the devices involved in the problem being solved.
What is OS?
Program
implemented either in firmware or software which acts as an intermediary between the user of a computer and the computer hardware.
Collection
of system programs (procedures) that together control the operation of a computer system.
purpose is to provide an environment wherein users can execute programs
The
Types of OS
Desktop
OS
Typically installed on PC type of computer, used by a singe user at a time, and may or may not be connected to a network.
Server
OS
Installed in a more powerful computer connected to a network enabling multiple users to access information such as e-mails, files, and software
Network OS
NOS
Either desktop or server OS that enables a computer to communicate with other computers through network cable (eg. CAT-5/6) or wireless transmissions (eg. wiFi / wiMAX) and coordinates network communication from sharing files and hardware devices to sending e-mail and video conferencing.
Different OS
Mainframe
OS
designed to optimize utilization of hardware.
PC
OS
supports games, business applications, and the like.
Handheld
OS
designed to interface with the computer to execute programs.
Primary goals of an OS
1.
2.
Make the computer convenient to use Use the computer hardware in an efficient manner.
Sizes of OS
Its size & complexity depend on a number of factors:
Computer system characteristics: (has one or more processors) Provides facilities: (allows interactive use or not?)
Applications to support (allows many users to use the same application simultaneously or not?)
Why study operating systems?
In this course, we will NOT write OS but
One of the largest and complicated system software. Draws on lots of areas
Software Engineering, Computer Architecture, Data Structures, Networks and Algorithms etc.
If certain things in the OS need to be changed, better understand them first! Can apply techniques used in an OS to other areas
complex data structures, conflict resolution, concurrency, resource management
What does an OS do?
It controls the function of the computer system. OS includes programs that:
Initializes the hardware Provides basic routine for device control Provides for the management, scheduling and interaction of tasks Maintain system integrity, and Handle errors
Where are OS found?
Complexity
of OS depends on the type of functionality it provides:
Some OS manage many users on a network.
Found in petrol pumps, airplanes, video recorders, washing machines and car engines.
What is a General Purpose OS?
Provides
the ability to run a number of programs.
MS Windows, UNIX, Linux, etc.
Viewpoints of an OS
Similar
to a government Resource Allocator/Manager Control Program An extended machine
Note: OS runs in a kernel/supervisor/monitor mode (protection from user by the hardware)
Single-user vs. Multi-user OS
Single user OS provides access to the computer system by a single user at a time.
Examples are: Win95, WinNT, Win2K, Win XP
Provides with the capability to perform tasks on the computer system such as writing programs and documents, printing and accessing files
Single-user vs. Multi-user OS
A
multi-user OS allows more users to access the computer system at one time via network, thus accessing the system remotely from another terminal.
Examples are UNIX and mainframes such as the IBM AS400.
Multi-user OS
Advantages
Hardware is very expensive, and it lets a number of users share this expensive resource (reduced cost) Since resources are shared, they are more likely to be in use than sitting idle being unproductive. (increased resource utilization)
Multi-user OS
Disadvantages
More users slow down the performance of the system. Cost of hardware, requires a lot of disk space and memory. Multi-user OS cost is more than software for single-user.
Operating System Utilities
OS
consists of hundreds of thousands of program codes and stored on hard disk. Portions of the OS are loaded into the RAM when needed.
Utilities
are provided for:
Managing files and documents Development of programs and software Communicating with people and with other computer systems Managing user requirements for programs, storage space and priority.
OS Interfaces
OS
provides each user with an interface that accepts, interprets and executes user commands or programs.
Shell
or command line interpreter. (CLI)
In some systems, this might be a simple lineby-line text mode (such as DOS or UNIX) or highly graphical (such as Windows)
What is a multitasking OS?
Provides
the ability to run more than one program at once. of these tasks the user is doing appears to be running at the same time
Each
Advantage: increased productivity Disadvantage: more memory required.
Multitasking with One program
Multitasking with Two Programs
Multitasking with Three Programs
Utilization with multitasking
Evolution of OS
Programmed in machine language and used front panel switches for input.
The programmer is also the operator interacting with the computer directly from the system console (control panel).
Introduce Device drivers (a subroutine performing various I/O devices which involves complex sequences of device-specific operations) Setup time is very high.
Evolution of OS
Problems:
Programmers needed to sign-up in advance to use the computer one at a time. Executing a single program (often called job) required substantial time to setup the computer.
A. Simple Batch Systems
Similar jobs are batched and run together with no direct interaction between user and the computer during execution. Automatic job sequencing Computers are extremely valuable. Pre-OS: Resident Monitor
Initial control in monitor Control transfers to job When job completes, control transfers back to monitor
Overlapped CPU and I/O operations
Online Processing CPU is directly connected to card readers and line printers
Overlapped CPU and I/O operations
Off-line Processing
Spooling
Simultaneous Peripheral Operation Online. Uses disk as input device and for storing output files.
B. Multiprogrammed Batch Systems
OS keeps several jobs in memory at a time and picks and begins to execute one of the jobs in the memory.
Drawback: Causes the computer system to stop executing when the monitor encounters error (bug). Other jobs in the memory will not be executed as well.
C. Time sharing systems
Interactive
Computing
Allows interaction between user and process. The CPU executes multiple jobs by switching between them but the switches occur so frequently that users may interact with each program while it is running.
Monitor
T1 T2 T3 T4
Job 1 Job 2 Job 3 Job n
Time sharing systems
Time
sharing (or multitasking) is a logical extension of microprogramming.
Job A Job B
CPU
I/O
0 5 10 15 20 25 30 35 40
time
Uniprogramming: Job A and B end at time 36 CPU is idle 47% I/O is idle 53
Time sharing systems
Job A
CPU I/O
Job B
10
15
time
pure multiprogramming Job A and B end at time 20.
Time-sharing mainframe with terminals
Mainframe
Terminal Controller
Sample problem #1:
Consider
a system designed to run only one user program at a time. Suppose the user is running a program designed to execute the ff sequence of instructions:
while (not end of input) { read from the card reader process the data : : write to the printer : : }
Sample problem #1(cont.)
Assuming
that the computer system has the following characteristics:
Card reader: 300 cards / min. Line printer : 300 lines / min. CPU : 1 s/instruction
Sample problem #1(cont.)
Suppose it takes about 10,000 instructions to process each line (one card) of input, then a card will require the ff:
Input phase
(1 min/ 300 cards) x (60,000 ms/min) = 200 ms
Process phase
(10,000 inst) x (1 s/inst) x (1 ms / 1000 s) = 10 ms
Output phase
(1 min/ 300 cards) x (60,000 ms/min) = 200 ms
CPU utilization = (10 / 410) x 100% = 2.4 % Therefore, it shows poor CPU utilization
Its your turn
Sample
Question #2: Given the following characteristics of a single-user system:
Card reader Line printer CPU : 600 cards /min : 100 lines /min : 1 sec / instruction
Suppose it takes 1,000 instructions to process each line of input and produce one line of output, compute the CPU utilization, and input and output device utilization.
D. Personal Computer
Personal Computer
computer system dedicated to a single user
I/O devices User convenience and responsiveness Adopt technology developed for larger OS often individuals have sole use of computer and do not need advance CPU utilization or protection features
May run several different types of OS
E. Parallel Systems
Systems
having more than one processor (multiprocessor systems) in close communication, sharing the common bus, clock, memory and peripheral devices. coupled; multiprocessing
Tightly
Advantages of parallel systems
Increased
throughput Economical Increased reliability
Graceful degradation Fail-safe systems
Types of parallel systems
Symmetric
multiprocessing model (SMP)
Each processor runs an identical copy of the OS and these copies communicate with each other Many processes can run at once without performance deterioration Most modern OS support SMP systems
CPU 1 CPU2 CPU3 CPU4
Types of parallel systems
Asymmetric
multiprocessing model (AMP)
Each processor is assigned a specific task; master processor schedules, and allocated work to slave processors. More common in extremely large systems
Master CPU
Slaves CPU
Assignment
Research
on the differences between Symmetric and Asymmetric multiprocessing systems in terms of their:
Function Use / Application Give applications for each
F. Distributed Systems
Distribute computation among several processors.
F. Distributed Systems
Loosely coupled systems
processors do not share memory or a clock, instead, each processor has its own local memory. LAN or WAN implementations May be either client-server of peer-to-peer systems
Requires networking infrastructure
Resources on each machine are managed by that machines OS and working together to manage the collective network resources
Reasons for building Distributed Systems
Resource sharing Computation Speedup
allows to distribute the computation among various sites. Movement of jobs is called load sharing
Reliability Communications
Distributed Systems : Clustered
Clustering
allows two or more systems to share storage. Provides high reliability Asymmetric clustering
one server runs the application while other servers standby
Symmetric
clustering
all n hosts are running the application.
G. Real-time systems
Used
as a control device in a dedicated application
Eg. controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems
Real-time
OS
Designed to support execution of tasks within specific clock time constraints. Correctness of a processing task is dependent on the clock time at which the processing occurred Example: Windows XP, Mac OS X
Real-time systems
Deadline
(time critical) requirement welldefined fixed-time constraints.
Eg. Industrial control systems, weapons systems, computer controlled products, ballistic missile control systems, airline reservation systems.
Network to access Real-time Netware server
Windows XP
Mac OS X
Netware server
NETWORK
Windows XP
Windows XP
Handheld Systems
Personal
Digital Assistants (PDAs) Cellular telephones
Issues
Limited memory Slow processors Small display screens (still true today?)
H. Embedded Systems
Also
known as dedicated systems. Perform a specific task only and cannot run a wide variety of programs unlike generalpurpose systems.
Migration of OS Concepts and Features
Major Milestone in OS development
UNIX
(1968)
8-bit OS First widely used multiuser , multitasking OS for minicomputers
CP/M
(1975)
8-bit OS First OS that allowed serious business work on small personal computer. VisiCalc (1978) was the first business calculation program for CP/M.
Major Milestone in OS development
MS-DOS
(1980)
16-bit OS First OS for IBM PC family of computers. Lotus 12-3 and WordStar were introduced for PC.
PC-DOS
(1981)
16-bit OS IBM version of MS-DOS
Mac
OS (1984)
16-bit OS First graphical user interface OS that introduced the use of mouse to PC-based systems.
Major Milestone in OS development
Mac
OS X
OS X is version 10 of the Apple Macintosh OS. First "complete revision" of the OS since the previous version is OS 9, with a focus on modularity so that future changes would be easier to incorporate. Incorporates support for UNIX -based applications as well as for those written just for the Macintosh.
Major Milestone in OS development
Mac
OS X
Original Mac OS X release has code name (name after big cats) Cheetah. Public Beta was called Kodiak Mac OS X 10.1 was called Puma Mac OS X 10.2 was called Panther Mac OS X 10.3 was called Jaguar Mac OS X 10.4 was called Tiger Mac OS X 10.5 was called Leopard (2007) Mac OS X 10.5 was called Snow Leopard
Major Milestone in OS development
Linux
Unix-like OS designed to provide PC users a free or very low-cost OS Has a very efficient and fast-performing system.
Linux's kernel was developed by Linus Torvalds at the University of Helsinki in Finland An acronym for Linus Unix.
Major Milestone in OS development
Windows
3.0 (1990)
16-bit OS First usable version of a graphical OS for the PC
Windows
for Workgroups (Windows 3.11)
1993, 16-bit OS First Microsoft Windows with peer-to-peer networking support for the PC.
Major Milestone in OS development
Windows
NT (New Technology)
1993, 32-bit OS Microsofts first attempt to bring a true 32-bit preemptive, multitasking OS with integrated network functionality offered in a workstation and server versions.
Windows
95 (1995)
16/32-bit OS Upgrade to Win 3.x with improved user interface, hardware support with 32-bit code, and provides backward compatibility for 16-bit applications.
Major Milestone in OS development
Windows
95
Released on August 24, 1995 Referred to as Windows 4.0 or by the internal codename Chicago
Major Milestone in OS development
Windows
98 (1998)
32-bit OS Implemented many bugs fixes to Windows 95, more extended hardware support, and fully 32bit.
Windows
2000 (2000)
32-bit OS Revision of Win NT that is faster and more reliable, comes in several versions including Professional, Server, Advanced Server, and DataCenter.
Major Milestone in OS development
Windows
ME (Millennium Edition)
2000, 32-bit OS Upgrade of Win 98 designed for home use with improved multimedia capabilities
Windows
XP (2001)
32/64-bit OS Successor to Win Me 2000 Professional with Home, Professional, Tablet PC, and Media Center versions.
Major Milestone in OS development
Windows
XP
Has a codename of Whistler Stands for eXPerience. XP shared the Whistler code-name with Windows 2003 Server.
Major Milestone in OS development
Windows
Server 2003 (2003)
32/64 bit OS Has Standard, Web, Enterprise, and DataCenter Editions designed as a server platform for MS .NET initiative which integrates all types of devices PC, handheld computers, cell phones, and home appliances for communications over the internet.
Windows
Vista (2008) Windows 7 (2009) - Windows 8
Assignment
Research
on other open-source OS (min. of 10). Write important information regarding such OS including:
Description and history Proponents and supporters Prog. Language used, OS which was based Year it was first release, and its versions Licensing, Server/workstation/mobile, others
Print
the OS milestone graph.
Mobile OS
Symbian OS RIM's BlackBerry Linux Android
iPhone OS Windows Phone, Palm WebOS, Maemo
End of Presentation