1 / 59

Operating Systems

CS1356 資訊工程導論. Operating Systems. 國立清華大學資訊工程學系. 2014/10/25. How does a computer start executing?. Simple Answer. The program counter is initiated with a particular address in a special memory when the computer is powered on

Download Presentation

Operating Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS1356 資訊工程導論 Operating Systems 國立清華大學資訊工程學系 2014/10/25

  2. How does a computer start executing?

  3. Simple Answer • The program counter is initiated with a particular address in a special memory when the computer is powered on • That address is start of a (special) program to bring up other programs and the system • But DRAM is volatile! • So, we use read-only memory (ROM)

  4. Suppose the computer runs only one program … Full control of everything, e.g. CPU Manage everything

  5. Suppose the computer runs many programs … How do they get executed? How do they get the most important resource – the CPU?

  6. Grabbing the CPU • In a single-processor computer, only one CPU to be shared by all programs • Who can get the microphone? (analogy by 資工四年清班張明禾)

  7. We Need a Chairperson! • The chairperson decides who gets the microphone to speak next • Two ways to schedule: • Let each speaker talk until he/she finishes • “Interrupts” the speaker to get back the microphone and turn to another speaker time sharing

  8. Chairperson Can Do More • Which portion of blackboarda speaker can write?  memory management • Who can use 幻燈機 (projector)? • Why not operated by chairperson? • Device driver and management Chairperson is OS

  9. System User Procedure Software Hardware Data What Is a System? • A set of interacting, interdependent entities forming an integrated whole. • From Wikipedia • Five components • Hardware • Software • Data • Procedure • User

  10. Software Classification • Operating system is one kind of software (Fig. 3.3)

  11. Operating Systems • One kind of software that controls the overall operation of a computer • Unix, Sun Solaris • Linux: Ubuntu, Redhat, ... • Microsoft Windows • Apple Mac OS X • Google Chrome OS

  12. Outline Components and functions Process management Handling competition for resources Security

  13. Components and Functions Shell, kernel, file manager, device drivers, memory manager, bootstrapping, scheduler, dispatcher

  14. Components of OS For user: shell, privilege control (security) For data: file manager For hardware: device manager, memory manager, and boot manager For software: Where to store: file manger, registry How to execute: scheduler, process manager

  15. How about Procedure? • OS needs to define a set of rules or working flows for users and hardware/ software developers. • For example, you need to double clickan icon to open a program or a file. • Design a simple yet useful procedure for a complicated system is not an easy job. • This is for books like “How to use computers?” to talk about

  16. Shell Shell: an interface between users and the operating system Text based: 命令提示字元 Graphical user interface (GUI) Windows, icons, menus, pointers (WIMP) Window manager (Fig. 3.4)

  17. File Manager File manager: organizes and maintains the records of files in mass storages Hierarchical structure Directory (or folder), directory path File descriptor File name, extension, size, updated date, permissions, attributes, … File operations Copy, paste, creation, open…

  18. Device Manager • Communicate with the controllers/devices • Drive the corresponding peripheral devices • Each device driver is uniquely designed for its particular type of device

  19. Memory Manager Coordinates the use of memory Suppose computer runs only one program The program can use any part of the main memory (i.e., DRAM) What if the program is larger than the memory?  store only the needed portion Who makes the move?

  20. Memory Manager Suppose computer runs many programs at the same time What if programs are larger than the memory? Which program uses which part of the memory? How to protect they from each other? All done by OS!

  21. Virtual Memory Create the illusion of a memory space much larger than physical memory. How? Store only needed portion in memory and the remaining in disks Shuffle portions between memory and disks Program uses virtual address, while OS does the mapping Paging: memory is grouped into pages to facilitate the mapping and shuffling

  22. Example of Paging Page 0 Page 1 Page 2 Page 3 Page 4 Main memory Page 5 Page 6 Page 7 Disk Virtual address • There are 8 pages; each is of 4KB • Main memory is of size 16KB (4 pages) • Programs use virtualaddress to access data and code • OS does the mappingand paging

  23. Get It Started: Bootstrapping Loader: a special program places machine programs to main memory for execution Think about the problem 2 of homework 3 Usually part of the OS’s scheduler Who loads the OS to memory? A “special memory” that contains a “program” to load the OS after computer is powered on. Read-only memory (ROM) Bootstrap

  24. The Booting Process • The program counter is initiated with a particular address in ROM where the bootstrap is stored

  25. BIOS and Firmware • The bootstrap program and other basic input/output functions are contained in a special ROM, called BIOS (basic input/output system) • A program stored in ROM is called firmware • Hardware or software?

  26. Process Management History, today, and future

  27. A Program vs. a Process • Program: a set of instructions, e.g., notepad.c, notepad.exe • Process: activity of executing a program • A program can be run multiple times, each instance/activity called a process • Interprocess communication • The communication between processes (may from running one or more programs)

  28. Evolution of Computers • Batch processing • Interactive processing: requires real-time processing • Time-sharing/multitasking: implemented by multiprogramming • New challenges: multicore processors, and small devices

  29. Batch Processing FIFO: first in first serve

  30. Interactive Processing Text editing, music/movie playing, …

  31. Time-sharing/Multitasking • Time-sharing between process A and process B (Fig. 3.6)

  32. Context (Process State) • Snapshot of current status of a process • A process identifier, or PID • Register values, Program Counter value • The memory space, I/O, files for the process • Can be saved and resumed as if the process is not interrupted • Another meaning: execution state of the process • Ready: ready for execution • Waiting: waiting for some I/O • Complete: finished process

  33. Scheduler • Determines which processes should be considered for execution based on some priorities or concerns • Using process table for administration • Process table • Ready or waiting • Priority • Non-scheduling information: memory pages, etc.

  34. Dispatcher • Gives time slices to a process that is ready • Executes a context switch when the running process’s time slice is over • Time slice: a time segment for each execution • Interrupt: the signal generated by a hardware timer to indicate the end of a time slice. • The interrupt handler (part of dispatcher) starts after the interrupt to perform context switch

  35. Context Switch (process switch) • Get an interrupt from timer • Go to the interrupt handler • Save the context of process A • Find a process ready to run(Assume that is process B) • Load the context of process B • Start (continue) process B

  36. Thread • A task existing within a process that allows multiple independent instances to be executed concurrently • Multiple threads share resources such as memory, program code, … • Each thread has its own program counter, registers, and stack (local memory) • The context switch of threads is much faster than that of processes

  37. Exercises • Suppose an OS allocates time slices in 10 millisecond units and the time required for a context switch is negligible. How many processes can obtain a time slice is one second? • If it takes one microsecond to perform a context switch and processes use only half of their allotted 10 millisecond time slices, what percent of a CPU’s time is spent performing context switches rather than executing processes?

  38. New Challenges • Multicore processor • A processing system composed of two or more independent cores (or CPUs), which share resources, such as memory. • Embedded systems, small devices • A computer system designed to perform one or a few dedicated functions, often with real-time computing constraints.

  39. Multiprocessor Machines How to assign tasks to processors? Load balance problem How to use processors to handle one task? Parallelization, scaling problem Processor 1 Processor 2 Task 1 Task 4 Task 7 Task 2 Task 5 Task 8 Processor 3 Processor 4 Task 3 Task 6 Task 9

  40. OS for Small Devices Embedded systems, PDA, mp3 player, cell phone, GPS,… Limited storage, limited power, Usually has real time requirement Turkey system: store all programs and data in a persistent memory No BIOS and program loader

  41. Handling Competition for Resources

  42. What are resources? CPU, memory, files, peripheral devices, … In a multitasking system, resources are shared by processes Some resources should not be employed by more than one process simultaneously E.g., printer Competition for Resources

  43. Handling Competitions • Define critical regions • Critical Region: A group of instructions that should be executed by only one process at a time • Mutual exclusion: Requirement for proper implementation of a critical region

  44. First Algorithm Use a flag (a global memory address) flag=1: the critical region is occupied flag=0: no process is in the critical region Problem: Both processes get into the critical region Process B Process A if (flag == 0) { flag = 1;/*critical region*/} if (flag == 0) { flag = 1;/*critical region*/} Context switch to A Context switch to B

  45. Solutions Testing&setting the flag must be completed w/o interruption (atomic) Use disable_Interrupt() to prevent context switch during the flag test and set process. A machine instruction called “test-and-set” which cannot be interrupted Semaphore: a properly implemented flag Diable_Interrupt();if (flag == 0) { flag = 1; Enable_Interrupt(); / *critical region*/}Enable_Interrupt();

  46. Another Problem: Deadlock Example: A is in critical region 1, and waits to enter critical region 2 B is in critical region 2, and waits to enter critical region 1 Process B Process A if (test_set(flag2)) {/*critical region 2*/while (!test_set(flag1)); /*critical region 1*/} if (test_set(flag1)) {/*critical region 1*/while(!test_set(flag2)); /*critical region 2*/} Context switch to A Context switch to B

  47. Conditions for Deadlock Competition for non-sharable resources Resources requested on a partial basis Allocated resources cannot be forcibly retrieved Circular wait Remove any one of the conditions can resolve the deadlock.

  48. Solutions Which condition is removed? Kill one of the process Processes need to request all the required resources at one time Spooling For example, stores the data to be printed and waits the printer available Divide a file into pieces so that it can be altered by different processes

  49. Exercises • There is a bridge that only allows one car to pass. When two cars meet in the middle, it causes “deadlock”. The following solutions remove which conditions • Do not let a car onto the bridge until the bridge is empty. • If cars meet, make one of them back up. • Add a second lane to the bridge. • What’s the drawback of solution 1?

  50. Security

More Related