Current Technology Personal digital assistant (PDA) Mobile phone / PDA video phone Laptop Best friend
Why Operating System ? Stand alone Computer …. FOR WHAT ???
Is an OS essential? Not Necessary If OS is not available, application code is responsible of conducting duty of OS( Memory Management, Resource Allocation etc) It is Good Approach to have OS, this will allow individual programs to perform specific task not to waste time in writing code for management task i.e. Resource Allocation Memory management Manage I/O
Career Avenues…. Advantages Good salary Innovation @ work Advantages Good salary Innovation @ work Disadvantages ERROR, can not afford !!! Disadvantages ERROR, can not afford !!! Emerging trend of free OS like Linux, Google Chrome has increased professionals demand Mobile devices i.e Cell phones, Tablets & Phablets have revolutionized demand of OS, Product i.e. Google’s Android, Apple’s iOS, Blackberry’s RIM are offering huge opportunity for developers. Emerging trend of free OS like Linux, Google Chrome has increased professionals demand Mobile devices i.e Cell phones, Tablets & Phablets have revolutionized demand of OS, Product i.e. Google’s Android, Apple’s iOS, Blackberry’s RIM are offering huge opportunity for developers.
Pre-requisite Basic Knowledge of computer Terminology. Basic Knowledge of Hardware devices.
Objectives Convenience: An OS makes a computer more convenient to use Efficiency : An OS allows the computer resources to be used in an efficient manner. Focus: It allows Developers to be more focused on core functionality, rather than investing time on incorporating OS’s functionality in application Important Objectives of a Operating System are:
Learning Outcomes Define Operating System Functions of Operating System. Evolution of Operating System. System Components. Understanding of OS Structure. Operating System Services. System Calls. System Programs. Virtual Machine
Definition of Operating System OS acts as an interface between the application programs and the machine hardware. An operating system run on a computer hardware and serve as a platform for other software s to run on the computer system..
Resource Abstraction Resource Sharing A program that runs on the “raw” hardware and supports Virtual machine hides the messy details which must be performed Abstracts and standardizes the interface to the user across different types of hardware Each program gets time with the resource Each program gets space on the resource Manages the hardware resources Use hardware efficiently Give maximum performance to each user May have potentially conflicting goals: OS explained…
. What did the first operating system look like? 1945 to 1955No operating systemhuman operatorsSerial Processing
Transistors and batch systems Clear distinction between designers, builders, operators, programmers, and maintenance personnel, I/O channel,Read aheadInterrupts/ exceptionsMinimal protection 1956-1965
ICs and Multiprogramming,System 360 and S/370 family of computers,Spooling (simultaneous peripheral operation on-line),Time sharing, On-line storage for System programs,User programs and data, Program libraries,Virtual memory,Multiprocessor configurations e.g. 1965-1980
When people looked like this, we saw the next generation THE SECOND WAVE OF COMPUTING
Personal computers and workstations Massively parallel systems Any process and any thread can run on any available processor Array processing / SIMD Massively parallel systems General multiprocessing / MIMD Pipelining Computer networks (communication aspect) -- network operating systems Symmetric multiprocessing / SMD MS-DOS and Unix Distributed computing -- distributed operating systems 1980-Now
OS Structure - Simple Approach MS-DOS - provides a lot of functionality in little space. Not divided into modules, Interfaces and levels of functionality are not well separated.
UNIX System Structure UNIX - limited structuring, has 2 separable parts Systems programs Kernel everything below system call interface and above physical hardware. Filesystem, CPU scheduling, memory management
Layered OS Structure OS divided into number of layers - bottom layer is hardware, highest layer is the user interface. Each layer uses functions and services of only lower-level layers. THE Operating System Kernel has successive layers of abstraction
Operating System Services Services that provide user-interfaces to OS Program execution - load program into memory and run it I/O Operations - since users cannot execute I/O operations directly File System Manipulation - read, write, create, delete files Communications - interprocess and intersystem Error Detection - in hardware, I/O devices, user programs Services for providing efficient system operation Resource Allocation - for simultaneously executing jobs Accounting - for account billing and usage statistics Protection - ensure access to system resources is controlled
What is a system call? It provide the interface between a running program and the operating system Example:- writing a simple program to read data from one file and copy that to another file 28
29 Figure 1.1: Transition from User to Kernel Mode
Processor Modes Modern processors typically can operate in 2 modes: "user mode" and "kernel mode ". User mode processor executes normal instructions in the user's program. Kernel mode processor executes both normal and privileged instructions Processor can access additional registers and memory address space that are accessible only in kernel mode
Types of system calls Process control File operations Device manipulation Information maintenance Communications
Process control:- End, abort Load, execute Create process, terminate process Get process attributes, set process attributes Wait for time Wait event, signal event Allocate and free memory
File Management:- Create file, delete file Open, close Read, write, reposition Get file attributes, set file attributes
Device management:- Request device, release device Read, write, reposition Get file attributes, set file attributes Logically attach or detach device
Information maintenance:- Get time or date, set time or date Get system data, set system data Get process, file, or device attributes Set process, file or device atributes
Communication:- Create, delete communication connections Send, receive message Transfer status information Attach or detach remote devices
System calls System calls to the operating system are further classified according to the types of call:- Normal Termination Abnormal termination Status Request Resource Request Input\ Output Request
System Programs System programs provide a convenient environment for program development and execution Some of them are simply user interfaces to system calls. The can be divided into: File manipulation Status information File modification Programming language support Program loading and execution Communication Application programs
System Programs File management: – Create, delete, copy, rename, print, dump, list, and generally manipulate files and directories Status information:- Some ask the system for info - date, time, amount of available memory, disk space, number of users Others provide detailed performance, logging, and debugging information
System Program File modification:- Several text editors may be available to create and modify the content of files stored on disk or other storage devices Programming language support:- Compilers, assemblers, debuggers and interpreters for common languages(C, C++…..) are often provided to the user with the OS.
System Program Program loading and execution:- Once a program is assembled or complied, it must be loaded into memory to be executed Communication:- These program provide the mechanism for creating virtual connections among processes, users, and computer system(allow user to send message, transfer file from one machine to another) Application program:-
Virtual Machines A virtual machine takes the layered approach to its logical conclusion. The fundamental idea behind a virtual machine is to abstract the hardware of single computer into several different execution environments, thereby creating the illusion that each separate execution environment is running its own private computer. By using CPU scheduling and virtual memory techniques, an operating system can create the illusion that a process has its own processor with its own (virtual ) memory
Advantages/Disadvantages of Virtual Machines The virtual-machine concept provides complete protection of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing of resources. A virtual-machine system is a perfect vehicle for operating-systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation. The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine