Introduction to Operating Systems Chapter 1 Lecture Objectives • Understand the relationship between computing hardware, operating system, and user level applications • Be able to discuss the different categories of system calls common to Linux or Windows operating systems. • Discuss how the evolution of computing hardware and the evolution of operating systems have affected each other. cs431 -cotter 2 Basic Computer System Operation CPU (*N) cs431 -cotter interrupt data I/O Request device c a c h e Instructions Instructions and data data DMA Memory 3 PC Hardware Review cs431 -cotter 4 CPU Pipelining Figure 1-7. (a) A three-stage pipeline. (b) A superscalar CPU. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 5 Multithreaded and Multicore Chips Figure 1-8. (a) A quad-core chip with a shared L2 cache. cs431 -cotter (b) A quad-core chip with separate L2 caches. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 6 Memory (1) cs431 -cotter Figure 1-9. A typical memory hierarchy. The numbers are very rough approximations. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 7 Memory (2) Questions when dealing with cache: • • • • When to put a new item into the cache. Which cache line to put the new item in. Which item to remove from the cache when a slot is needed. Where to put a newly evicted item in the larger memory. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 8 Disks Figure 1-10. Structure of a disk drive. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 9 I/O Devices Figure 1-11. (a) The steps in starting an I/O device and getting an interrupt. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 10 Interrupt functions • Most operating systems are interrupt driven • Interrupt transfers control to interrupt service routine through the interrupt vector • Save address of interrupted instruction • Disable interrupts during processing • A trap is a software generated interrupt cs431 -cotter 11 I/O Structure • Control returns to user when I/O completes – wait instruction idles CPU – wait loop (contention for memory) – only 1 I/O request outstanding at any time • Control returns to user without waiting for I/O – system call – device-status table – OS modifies table entry to include interrupt cs431 -cotter 12 Hardware Protection Schemes • Dual-Mode Operation – user mode – monitor mode / kernel mode • I/O Protection • Memory Protection – base register – limit register • CPU Protection – timer cs431 -cotter 13 Buses Figure 1-12. The structure of a large Pentium system cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 14 Operating System Concepts • • • • • • • Processes Address spaces Files Input/Output Protection The shell Evolution repeats itself • • • • Large memories Protection hardware Disks Virtual memory cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 15 Processes Figure 1-13. A process tree. Process A created two child processes, B and C. Process B created three child processes, D, E, and F. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 16 Files (1) Figure 1-14. A file system for a university department. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 17 Files (2) Figure 1-15. (a) Before mounting, the files on the CD-ROM are not accessible. (b) After mounting, they are part of the file cs431 -cotter 18 hierarchy. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Files (3) Figure 1-16. Two processes connected by a pipe. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 19 System Calls Figure 1-17. The 11 steps in making the system call cs431 -cotter read(fd, buffer, nbytes). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 20 System Calls for Process Management Figure 1-18. Some of the major POSIX system calls. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 21 System Calls for File Management (1) Figure 1-18. Some of the major POSIX system calls. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 22 System Calls for File Management (2) Figure 1-18. Some of the major POSIX system calls. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 23 Miscellaneous System Calls Figure 1-18. Some of the major POSIX system calls. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 24 A Simple Shell Figure 1-19. A stripped-down shell. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 25 Memory Layout Figure 1-20. Processes have three segments: text, data, and stack. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 26 Linking Figure 1-21. (a) Two directories before linking /usr/jim/memo to ast’s directory. (b) The same directories after linking.27 cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Mounting Figure 1-22. (a) File system before the mount. (b) File system after the mount. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 28 Windows Win32 API Figure 1-23. The Win32 API calls that roughly correspond to the UNIX calls of Fig. 1-18. cs431 -cotter 29 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Operating Systems Structure Monolithic systems – basic structure: • • • A main program that invokes the requested service procedure. A set of service procedures that carry out the system calls. A set of utility procedures that help the service procedures. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 30 Monolithic Systems Figure 1-24. A simple structuring model for a monolithic system. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 31 Layered Systems Figure 1-25. Structure of the THE operating system. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 32 Microkernels Figure 1-26. Structure of the MINIX 3 system. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 33 Client-Server Model Figure 1-27. The client-server model over a network. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 34 Virtual Machines • Pushes the layered concept to the next step • Treats OS and hardware as though they were both hardware by providing a software (virtual) interface to the OS that is identical to the hardware interface • OS creates the illusion of several different processes, each executing on its own processor with its own (virtual) memory cs431 -cotter 35 Virtual Machines • CPU scheduling creates the appearance that each process has its own processor. • Spooling and a file system can provide “virtual” line printers and “virtual” card readers cs431 -cotter 36 Virtual Machines (1) Figure 1-28. The structure of VM/370 with CMS. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 37 Virtual Machines (2) Figure 1-29. (a) A type 1 hypervisor. (b) A type 2 hypervisor. cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 38 JAVA Virtual Machines Java program Java program Java program Java program Java Cmds Java Cmds Java Cmds VM SPARC VM VM PowerPC Intel cs431 -cotter 39 39 Virtual Machine Advantages / Disadvantages • Provides complete isolation and protection of resources between processes. (This also can affect the ability to share between processes). • Provides a good vehicle for reducing system level complexity of IT systems • Requires hardware support to allow execution of privileged instructions in user mode. cs431 -cotter 40 40 The World According to C • • • • The C language Header files Large programming projects The model of run time cs431 -cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 41 The Model of Run Time Figure 1-30. The process of compiling C and header files to make an executable. cs431 -cotter 42 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 Summary • Overview of Computer Hardware • Different OS types • OS Components – Concepts – System Calls – Structure • OS Programming Language cs431 -cotter 43 Questions: • What is multi-programming? Why is it important in OSs? • What is the difference between a system call and a local function call? • What is the difference between user mode and kernel mode? • Why are Virtual Machines becoming popular today in PCs? • How is the Client / Server model being used today? cs431 -cotter 44