Chapter 1: Introduction
What Operating Systems Do Computer-System Organization Operating-System Structure Operating-System functionalities Process Management Memory Management Storage Management Protection and Security Computing Environments
Objectives To understand the computer system organization To understand the major operating system components
What is an Operating System? (user view) ? ? ?
OS #&*…%$ For ease of use
What is an Operating System? (system view) CPU MEM data output
What is an Operating System? (system view) CPU MEM data output prog1 prog2 prog3 prog4 Resource allocator Control program
Computer-system operation (The OS initialization phase) ROM RAM 1 2 3
Computer-System Organization (after booting) OS Hardware applications Sys. call signal cmd interrupt polling
OS operations OS applications Sys. call return cmd controller buffer interrupt AP1 AP2 I/O devices and the CPU execute concurrently
Common Functions of Interrupts (interrupt vector table, IVT) mem IDTR IDTR: interrupt descriptor table register ISR 1.Interrupt transfers control to the interrupt service routine 2.Disable all incoming interrupts (why?) 3.Save the CPU status of the interrupted program 1 2’ 2”
Common Functions of Interrupts OS kernel Hardware applications Sys. call signal cmd interrupt Software interrupt Basically, an operating system is interrupt driven. Dual-Mode operation: kernel mode + user mode polling
Interrupt Handling 1.Save the CPU status (including the CPU status register, program counter and some other registers) 2.Interrupt handling depends on the type of interrupt – polling – vectored interrupt system – vectored interrupt system + polling 3.Execute the interrupt service routine.
Direct Memory Access Structure (DMA) bus
Direct Memory Access Structure (DMA) cache bus
Two I/O Methods After I/O starts, control returns to user program only upon I/O completion. – Synchronous I/O – Cons:??? – Pros:??? After I/O starts, control returns to user program without waiting for I/O completion. – Asynchronous I/O – Cons:??? – Pros:???
Two I/O Methods Synchronous Asynchronous
Storage Hierarchy Storage systems organized in hierarchy. – Speed – Cost – Volatility Caching – a temporary storage area where frequently accessed data can be stored for rapid access. – Register: main memory – Cache memory: main memory – Main memory: disk
Storage-Device Hierarchy only large storage media that the CPU can access directly. extension of main memory that provides large nonvolatile storage capacity. compiler OS 刪掉
Performance of Various Levels of Storage
Cache (Coherency & consistency) L1 $ bus L1 $ a=2 a=3 a=0 for (i=0..3) { a=a+1; }
Cache (Coherency & consistency) L1 $ bus L1 $ a=2 a=3 a=0 for (i=0..3) { a=a+1; } coherency consistency
Operating System Structure Multiprogramming needed for efficiency Server When CPU has to wait (for I/O for example), OS switches to another program Timesharing (multitasking) creates interactive computing Personal computer + programs exhaust their time slice
Multiprogramming CPUI/OCPUready CPUI/O ready time
Time sharing CPUI/OCPUready I/O ready time CPU ready
Operating-System Operations OS applications Sys. call controller buffer interrupt AP2
Dual-mode operation (system call) OS applications Sys. call AP2 User mode Kernel mode
Dual-mode operation OS applications AP2 User mode Kernel mode trap ISR Syscall_handler Exception := Trap := Software interrupt Exception := Trap := Software interrupt 1.Mode=kernel_mode Push PC 1.Save machine status 2.Jump_to ISR 1.Mode=kernel_mode Push PC 1.Save machine status 2.Jump_to ISR CPU
Dual-mode operation OS applications Sys. call controller buffer interrupt AP1 AP2 User mode Kernel mode Syscall_handler cmd 1
Dual-mode operation OS applications AP2 User mode Kernel mode trap ISR Syscall_handler 1.restore machine status 2.Mode=user_mode Pop PC 1.restore machine status 2.Mode=user_mode Pop PC CPU AP2
Timer CPUI/OCPUready I/O ready time CPU ready timer interrupt
OS Structure OS Protec- tion Process manage- ment Memory manage- ment Storage manage- ment security fork… malloc.. open & close… setuid… SELinux passwd …
Computing Environments (symmetric multiprocessor, SMP) bus CPU 1 CPU 2 CPU 0
CPU Computing Environments (chip multiprocessor, CMP) L1 $ bus L1 $ L2 $ Core 1 Core 0
CPU Computing Environments (simultaneously multithreading, SMT) bus L1 $ L2 $ Core Logical processor 0 Logical processor 1
CPU Computing Environments (CMP+SMT) L1 $ bus L1 $ L2 $ Core 1 Core 0 LP0 LP1 LP0 LP1
Computing Environments (symmetric multiprocessor, SMP) (UMA) bus CPU 1 CMP+SMT CPU 1 CMP+SMT CPU 2 CMP+SMT CPU 2 CMP+SMT CPU 0 CMP+SMT CPU 0 CMP+SMT
Computing Environments (symmetric multiprocessor, SMP) (NUMA) bus CPU 1 CMP+SMT CPU 1 CMP+SMT CPU 2 CMP+SMT CPU 2 CMP+SMT CPU 0 CMP+SMT CPU 0 CMP+SMT
Embedded systems & web computing internet WEB apps
參考資料 Silberschatz, Galvin and Gagne, “Operating system Principles,” 8 th ed Wikipedia,