750 likes | 898 Views
F2032. FUNDAMENTALS OF OPERATING SYSTEM. Course Assessment Outline. PB – 50% PA – 50% Pre-requisite – F1031 Computer Hardware Quiz – 5 Assignment – 3 Lab – 5 Test – 2 (Theory Test) Tutorial Exercise – 3.
E N D
F2032 F2032 - Fundamentals of Operating System FUNDAMENTALS OF OPERATING SYSTEM
Course Assessment Outline • PB – 50% • PA – 50% • Pre-requisite – F1031 Computer Hardware • Quiz – 5 • Assignment – 3 • Lab – 5 • Test – 2 (Theory Test) • Tutorial Exercise – 3 F2032 - Fundamentals of Operating System
This topic introduces the terms and basic concept of operating system. The topic describes the various types of Operating System, the Interface between operating system and its application programs (System Calls) Chapter one - Introduction to Operating System F2032 - Fundamentals of Operating System
Introduction F2032 - Fundamentals of Operating System
What is an Operating System? • OS controls the execution of application programs and acts as an interface between applications and the computer hardware • Objectives: • to make a computer more convenience to use • to efficiently use the computer system resources • to permit the effective development, testing and introduction of new system functions without interfering with service F2032 - Fundamentals of Operating System
History of Operating System F2032 - Fundamentals of Operating System
History of Operating System • 1st Generation • Vacuum tubes & plug boards • 2nd Generation • Transistors & batch systems • 3rd Generation • ICs & multiprogramming • 4th Generation • Personal computers F2032 - Fundamentals of Operating System
1st Generation (1945–55) • Around mid-1940s, Howard Aiken at Harvard, John von Neumann at the Institute for Advanced Study in Princeton, J. Presper Eckert and William Mauchley at the University of Pennsylvania, and Konrad Zuse in Germany, among others, all succeeded building calculating engines. • Used mechanical relays and later replaced by vacuum tubes. • Cycle times measured in seconds. F2032 - Fundamentals of Operating System
Cont 1st Generation • Single group of people designed, built, programmed, operated and maintained each machine. • All programming done in absolute machine language. • Use plugboards to control machine’s basic functions. • Problem solved were straightforward numerical calculations (sines, cosines, logarithm). • Early 50s, used punch cards (possible to write programs on cards) F2032 - Fundamentals of Operating System
2nd Generation (1955-65) • Built up from individual transistors. • Called mainframes. • Became reliable enough to be manufactured and sold but very expensive. • Clear separation between designers, builders, operators, programmers and maintenance personnel. • Programmer – write program on paper then punch it on the cards. F2032 - Fundamentals of Operating System
Cont 2nd Generation • Programmer bring cards to 1401 • 1401 reads batch of jobs onto tapes • Operator carries input tape to 7094 • 7094 does computing • Operator carries output tape to 1401 • 1401 prints output Figure 1 : An early batch system F2032 - Fundamentals of Operating System
3rd Generation (1965-80) • Technology: Integrated circuits • Programming: Punched cards • Programming languages: FORTRAN & Assembly • Tasks: Scientific & commercial • Computers: IBM 360, DEC PDPs • OS: Multiprogramming/timesharing, spooling • UNIX • POSIX • LINUX F2032 - Fundamentals of Operating System
4th generation (1980-present) • Personal computers. • Technology: Very-large-scale integration (VLSI) • Programming: High level • Programming languages: C/C++, Java, …… • Computer: PC • OS: Windows, MacOS, Linux …… F2032 - Fundamentals of Operating System
Types of Operating System F2032 - Fundamentals of Operating System
Evolution of OS Serial Processing Simple Batch Systems F2032 - Fundamentals of Operating System Multiprogrammed Batch Systems Time-Sharing Systems
Serial Processing • No operating system • The programmer interacted directly with the computer hardware • Machine run from a console, consisting of display lights, toggle switches, input device and a printer • These systems presented two main problems: • scheduling – result in wasted computer idle time or insufficient allotted time • requires a considerable amount of setup time F2032 - Fundamentals of Operating System
Batch Operating System • introduced to improve utilization • use a software known as the monitor (user no longer has direct access to the machine) • tasks are performed in batches • OS waits for a batch of tasks to arrive and performs the operation on the batch • The workflow: • user submit a job (written on card or tape) to a computer operator • computer operator place a batch of several jobs on a input device • Monitor manages the execution of each program in the batch F2032 - Fundamentals of Operating System
Cont Batch OS.. • Monitor reads jobs one at a time from the input device. • Monitor places a job in the user program area. • Each program is constructed to branch back to the monitor when it completes processing • the monitor would automatically begin loading the next program F2032 - Fundamentals of Operating System
Cont Batch OS.. • Machine time alternates between execution of user programs and execution of the monitor • Drawbacks: • some main memory is now given over to the monitor • some machine time is consumed by the monitor • both of these are forms of overhead F2032 - Fundamentals of Operating System
Uniprogramming • The processor is often idle. • I/O devices is slow compared to the processor • the processor spends a certain amount of time executing until it reaches an I/O instruction • it must wait until that I/O instruction concludes before proceeding F2032 - Fundamentals of Operating System
Multiprogramming Operating System • multiple jobs are performed by the operating system simultaneously at a time • when one job needs to wait for I/O, the processor can switch to the other job – no waiting for I/O • Multiprogramming uses hardware that supports I/O interrupts and DMA (direct access memory) • Memory management is needed – requires scheduling algorithm F2032 - Fundamentals of Operating System
Cont Multiprogramming OS F2032 - Fundamentals of Operating System
Cont Multiprogramming OS F2032 - Fundamentals of Operating System
Distributed Operating System • different processors that are loosely coupled operate on different jobs and communicate with each other F2032 - Fundamentals of Operating System
Operating System Product F2032 - Fundamentals of Operating System
Operating System Product • Windows • Linux • Mac • Sun F2032 - Fundamentals of Operating System
Windows Operating System • Windows 3.0 • Windows 95 • Windows 98 • Windows 2000 • Windows ME • Windows XP • Windows Vista • Windows 7 F2032 - Fundamentals of Operating System
Windows Operating System F2032 - Fundamentals of Operating System
Linux Operating System • Unix-like operating systems based on the Linux kernel originally written in 1991 by Linus Torvalds • Open source F2032 - Fundamentals of Operating System
MAC / Apple • established on April 1, 1976 by Steve Jobs, Steve Wozniak, and Ronald Wayne • Apple I, II • Apple Lisa • Macintosh • Mac • iMac • Macbook • Macbook air F2032 - Fundamentals of Operating System
Cont Apple F2032 - Fundamentals of Operating System First Apple computer : Apple I
Sun Operating System • UNIX-based operating system • SunOS then succeeded by Sun Solaris • Open source under OpenSolaris project F2032 - Fundamentals of Operating System
Hardware Compatibility and Minimum Requirement for an OS F2032 - Fundamentals of Operating System
Network Operating System F2032 - Fundamentals of Operating System
Network Operating System • NOS is software that controls the operations of a computer, including local hardware activities and communication over network media • Most NOS are multitasking systems because they must support both local and remote activities F2032 - Fundamentals of Operating System
Cont NOS… • Important features of NOS:- • connect all machines and peripherals into a network. • coordinates and controls the functions of machines and peripherals across the network. • support security and privacy for network and local. • control access to resources depends on user authentication. • manages resources from centralized directory. • gives ability to share resources F2032 - Fundamentals of Operating System
Shell Program, Menu Driven System and Graphical User Interface F2032 - Fundamentals of Operating System
Shell Program • program that provides the traditional, text-only user interface for operating systems. • Its primary function is to read commands that are typed into a console (i.e., an all-text display mode) or terminal window (an all-text window) in a GUI (graphical user interface) and then execute (i.e., run) them F2032 - Fundamentals of Operating System
Cont Shell Program • What is shell? • derives its name from the fact that it is an outer layer of an operating system. A shell is an interface between the user and the internal parts of the operating system (at the very core of which is the kernel). • E.g.: • Windows command prompt • Windows Powershell • Unix Shells • Appescript F2032 - Fundamentals of Operating System
Menu Driven System • interactive computer system in which the operator requests the processing to be performed by making selections from a series of menus OR • A program that obtains input from a user by displaying a list of options • E.g.: • Automatic Teller Machine • Washing Machine F2032 - Fundamentals of Operating System
Cont Menu Driven System • advantages: • firstly, because input is via single key strokes, the system is less prone to user error; • secondly, because only a limited range of characters are “allowed”, the way in which the input is to be entered is unambiguous. F2032 - Fundamentals of Operating System
GUI • An interface for issuing commands to a computer utilizing a pointing device, such as a mouse, that manipulates and activates graphical images on a monitor F2032 - Fundamentals of Operating System
Cont GUI.. • replaced the character-based display with a graphics display • eliminated the need to enter cryptic commands in a required sequence. • fonts could be changed and resized on screen, providing a what-you-see-is-what-you-get (WYSIWYG) capability for creating printed materials F2032 - Fundamentals of Operating System
Cooperative Multitasking, Preemptive Multitasking,Multithreading F2032 - Fundamentals of Operating System
Cooperative Multitasking • Also known as non-preemptive multitasking • Current running task to give up the processor to allow other tasks to run • Cooperative multitasking requires the programmer to place calls at suitable points in his code to allow his task to be descheduled • If a task does not allow itself to be descheduled all other tasks on the system will appear to "freeze" and will not respond to user action • Advantage: • the programmer knows where the program will be descheduled and can make sure that this will not cause unwanted interaction with other processes F2032 - Fundamentals of Operating System
Preemptive Multitasking • multitasking model in which the operating system takes control away from a program and gives it to another program, in order to ensure that all applications get their fair share of time • creates a time-shared environment in which running programs receive a recurring slice of time from the CPU • Advantages: • When running software that heavily loads the CPU, the rest of the system doesn't become unresponsive while the program is doing something. • Programs don't have to be written to stop in the middle of what they're doing to preserve system responsiveness, as the OS does this for them. This makes development simpler F2032 - Fundamentals of Operating System
Multithreading • The ability of an operating system to execute different parts of a program, called threads, simultaneously. • Threads are bound to a single process • Each process may have multiple threads of control within it. • The address space of a process is shared among all its thread • No system calls are required to cooperate among threads • Simpler than message passing and shared memory F2032 - Fundamentals of Operating System