410 likes | 589 Views
OPERATING SYSTEMS PRINCIPLES. Instructor: Xiangluo Wang E-Mail: wx_25@yahoo.com.cn Office: Yifu A404 Office Hours: Thursdays@ 16:00-18:00,or by appointment. Preface. GOALS Devoting to traditional topics Extending & Integrating them with basic ideas in distributed computing
E N D
OPERATING SYSTEMS PRINCIPLES Instructor: Xiangluo Wang E-Mail: wx_25@yahoo.com.cn Office: Yifu A404 Office Hours: Thursdays@ 16:00-18:00,or by appointment
Preface • GOALS • Devoting to traditional topics • Extending & Integrating them with basic ideas in distributed computing • Emphasizing language application • CONTENTS • Process Management and Coordination • Memory Management • File and I/O Management • Protection and Security
Preface • EXERCISES • Analytical contents • Constructive contents • Discussion or speculative analysis • APPROACH & PHILOSOPHY • In-depth coverage of standard topics • Integrating centralized and distributed OS issues in each chapter • Introducing various cases of existing os throughout the course
CHAPTER 1 INDEX: • THE ROLE OF OPERATING SYSTEMS • ORGANIZATION OF OPERATING SYSTEMS • OPERATING SYSTEM EVOLUTION AND CONCEPTS
THE ROLE OF OPERATING SYSTEMS • Bridging the Hardware/Application Gap • As Extended Machines • As Virtual Machines • As Resource Managers
Fetch the instruction pointed to by the program counter Increment the program counter Decode the current instruction Fetch any operands referenced by the instruction Execute the instruction FIGURE 1-1 Basic hardware cycle
CPU Communication devices Main memory Main memory CPU Communication devices User Network CPU Secondary storage Secondary storage FIGURE 1-2 Main components of a computer system FIGURE 1-3 Shared-memory multiprocessor
Main memory CPU Communication devices Main memory CPU Secondary storage FIGURE1-4 Distributed-memory multiprocessor Main memory Communication devices Network CPU Secondary storage Main memory Communication devices CPU Secondary storage FIGURE 1-5 Multicomputer
LARGE DIVIDE BETWEEN HARDWARE AND APPLICATION: • Machine instructions Read or write a value------High-level data structures Perform arithmetic/logical operation-----Complex control flows • Main memory A linear sequence of simple cells------programs, modules, and data structures • Secondary storage Tracks, blocks------file • Hardware interface and I/O device Registers-------messages
Three Views of operating systems • Abstraction: Being applied to handle complexity • Virtualization: resource sharing • Resource management: The problem of efficiency KEY CONCEPTS:
OS as Extended Machines • Abstraction: package sequences of lower-level instructions into functions that can be invoked as single higher-level operations • Making use of abstraction at many levels
OS as Virtual Machines Application1 Spooling Virtual memory1 Virtual memory2 CPU1 CPU2 Printer1 Printer2 OS Time sharing Memory management Hardware CPU Main memory Printer Principles of virtualization
CS DS 3GB BSS User HEAP HOLE STACK kernel 1GB Task’s VM space in Linux
OS as Resource Managers • Difference between devices’ performance • Parallelism opportunities • Scheduling policies
ORGANIZATION OF OS • Structural Organization (functional) • Internal structure (static) • Hardware Interface • Programming Interface • User Interface • Runtime Organization
User Applications (system and user) Library calls System libraries Kernel calls Machine instructions OS kernel Hardware Structural Organization
Hardware Interface • Interrupts, Singularities, and Traps • External interrupts (Hardware) • Internal interrupts • Soft interrupts • Self traps • Singularities • Modes of Instruction Execution X86:Ring 0—Ring 3
Example • Clock interrupt in Linux Several hardware clock interrupts contribute one “tick”; One “tick” causes the change of execution mode . • Task schedule& switch Occurring in Ring 0 • User mode& kernel mode Linux: Ring0& Ring3; OS2: Ring0---Ring3
The Programming Interface • The difference between kernel and library functions • Sys-calls provided by OSs
Application issues call To lib_func(params) Body of Lib_func() Push params on stack Branch to lib_func() body Perform service Return from function Pop stack pointer Nonprivileged library service
Body of kern_func() Application issues call To kern_func(params) Kernel code Push params on stack Branch to kern_func() body Set up regs for SVC SVC Perform service Set nonprivileged mode Return from SVC Pop stack pointer Return from function Nonprivileged library service
Sys-calls • Process management --create/destroy, suspend/activate process --send signal or message to process --wait for event or signal • Memory management --allocate/deallocate region of memory --increase/decrease size of allocated region
Sys-calls • File management --create/destroy, open/close, move, rename file --append data to file or concatenate files --display content of file or directory --display/change file attributes
Sys-calls • Input/Output --read/write character or block of data from a file or device --control/check status of a device • Miscellaneous services --get current date and time --schedule an alarm to occur --generate various system diagnostics
The User Interface The top-level user interface remains available at all times so that users can launch, use, monitor, and manage applications and files • Text-based interface (shell) • Graphics-based interface (GUI)
The Shell • Execute and manage programs ar: create, edit,modify source files as: compiler ld: GNU linker gdb: GNU DeBug • Manipulate files mkdir, rm, mv, rmdir, cat • Obtain system information who, pwd,du, ls
The Shell • Shell scripts local variables iterative statements conditionals arithmetic and logical operators Wildcards connectors
Runtime Organization User process (client) System process (server) User process Send request Library or kernel call Service routine Service routine Return results return Process1’s address space Process2’s address space Process’ address space Service as a subroutine Service as a process
Benefits of the C/S approach • Being suitable for a distributed system • Being convenient for different types of services • Having a greater degree of fault tolerance • Enforcing a strict segregation of functionalities
OS EVOLUTION&CONCEPTS • Early systems • Batch OSs • Multiprogramming Systems • Interactive OSs • PC and Workstation OSs • Real-Time OSs • Distributed OSs
Early Systems • Users interact with computations • One at a time • At the lowest machine level • A standard operating procedure Loaderassemblersource programloaderexe machine code • Initial startup (bootstrapping)
Batch OSs • Automating the standard load/translate/load/execute sequence • Job-to-job transitions automatically • Submitting multiple jobs at the same time • I/O processor (I/O channel)
Multiprogramming Systems • A simultaneous manner • Virtual parallelism (concurrence) • Protection • Process synchronization and communication • Dynamic memory management
CPU IO Job A Job B Sequential execution CPUA IOA CPUB IOB Job A Job B multiprogramming CPU and I/O overlap
Interactive OSs • The ability to simultaneously share a machine’s resources • Acceptable response time to each user • Serve processes cyclically by assigning a small portion or quantum of CPU time
PC and Workstation OSs • The development of GUIs • Manually switching • Implicit multiprogramming (multitasking) Being transparent to the interactive user but not to applications • Preemptive multiprogramming Being transparent not only to users but to applications
Real-Time OSs • Timing constraints (deterministic deadlines) • Concurrency (asynchronous, simultaneous) • Strict fault tolerance and reliability requirements • Difficult to test and certify
Distributed OSs • Loosely coupled Communicates at a lower level (e.g., over a WAN) • Tightly coupled higher-level communication on top of message passing (RPC) • Clocks must be synchronized, accurate, and monotomic increasing
EXERCISES • Give examples of semantic gaps that must be bridged by software,including OSs at the following levels: CPU (instruction) level, main memory level, secondary storage level, I/O device level. • What do traps and interrupts have in common? How are they different? Give an example of each.
EXERCISES • What do multiprogramming and time-sharing have in common? How are they different? Is multiprogramming possible without interrupts? Is time-sharing possible without interrupts?