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
Plan 9 from Bell Labs wikipedia , lookup
Library (computing) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Mobile operating system wikipedia , lookup
Security-focused operating system wikipedia , lookup
Spring (operating system) wikipedia , lookup
Copland (operating system) wikipedia , lookup
Distributed operating system wikipedia , lookup
Unix security wikipedia , lookup
Operating Systems Principles Lecture 1: Introduction 主講人:虞台文 Content The Role of Operating Systems – – Organization of Operating Systems – – – – – Bridge the Hardware/Application Gap Three Views of Operating Systems Structural Organization The Hardware Interface The Programming Interface The User Interface Runtime Organization Operating System Evolution & Concepts Operating Systems Principles Lecture 1: Introduction The Role of Operating Systems PC Hardware Organization Users ←→ Hardware The Gap Users ←→ Hardware User needs to think in terms of problem to be solved • High-level data structures and corresponding operations • Simple, uniform interfaces to subsystems, • Treat programs and data files as single entities Hardware capabilities are very low level • Arithmetic and logical operators • Comparison of two bit-strings • Branching, reading, and writing bytes The Gap Fills the Gap Software Fills the Gap Use software to bridge this gap • Language processors e.g., - assemblers, compilers, interpreters • Editors and text processors, linkers and loaders. • Application programs, utility and service programs. • Operating Systems Software Single CPU System Single CPU System I/O Devices I/O Devices Multiprocessor Systems Share-Memory Model Distributed-Memory Model Synchronization & Communication of CPU’s Share-Memory Model through the shared memory Distributed-Memory Model interconnection network required. Cash Coherence Problem Share-Memory Model Cashes do not contain different values for the same memory element. Distributed-Memory Model Local Cash Multicomputer System Multicomputer System Network Controller Network Controller Local Area Networks Local area networks (LANs) connect computers within a building or a enterprise network. LAN network topologies: Ring Network Broadcast Bus Wide Area Networks A Wide Area Network (WAN) is a collection of Local Area Networks (LANs) that have been connected together. The internet is an example of a WAN. What are done by OS? Process Management – – Memory Management – – Virtual memory Input/Output Systems – Scheduling of process Synchronization Device drivers Spooling File Systems Protection and Security Applications/Services Operating System Bare Machine Three Views of OS’s Application Programmer’s View Applications/Services Operating System User’s View System Programmer’s View Bare Machine OS is an extended machine • Abstraction — hides complexity • Provides high level operations User’s View Application Programmer’s View Applications/Services Operating System User’s View System Programmer’s View Bare Machine OS is a virtual machine • Virtualization — supports sharing • Provides virtual CPU, memory, devices Application Programmer’s View Application Programmer’s View Applications/Services Operating System User’s View System Programmer’s View Bare Machine OS is a resource manager • Balance overall performance with individual needs e.g., response time, deadlines System Programmer’s View Application Programmer’s View Applications/Services Operating System User’s View System Programmer’s View Bare Machine Operating Systems Principles Lecture 1: Introduction Organization of Operating Systems Structure Organization of OS User Library Calls Kernel Calls Machine Instructions Applications (system & user) System Library Operating System Kernel Hardware Dual-Mode Operation Modes of CPU Execution User Library Calls Kernel Calls Machine Instructions Applications (system & user) System Library Operating System Kernel Hardware (user mode) nonprivileged mode privileged mode (supervisor mode) (system mode) (monitor mode) (kernel mode) SVCs are used to implement all kernel calls and form the basic interface btw the OS kernel and the rest of the software. Supervisor Call (SVC) User Library Calls Kernel Calls Machine Instructions Applications (system & user) System Library SVC Operating System Kernel Hardware nonprivileged mode privileged mode The Hardware Interface User Applications (system & user) System Library SVC Operating Operating System System Kernel Kernel Hardware Hardware Applications and OS compiled into machine instructions Interrupts and Traps allow OS to seize control – process management (time-sharing) – device management (I/O completion) The Programming Interface Invoking system services • Library call (nonprivileged) • Kernel call (privileged) Library Calls Kernel Calls Machine Instructions User Applications (system & user) System Library Operating Operating System System Kernel Kernel Hardware Hardware The User Interface Text-based shell e.g., Unix, MS Dos – – command interpreter shell scripts Library Calls Graphics-based GUI e.g., Mac, MS Windows Kernel – – – – windows icons menus pointer Calls Machine Instructions User Applications (system & user) System Library Operating Operating System System Kernel Kernel Hardware Hardware Runtime Organization Service is a Subroutine Service is an Autonomous Process (client-server) Operating Systems Principles Lecture 1: Introduction Operating System Evolution & Concepts History of Operating Systems The First Generation (1945–55) – The Second Generation (1955–65) – Transistors and Batch Systems The Third Generation (1965–1980) – Vacuum Tubes and Plugboards ICs and Multiprogramming The Fourth Generation (1980–Present) – Personal Computers The First Generation (1945–55) Vacuum Tubes and Plugboards The First Generation (1945–55) Vacuum Tubes and Plugboards The First Generation (1945–55) Vacuum Tubes and Plugboards Machines of the time were so primitive that programs were often entered one bit at time on rows of mechanical switches (plugboards). Programming languages were unknown (not even assembly languages). Operating systems were unheard of. The Second Generation (1955–65) Transistors and Batch Systems A batch system is one in which jobs are bundled together with the instructions necessary to allow them to be processed without intervention. Often jobs of a similar nature can be bundled together to further increase economy. The Second Generation (1955–65) Transistors and Batch Systems The Second Generation (1955–65) Transistors and Batch Systems $JOB user_spec $FORTRAN source program cards $LOAD $RUN data cards $EOJ ;identify the user for accounting purposes ;load the FORTRAN compiler $JOB user_spec $LOAD application $RUN Data $EOJ ;identify a new user ;load the compiled program ;run the program ;end of job The Second Generation (1955–65) Transistors and Batch Systems Monitor: another name of OS. The Second Generation (1955–65) Transistors and Batch Systems Memory Layout of a Batch System Monitor (permanently resident) User Space (compilers, programs, data, etc.) The monitor is system software that is responsible for interpreting and carrying out the instructions in the batch jobs. When the monitor started a job, it handed over control of the entire computer to the job, which then controlled the computer until it finished. The Second Generation (1955–65) Transistors and Batch Systems Advantages of batch systems – – move much of the work of the operator to the computer increased performance since it was possible for job to start as soon as the previous job finished Disadvantages – – – – – turn-around time can be large from user standpoint more difficult to debug program due to lack of protection scheme, one batch job can affect pending jobs (read too many cards, etc) a job could corrupt the monitor, thus affecting pending jobs a job could enter an infinite loop The Third Generation (1965–1980) ICs and Multiprogramming Have more than one active (running) program in memory at any one time. The Third Generation (1965–1980) ICs and Multiprogramming Main features of this generation CPU and I/O Overlap Spooling – simultaneous peripheral operations on line Time-sharing technique The Third Generation (1965–1980) ICs and Multiprogramming The typical CPU and I/O overlap pattern in a single program The Third Generation (1965–1980) ICs and Multiprogramming Goal of multiprogramming Keep CPUs and and I/O devices busy. The Third Generation (1965–1980) ICs and Multiprogramming CPU Bound Programs – – Perform calculation most of time Scientific computation I/O Bound Programs – – Perform I/O most of time Commercial data processing The Third Generation (1965–1980) ICs and Multiprogramming Time Saved The Third Generation (1965–1980) ICs and Multiprogramming Spooling (simultaneous peripheral operations on line). In spooling, a high-speed device like a disk interposed between a running program and a lowspeed device involved with the program in input/output. Example: Instead of writing directly to a printer, outputs are written to the disk. – – Programs can run to completion faster; and other programs can be initiated sooner when the printer becomes available, the outputs may be printed. The Third Generation (1965–1980) ICs and Multiprogramming Time Sharing Technique A variant of multiprogramming technique. Each user has an on-line terminal. Because the user is present and interacting with the computer, the computer system must respond quickly to user requests, otherwise user productivity could suffer. Timesharing systems were developed to multiprogram large number of simultaneous interactive users. The Fourth Generation (1980–Present) Personal Computers With the development of LSI circuits, chips, operating system entered entered in the personal computer and the workstation age. Microprocessor technology evolved to the point that it become possible to build desktop computers as powerful as the mainframes of the 1970s. The Fourth Generation (1980–Present) Personal Computers CP/M (Control Program of Microcomputers) MS-Dos Windows Unix GUI The Evolution Early systems No Operating System Batch Operating Systems Multiprogramming Systems Interactive operating Systems Personal Computer and Workstation Operating Systems Real-time Operating Systems Distributed Operating Systems