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
Library (computing) wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Mobile operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
Copland (operating system) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Security-focused operating system wikipedia , lookup
Distributed operating system wikipedia , lookup
Operating Systems: Intro Operating Systems • Concepts and Principles – monolithic and micro kernels – processes and threads » their management and synchronisation » interprocess communication – interrupts and signals – virtual memory - paging and segmentation • Implementation Techniques – resource allocation – time management - process scheduling – memory management - usage models and page allocation – file systems – case studies - Kops, Linux, NT etc. 1 Operating Systems: Intro Coursework • To Be Announced – probably involving some programming – deadline - mid-term • Essay - in-depth comparison of PDA Operating Systems – structure, scheduling, memory management, security etc. – deadline - end of term Tutorials only when needed 2 Operating Systems: Intro Textbooks • William Stallings, Operating Systems, Internals & Design Principles, 4th edition, Prentice-Hall, 2001. • Abraham Silberschatz & Peter Galvin, Operating System Concepts, 5th edition, Addison-Wesley, 1998. • Gary Nutt, Operating Systems, A Modern Perspective, 2nd edition, Addison-Wesley, 2000. • D.A.Solomon & M.E.Russinovitch, Inside Windows 2000, 3rd edition, MicroSoft Press, 2000. • D.Boling, Programming MicroSoft Windows CE, MicroSoft Press, 1998. • Michael Beck et al., Linux Kernel Internals, 2nd edition, Addison-Wesley, 1997. • John O’Gorman, Operating Systems with Linux, Palgrave, 2001. 3 Operating Systems: Intro Motivation • An Automated Teller Machine (ATM) process – process to deposit an amount into an account: deposit (account, amount) { read ( account, balance ); // read balance from database balance = balance + amount; // add deposit amount write (account, balance ); // update database } – process to withdraw an amount from an account: withdraw ( account, amount ) { read (account, balance); // read balance from database balance = balance - amount; // subtract withdrawal amount write ( account, balance); // update database } – concurrent processes? 4 Operating Systems: Intro • To sum the elements of a matrix – in row order: sum = 0; for (row=0; row<row_max; row++) { for (col=0; col<col_max; col++) { sum = sum + array[row,col]; }} cout << “Array Sum =“ << sum << endl; – in column order: sum = 0; for (col=0; col<cp;_max; col++) { for (row=0; row<row_max; row++) { sum = sum + array[row,col]; }} cout << “Array Sum =“ << sum << endl; – any difference? 5 Operating Systems: Intro Operating Systems • Main purpose is to facilitate the execution of user application programs – bare hardware is extremely messy and difficult for users to program » processors » memory » peripheral devices » concurrency » interrupts » files » networks 6 Operating Systems: Intro • Modern operating systems structured around concept of a process process = “program in execution” – a process is not the same as a program – programs are passive, processes are active – a process consists of an executable program, associated data and its execution context • A process runs in a framework which provides a Virtual Machine for it – a Virtual Machine is a simplified machine with: » user-level processor » virtual memory » high-level facilities » a machine with one user 7 Operating Systems: Intro • An OS supports execution of many concurrent processes – many co-existing virtual machines – each run alternately - pseudo-concurrently – OS issues revolve around process management » how and when to create & destroy processes » how to avoid interference between processes » how to achieve cooperation between processes 8 Operating Systems: Intro • An OS manages resource requirements of processes – time – memory – files – I/O device access – processors • An OS aims to be efficient – for user – for system manager 9 Operating Systems: Intro • A process can be in one of several states – newly created – running – blocked » waiting for some event to occur » in main memory » moved out to disc – ready to run – terminated 10 Operating Systems: Intro • Overheads in swapping execution between processes – saving and restoring contexts – loss of cache contents • Places limits on how often execution should be swapped – performance will plummet if too frequent 11 Operating Systems: Intro • A relatively new mechanism to improve overheads is the Thread – a lightweight process – several threads within one process or virtual machine – much smaller context to preserve – must cooperate – must not compete – can be separately scheduled – can run concurrently on multiprocessor systems – often also a very convenient programming paradigm 12 Operating Systems: Intro Interfaces user user user user user application application application application application process process process process process Operating System Hardware 13 Operating Systems: Intro • Communications between OS and processes – from process to OS - system calls – from OS to process - signals 14 Operating Systems: Intro • Communications between OS and Hardware – from OS to hardware - register & status settings – from hardware to OS - interrupts and exceptions 15 Operating Systems: Intro • Communications between processes – signals – message passing – via buffers – shared virtual memory – pipes – sockets • Communications between users and processes – keyboard, mouse, touch-screen – bit-mapped text and graphics display screens with windows – printers, plotters 16 Operating Systems: Intro Interrupts • An interruption in the normal execution flow of a processor – a mechanism for causing the processor to suspend its current computation and take up some new task » old context must be preserved » control can be returned to the original task at some later time » new context started • Reasons: – control of asynchronous I/O devices – exceptional conditions arising from execution 17 Operating Systems: Intro • OS sets up an Interrupt Vector with service routine entry points – one entry per I/O device or I/O channel – a dormant context set up for each routine which can be activated on demand – further interrupts usually switched off during initial interrupt servicing • Example: Intel x86 interrupt vector entries: 0: ... 14: 32: 33: ... 36: 37: 38: ... 46: divide error page fault timer keyboard serial port 1 parallel port 2 floppy controller hard disc 18 Operating Systems: Intro • An OS can be viewed as an event-driven system – just reacts to events as they occur • Interrupts need to be serviced carefully and quickly by the OS – cost similar to a process switch – too many interrupts will kill performance • Alternative to interrupts is Polling – process (or OS) continually polls I.e. inspects, device status registers awaiting some condition e.g. transfer completed – wastes time looping until condition occurs – much simpler to program than using interrupts but inefficient 19 Operating Systems: Intro Privilege • Processors run at various levels of privilege – user-level » only the types of instruction needed by applications programs » only access to permitted areas of virtual memory – supervisor or kernel level » all types of instruction including I/O instructions » access to system registers - virtual memory registers - interrupt vectors » access to all areas of virtual memory » ability to switch interrupts on and off – may be intermediate levels on some architectures – each level may have its own processor registers to speed context switching 20 Operating Systems: Intro What’s part of an Operating System? • Process management • Interrupt handling • Device drivers • File system • Networking • Applications? – Web browser? – Email? • Windows? • Command interpreters? 21 Operating Systems: Intro Kinds of Operating System • For single-user workstation • For multiple-user server – file,compute, mail, web servers etc. • For mainframe systems – transaction processing – database systems • For real-time systems – time-critical applications » industrial process control – hard rather than soft deadlines 22 Operating Systems: Intro • All built with the same concurrent multi-process organisation • Main difference is in process scheduling – single user system needs only to meet one user’s expectations » overall efficiency less important – multiple user system needs to be equitable between users » efficiency important – transaction processing system needs to give good response » database queries – real-time system may need to pre-allocate processor time to guarantee meeting deadlines » overall efficiency may need to suffer 23 Operating Systems: Intro • Only exception to multiple-process organisation is embedded systems – dedicated single-purpose processors » multi-media, telecoms - MPEG decoders, GSM phones, portable web browsers - washing machine controllers! » avionics - FADECs, GPS, FMS – absolute reliability required – very conservatively programmed • System Level Integrated circuits – usually have a processing core which requires a real-time OS – often multiprocessors with a general-purpose CPU plus a DSP processor » ARM + OAK 24 Operating Systems: Intro Operating System Structure • How to partition OS functions? – process management and scheduling, memory management, interrupt handling, device drivers etc. • Monolithic OS – each function coded as a separate procedure – linked into one executable code object – event-driven core which calls appropriate procedures when required » driven by interrupts and system calls from processes – Linux » modules can be dynamically linked and unlinked as required 25 Operating Systems: Intro • Micro-kernel OS – each function coded as a separate process » system processes – only the minimum possible function in the core kernel » virtual memory organising » interrupt handling » process dispatching – appropriate system process activated as soon as possible to deal with all other functions » system processes will have higher privilege and usually higher priority than user processes – Windows NT • Intermediate flavours – some system processes but not a minimal micro-kernel 26 Operating Systems: Intro Windows NT Structure Hardware 27 Operating Systems: Intro • Advantages and disadvantages – monolithic: » faster switching to kernel functions » simple interfaces between functions i.e. procedure calls » easier access to data structures shared between functions » larger memory resident core » may become too large to maintain easily – micro-kernel » better partitioning - should be easier to implement and maintain » smaller memory resident core » slower switching to system processes » inter-system-process communications may be slower 28