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
Course Overview Introduction Computer System Structures Operating System Structures Processes Process Synchronization Deadlocks CPU Scheduling © 2000 Franz Kurfess Memory Management Virtual Memory File Management Security Networking Distributed Systems Case Studies Conclusions Introduction 1 Chapter Overview -- Introduction Motivation Course Objectives Course Prerequisites Relevance of OS mechanisms Scenarios Historical Perspective OS Examples Course Outlook Important Concepts and Terms Chapter Summary © 2000 Franz Kurfess Introduction 2 Motivation OS is the “glue” between the computer system’s hardware and the user interface and applications OS concepts help with the understanding of a computer system’s operation the performance of a computer system depends as much on the efficient implementation of OS mechanisms as on the hardware computing power understanding of OS internals helps with the development of good and efficient software the selection of a computer system for a particular task or scenario must consider OS issues © 2000 Franz Kurfess Introduction 3 Objectives appreciate the relevance of operating systems put operating systems in context with the overall computer system outline the relationships between various user activities, and how their needs are handled by the operating system provide an understanding for the historical development of operating systems identify important components of operating systems describe methods, algorithms and data structures used in operating systems discuss criteria, problems and trade-offs for design desicions © 2000 Franz Kurfess Introduction 4 Course Prerequisites basic knowledge of computer organization CPU, main memory, secondary storage, peripheral devices basic knowledge of computer usage operating system (Windows, MacOS, Unix) applications at least one programming language Pascal, data C, C++, Java, Fortran, assembly language structures and algorithms array, basic list, tree, graph; sorting, searching, etc. mathematics Boolean © 2000 Franz Kurfess logic, binary and hexadecimal numbers Introduction 5 What this course is not: It is not a course about one specific operating system: it discusses general concepts sometimes reference is made to aspects of specific OSs as examples It is not an introduction on how to use certain operating systems: it deals with design and implementation issues of OS concepts sometimes features of a specific OS may be used as examples to demonstrate the use of a method © 2000 Franz Kurfess Introduction 6 Where does the OS Fit? CPU & Memory I/O Devices © 2000 Franz Kurfess Hardware [David Jones] Introduction 7 Where does the OS Fit? System Calls Operating System CPU & Memory I/O Devices © 2000 Franz Kurfess Hardware [David Jones] Introduction 8 Where does the OS Fit? Users and User Programs System Calls Operating System CPU & Memory I/O Devices © 2000 Franz Kurfess Hardware [David Jones] Introduction 9 Example: Web Pages important aspects Web page design Web site design word processing graphics and animation sound and video data base © 2000 Franz Kurfess Introduction 10 Web Page Design page layout format, graphic logo, components, arrangement on the page elements buttons, special effects, ... © 2000 Franz Kurfess Introduction 11 Web Site Design site structure essential overall parts and their relationships layout format framework (font, headers, footers, background ...) graphic logo, elements buttons, ... implementation hardware, connection servers (Web, ftp, mail, newsgroups,...) additional applications (data base, audio, video, security, statistics) © 2000 Franz Kurfess Introduction 12 Word Processing writing text formatting auxiliary tasks spell & grammar checking constructing table of contents, index, etc. conversion HTML, © 2000 Franz Kurfess to a Web-friendly format PDF, ASCII Introduction 13 Graphics and Animation drawing graphics application of effects developing animation objects involved trajectory changes in the objects over time conversion animated © 2000 Franz Kurfess to a Web-friendly format GIFs, Shockwave, Java Introduction 14 Images, Sound and Video capturing and recording of the material processing resolution, colors, effects editing selection of images, sounds, video frames sequences conversion MPEG, © 2000 Franz Kurfess to a Web-friendly format Quicktime (?) Introduction 15 Data Bases development of the data base elements to be stored entity-relationship diagram keys interface to the Web forms via HTML, Javascript, Java conversion to SQL, generation of the query search and presentation of the response © 2000 Franz Kurfess Introduction 16 Scenario 1: Webmaster Jill Web master Jill works on a page that provides access to a database containing information about the products her company offers she has a number of applications running simultaneously, and switches back and forth word processor Web page design tools graphics tool data base at the same time, she tests the page she’s working on with a Web browser her computer is also used as Web server © 2000 Franz Kurfess Introduction 17 Scenario 2: Web Data Base information about products a company offers many queries resulting in short responses short CPU bursts, most of them with I/O activities to retrieve items from the data base http protocol is stateless no information is carried over between page requests of the same user it is difficult to predict or guess which item will be retreived next © 2000 Franz Kurfess Introduction 18 Scenario 3: Intranet Image Server central server holding photographs of an image agency (professional photographers) large file size high resolution millions of colors CPU mainly retrieves images from hard disk and transfers them onto the network activities during the transfer of an image are fairly predictable © 2000 Franz Kurfess Introduction 19 Active Tasks visible to the user word processor, Web page design tool, graphics tool, data base (client), browser but also: user interface not visible to the user Web server, data base server, auxiliary user programs but also: OS tasks administrating the available resources © 2000 Franz Kurfess Introduction 20 Primary User Needs immediate typing, mouse movement, clicks up-to-date arrival response to user actions display of important activities of e-mail, completion of a task quick switching between tasks good performance for relevant activities sharing of information across tasks convenient representation of information privacy © 2000 Franz Kurfess Introduction 21 Secondary User Needs invisible tasks should have no effect on the user’s activities problems with one task leave other tasks unaffected information is stored automatically context-dependent user interface good resource utilization processing power, memory space ... © 2000 Franz Kurfess Introduction 22 OS Responsibilities handle simultaneous activities according to their importance allocate resources to the tasks as needed facilitate storage of and access to information, possibly by several tasks at the same time protect tasks from each other perform tasks invisible to the user in a non-obtrusive way © 2000 Franz Kurfess Introduction 23 OS Requirements quick response to user activities good performance subjective -- as perceived by the user objective -- according to some standardized measurements efficient resource utilization protection and security © 2000 Franz Kurfess Introduction 24 OS Examples MVS, VMS Unix Windows 95, NT, Macintosh OS, OS/2, BeOS VxWorks © 2000 Franz Kurfess Introduction 25 Historical Perspective computer systems theoretical concepts technological development computation, storage, input/output commercial use impact on users © 2000 Franz Kurfess Introduction 26 19th Century Analytical Engine [Babbage & Lovelace, 1834] mechanical computing device, very limited programmability Boolean algebra [Boole, 1854] foundation © 2000 Franz Kurfess for the operation of digital computers Introduction 27 1930-1944 electromechanical computers (relays, switches) Model 1 [Bell Labs, 1930] Zuse-1 [Zuse, Austria/Germany, 1941] MARK I [Aiken, Harvard Univ., 1944] electronic calculating device COLOSSUS [Turing et al, Great Britain, 1938] used to decipher German war communications © 2000 Franz Kurfess Introduction 28 1944-1954 electrical computers (tubes, CRT displays) EDSAC uses library of subroutines EDVAC [Turing et al, 1949] [von Neumann et al., 1951] stored program computer, von Neumann architecture UNIVAC I [Harvard, 1954] IBM 650 [1954] first computer produced in series technology and concepts transistor [Bell Labs, 1948] assembler, compilers (Math_MATIC, Fortran) [1954] microprogramming [Wilkes, 1952] © 2000 Franz Kurfess Introduction 29 1955-1964 transistor-based computers (monitor, keyboard) TRIDAC DEC PDP-1 [1959], PDP-8 [1964] IBM/360 [1964] technology and concepts Integrated Circuit (IC) [Noyce & Moore, 1959] virtual memory [U. of Manchester, England, 1958] CTSS time sharing system [Corbato, MIT, 1962] ALGOL 58 [Bauer et al., Munich, Germany, 1958] PL/1, APL [1964] © 2000 Franz Kurfess Introduction 30 1965-1974 IC-based computers commercial IBM/360 family Control Data 6600 [1965] supercomputer DEC success of mainframes PDP-11 [1972] minicomputer © 2000 Franz Kurfess Introduction 31 1965-1974 cont. technology and concepts Cache memory [Wilkes, 1965] microprocessor Intel 4004 [Intel, 1971], Intel 8008 [Intel, 1972] Winchester hard disk [IBM, 1973] ARPANet [1965] Ethernet [Xeroc, 1973] BASIC [1965], Simula [Wirth, 1965], Pascal [Wirth, 1970], C [AT&T, 1972], Smalltalk [Xerox, 1972] OS/360 [IBM, 1966], MULTICS [MIT, 1966] THE [TH Eindhoven, Netherlands, 1968] layer structure, concurrent processing Unix [Thompson & Ritchie, AT&T, 1969] © 2000 Franz Kurfess Introduction 32 1975-1984 IC and microprocessor-based computers minicomputers take over tasks from mainframes Altair 8800 [1975] hobbyist computer, Intel 8080, 1K RAM personal computers Apple II, TRS 80, Commodore PET [1977] IBM PC [1981], Compaq Portable [1982] Apple Macintosh [1984] DEC VAX [1978] workstation graphical user interface, mouse, Ethernet, Smalltalk Xerox Star [1981] SUN [1984] © 2000 Franz Kurfess Introduction 33 1975-1984 cont. technology and concepts Internet [1983] CP/M operating system [1977] VMS operating system [DEC, 1978] UNIX 3BSD [1979], SunOS [1984] Ada [1979], Turbo Pascal [1982], Modula 2 [1982] Visicalc [1979] PostScript [1984] © 2000 Franz Kurfess Introduction 34 1985-1994 IC and microprocessor-based computers wide-spread use of personal computers work stations take over tasks from mainframes and minicomputers Cray-2 [1985], Connection machine [1985] PCs based on Intel 386 [1987] NeXT [1988] © 2000 Franz Kurfess Introduction 35 1985-1994 cont. technology and concepts Intel 80486 [1989], Pentium [1993] Alpha RISC chip [1992] PowerPC [1993] C++ [1985] World Wide Web [Berners-Lee, 1990] MS Windows [1985], Windows 3.0 [1990], Windows NT [1993] OS/2 [1987] Sun Solaris [1992] Motif graphical user interface [1989] local area networks [1987] © 2000 Franz Kurfess Introduction 36 1995- ??? mainly microprocessor-based computers PDAs, e.g. Apple Newton [1995], PalmPilot Network Computer (NC) [Oracle, 1996] technology and concepts Intel Pentium Pro [1996] PowerPC G3 [1997] Windows 95 BeOS [1996] Java [Sun, 1995] Y2K problem [2000] will all computing come to a halt? © 2000 Franz Kurfess Introduction 37 Important Concepts and Terms application programs CPU computer system graphical user interface hardware integrated circuit © 2000 Franz Kurfess operating system processes, tasks resources, services software transistor user interface Introduction 38 Chapter Summary operating systems make the raw hardware usable for users and applications operating systems administer the resources of a computer system the most visible part of an operating system is the user interface determines the “look and feel” of a computer system has a very strong influence on the performance of a system as perceived by the user © 2000 Franz Kurfess Introduction 39