Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Overview of Operating Systems. Structure and Functionality • We examine here fundamental concepts of operating systems • These concepts refer to how an operating system is organized (structure) • ...and to various capabilities (functionality) of operating systems 1 Case • You are using your laptop • The following programs are open: • ...Eclipse (an IDE) • some email system • PeopleSoft (mysjsu...) • a text editor (e.g., MSWord) • Turbo Tax (software to prepare your taxes) • a web browser 2 (Cont.) • Most likely your laptop is a single-processor computer • Question: How can it handle multiple programs? ... 3 Multi-Programming • The OS keeps several programs (jobs) in main memory simultaneously 4 (Cont.) • Multiprogramming is especially important in the case of a large computer system... • When the computer system is expensive, and has many devices attached to it... ...multiprogramming increases the utilization of the CPU and of those devices • if possible, the CPU should never be idle 5 The Basic Idea of Multiprogramming • The CPU starts executing the first program (job) • Suppose the program needs to perform an I/O operation (e.g., to read or to write)... • Question: What should happen at this point? ... • ...the program will have to wait while the device controller performs the operation • Problem: during this wait, the CPU would be idle • this would be a poor utilization of the CPU 6 (Cont.) • Solution: ...tell the CPU to execute another program • If this second program needs to wait, the CPU is assigned to a third program • or to the first, if it is no longer waiting • In this manner, the CPU is well utilized 7 A Historical Note on Multiprogramming • Historically, multiprogramming appeared at a time when there was no user interaction with the computer system • The programs were loaded into files: ...one or more files would contain the code ...one or more files would store the data used by the program • Example: a program that performs numerical calculations on the given data 8 (Cont.) • The output of the program was printed on an output file • hence, there was no ‘real-time’ user/system interaction 9 An Extension of Multiprogramming: Time-Sharing (also called ‘Multitasking’) • Later, real-time user/system interaction was provided • Now we have multiple users interacting with the same, large computer • and all those users require real-time interaction... • It is no longer possible to keep any user waiting for too long ...either they would become irritated ...or would fall asleep | 10 An Extension of Multiprogramming: Time-Sharing (also called ‘Multitasking’) • Later, real-time user/system interaction was provided • Now we have multiple users interacting with the same, large computer • and all those users require real-time interaction... • It is no longer possible to keep any user waiting for too long ...either they would become irritated ...or would fall asleep • The response time to any user action should be fast • say, at most a second... 11 What Can Be Done? • We could assign the CPU to work on one of the jobs for a short period of time • Then, the CPU is assigned to another job, and so on • If the CPU is fast, users would believe the entire CPU is theirs... | 12 Another Perspective on Multiprogramming • In multiprogramming, several programs are loaded in main memory • each program is assigned exclusive use of a portion of memory • This is called space-multiplexed sharing • “a resource (e.g., memory) is divided into two or more distinct units, and the individual parts are allocated to different programs” 13 (Cont.) • In multiprogramming the CPU is successively assigned to execute different programs • hence the programs share the CPU • but, this is a different kind of sharing than before... • Time-multiplexed sharing • “a resource is not divided into units, but instead, one program is assigned the entire resource for a period of time” 14 Concept of an Abstract Machine • “Multiple program executions ... each appear to have their own private computer on which to execute. This is accomplished, first, by designing the OS so that it carefully manages the computer’s processor, memory, devices, and all other [...] resources so that they are shared among the executing programs. And, second, by presenting an abstraction of the machine itself - called an abstract machine - to the programmer. 15 Concept of an Abstract Machine • “Multiple program executions ... each appear to have their own private computer on which to execute. This is accomplished, first, by designing the OS so hiding tedious that it carefully manages the computer’s processor, details the memory, devices, and all other [...] resources soofthat computer they are shared among the executing programs. And, second, by presenting an abstraction of the machine itself - called an abstract machine - to the programmer. 16 (Cont.) “Each abstract machine is a ‘simulation’ of a real computer: Each program is given its own abstract machine on which to execute. The OS will implement these abstractions by sharing the underlying hardware in a manner that, ideally, is invisible to the application programmer.” 17 (Cont.) • Each program runs in its own, separate, abstract machine • And a program is not aware of the existence of the other programs • ...unless they are ‘communicating’ programs... (will cover this later) 18 Other Issues in Time-Sharing Systems • Suppose there are many jobs to be done, and they don’t fit in main memory • what could be done in this case? • Jobs should be kept in a job pool, in disk • Job scheduling (long-term scheduling) • to decide which jobs to bring from disk into main memory • CPU scheduling (short-term scheduling) • to decide which of the jobs in main memory, which are ready to run, should run next 19 (Cont.) • The jobs that remain on disk, need to be given a chance to run • to achieve an acceptable response time • A simple approach is to swap jobs (swapping): • we remove a job from main memory and put a new job from disk 20 (Cont.) A better approach is based on virtual memory: ...a distinction is established between physical memory (main memory) and logical memory ...a job could be assigned a small piece of physical memory but its logical memory could be large... • we will examine this in detail later 21 Case (Assume a Time-Sharing Environment) • A "malicious programmer" decides to play games with the OS... • He writes a program with an infinite loop, so that no other program can do anything... • But the people that wrote the OS anticipated this possibility and introduced a ‘timer’... 22 Timer (Implemented in Hardware) • Used to prevent a process in an infinite loop from 'hogging' resources ...the OS sets a counter ...with every clock tick the counter is decremented ...when the counter reaches zero an interrupt is generated • The timer is set up before scheduling the process to regain control or to terminate a process that exceeds its allotted time 23 But... • The malicious programmer resets the counter from within the infinite loop • so that it never reaches zero... • Question: How to deal with this problem? ... 24 Using Dual-Mode Operation... • Dual-mode operation allows OS to protect itself and other system components • User mode and kernel mode • Mode bit provided by hardware 25 kernel: ‘the part of Using Dual-Mode Operation... the OS that is implemented to execute as trusted • Dual-mode operation allows OS to protect itself and software’ other system components • User mode and kernel mode • Mode bit provided by hardware 26 The Mode Bit... • Provides ability to distinguish when system is running user code or kernel code • Some instructions designated as privileged are only executable in kernel mode • A system call changes mode to kernel mode • ...returning from a system call resets it to user mode 27 example: any instruction to manipulate the • Provides ability to distinguish when system timer is The Mode Bit... running user code or kernel code • Some instructions designated as privileged, are only executable in kernel mode • A system call changes mode to kernel • ...returning from a system call resets it to user mode 28 The Mode Bit... examples: • Provides ability to distinguish when system is to perform an running user code or kernel code I/O operation; • Some instructions designated as privileged, to create a are only executable in kernel mode process • A system call changes mode to kernel • ...returning from a system call resets it to user mode 29 System Call • “A style of invoking system functions whereby the calling process uses a trap instruction to begin running an OS function... ...When the function is completed, the process returns to execute the application program.” • Trap instruction: “An instruction that causes the control unit to behave as if an interrupt had occurred... It is normally used to preempt the current process and to start the OS at an entry point determined by the trap table.” 30 System Call • “A style of invoking system functions whereby the calling process uses a trap instruction to begin running an OS function... ...When the function is completed, the process stop running returns to execute the application program.” the current • Trap instruction: process... “An instruction that causes the control unit to behave as if an interrupt had occurred... It is normally used to preempt the current process and to start the OS at an entry point determined by the trap table.” 31 System Call • “A style of invoking system functions whereby the calling process uses a trap instruction to begin running an OS function... ...When the function is completed, the process returns to execute the application program.” • Trap instruction: “An instruction that causes the control unit to behave as if an interrupt had occurred... serves a purpose It is normally used to preempt the current process similar to the and to start the OS at an entry point determined by interrupt vector the trap table.” 32 33 because the system call is executed in kernel mode, it can use privileged instructions 34 Note on System Calls • The program makes a library function call • library function: has same name and parameters as system call • The library function will use the trap instruction 35 (Cont.) • The idea of the previous solution is that because setting the counter is a privileged instruction, it can be executed only when mode bit is 0 (kernel mode) • ...and since a user program executes with mode bit 1, it cannot reset the counter • But, again...the malicious programmer, from within his program resets the mode bit to 0! • Can the programmer do that? 36 Conclusions from the Case • To support multiprogramming it is necessary to introduce ‘protection measures’ ...a mode bit (hardware) ...user mode and kernel mode (protected) ...privileged instructions (executable only in kernel mode) ...system calls initiated with a trap instruction (interrupt) 37 General Comment • Different computers and different OSs do things differently • But if you look at them at a certain level of abstraction they are rather similar • Consider the ‘trap’ instruction • To fully understand how it works would require examining low level details • which are rather uninteresting 38 (Cont.) • You need to learn to live at a certain level of abstraction • in other words, you need to be able to think abstractly... • don’t get nervous if there is a little ambiguity! 39 Storage Structure S • Main memory: the only large storage media that the CPU can access directly • Secondary storage: extension of main memory that provides large nonvolatile storage capacity • Magnetic disks (secondary storage): rigid metal or glass platters covered with magnetic recording material • disk surface is logically divided into tracks, which are subdivided into sectors • the disk controller determines the logical interaction between the device and the computer 40 Storage Hierarchy S • The storage systems are organized in a hierarchy • speed • cost • volatility • Caching: copying information into faster storage system; main memory can be viewed as a fast cache for secondary storage. 41 S StorageDevice Hierarchy 42 Caching S • Important principle, performed at many levels in a computer (in hardware, OS, software) • Information in use is copied from slower to faster storage temporarily • Faster storage (cache) is checked first to determine if information is there • If it is, information is used directly from the cache (fast) • If not, data is copied to cache and then used there 43 (Cont.) S • Cache smaller than storage being cached • Cache management is an important design problem • Cache size and replacement policy 44 Performance of Various Kinds of Storage 45 (Cont.) S • Multitasking environments must be careful to use most recent value, no matter where it is stored in the storage hierarchy 46 Process Management • A process is a program in execution. It is a unit of work within the system. A program is a passive entity, a process is an active entity. • A process needs resources to accomplish its task ...which resources? • ...the CPU, memory, I/O devices, files • Process termination requires reclaim of any reusable resources 47 (Cont.) • A single-threaded process has one program counter specifying location of next instruction to execute • process executes instructions sequentially, one at a time, until completion • A multi-threaded process has one program counter per thread 48 (Cont.) • Typically a system has many processes • some are user processes, some are operating system processes • running concurrently on one or more CPUs • Concurrency is achieved by multiplexing the CPU among the processes / threads 49 Summary. Important Concepts • • • • • • • • multiprogramming ...CPU utilization time sharing (multitasking) ...response time resource sharing ...sharing the CPU (time-multiplexed sharing) ...sharing memory (space-multiplexed sharing) abstract machine 50 (Cont.) • job scheduling (long-term scheduling) • CPU scheduling (short-term scheduling) • timer (hardware) for measuring running time • dual-mode operation • user mode and kernel mode • mode bit • privileged instructions • system call 51 (Cont.) • storage device hierarchy • caching • process management 52