330 likes | 777 Views
Operating Systems. Introduction to Operating System (OS). Components of a Computer System. Components of a Computer System Contd…. Hardware – provides basic computing resources like CPU, memory, I/O devices.
E N D
Operating Systems Introduction to Operating System (OS)
Components of a Computer System Contd… • Hardware – provides basic computing resources like CPU, memory, I/O devices. • Operating system – OS controls and coordinates the use of the hardware among the various application programs for different users. • Applications programs – They define the ways in which the system resources are used to solve the computing problems of the users. • Users (people, machines, other computers).
What is OS? • Operating System is a software, which makes a computer to actually work. • It is the software that enables all the programs we use. • The OS organizes and controls the hardware. • OS acts as an interface between the application programs and the machine hardware. • Examples: Windows, Linux, Unix and Mac OS, etc.,
USER View of OS • Ease to use • Efficient resource utilization
SYSTEM view of OS • OS is a resource allocator Manages all resources (CPU time, memory space, storage space, I/O and so on) Decides between conflicting requests for efficient and fair resource use • OS is a control program Controls execution of programs to prevent errors and improper use of the computer
Evolution of OS • Batch Processing • Multiprogramming • Timesharing
Batch Processing • Early computers were extremely expensive • Important to maximize processor utilization • Monitor • Software that controls the sequence of events • Batch jobs together • Program returns control to monitor when finished
Batch Processing (Contd…) • The interface to the monitor was accomplished through Job Control Language (JCL). • For example, a JCL request could be to run the compiler for a particular programming language, then to link and load the program, then to run the user program.
Batch Processing (Contd…) Hardware features: • Memory protection: protect the memory area containing the monitor from the Utilities • Timer: prevents a job from monopolizing the system Problems: • Bad utilization of CPU time - the processor stays idle while I/O devices are in use.
Multiprogramming • Multiprogramming is a technique to execute number of programs simultaneously by a single processor. • Number of processes reside in main memory at a time. • The OS picks and begins to execute one of the jobs in the main memory. • If any I/O wait happened in a process, then CPU switches from that job to another job. • Hence CPU in not idle at any time.
Multiprogramming (Contd…) • Processor must wait for I/O instruction to complete before preceding
Multiprogramming (Contd…) • When one job needs to wait for I/O, the processor can switch to the other job
Multiprogramming (Contd…) Advantages Efficient memory utilization Throughput increases CPU is never idle, so performance increases.
Time Sharing Systems • Multiprogramming systems : several programs use the computer system • Time-sharing systems : several (human) users use the computer system interactively • Characteristics: • Using multiprogramming to handle multiple interactive jobs • Processor’s time is shared among multiple users • Multiple users simultaneously access the system through terminals
Time Sharing Systems (Contd…) • Time sharing, or multitasking, is a logical extension of multiprogramming • Multiple jobs are executed by switching the CPU between them • In this, the CPU time is shared by different processes, so it is called as “Time sharing Systems”. • Time slice is defined by the OS, for sharing CPU time between processes. • Examples: Multics, Unix, etc.,
Types of OS Operating System can also be classified as • Single User Systems • Multi User Systems
Single User Systems • Provides a platform for only one user at a time. • They are popularly associated with Desk Top operating system which run on standalone systems where no user accounts are required. • Example: DOS
MS-DOS execution (a) At system startup (b) running a program
Multi-User Systems • Provides regulated access for a number of users by maintaining a database of known users. • Refers to computer systems that support two or more simultaneous users. • Another term for multi-user is time sharing. • Ex: All mainframes and are multi-user systems. • Example: Unix
Operating System Services The following are the services provided by the operating system. • User Interface • Program Execution • I/O Operations • File-system manipulation • Communications
Operating System Services (Contd…) • Error Detection • Resource Allocation • Accounting • Protection
User Interface • User interface - Almost all operating systems have a user interface (UI) • A user interface controls how to enter data and instructions and how information is displayed on the screen • With a graphical user interface (GUI), user interacts with menus and visual images • With a command-line interface, a user uses the keyboard to enter data and instructions
Program Execution • Operating system must be able to load a program into memory and to run that program. • The program must be able to end its execution, either normally or abnormally.
I/O Operations A running program may require I/O, which may involve a file or an I/O device
File-System Manipulation • Programs need to read and write files and directories • The operating system handles the process of creating, deleting and searching files • Also list file Information, permission management
Communication • Every process needs to exchange information with another process • Communications may be implemented via shared memory or by the technique of message passing • Communications occurs in two ways • Within processes executing on the same computer • Between processes executing on different computers, tied together by a network
Error Detection • Errors can happen at any time in the system • Errors can occur in the CPU, memory, I/O Devices, and in the user program • For each type of error, OS should take the appropriate action to ensure correct and consistent computing • Debugging facilities can greatly enhance the user’s and programmer’s abilities to efficiently use the system
Resource Allocation • Multiple jobs run at the same time so resources must be allocated to each one of them • Many different types of resources are managed by the operating system • Some (such as CPU cycles, main memory, and file storage) have special allocation code, whereas others (such as I/O devices) have general request and release code • The operating systems have various routines for different jobs in the system, for example CPU scheduling
Accounting • Need to keep track of number and type of resources allocated to processes/users • This tracking of user information can be used to find out the usage statistics. • These usage statistics are useful for the researchers who wish to re-configure the system to improve computing services.
Protection • Protection and Security is an important issue in multi-user computer systems. • Protection involves in ensuring that all access to system resources is controlled. • Security of the system requires user authentication, extends to defend external I/O devices from invalid access attempts • Access to the resources must be authenticated with a password.