操作系统简介

本文主要讲述了操作系统的介绍和高级操作系统,操作系统的模型及其演变,讨论不同类型的操作系统。
展开查看详情

1.Advanced Operating Systems (CS 202) Presenter today: Khaled N. Khasawneh Instructor: Nael Abu-Ghazaleh Jan, 9, 2016

2. Today •  Course organization and mechanics •  Introduction to OS 2

3. What is this course about? •  How has the role of the operating system evolved over time? –  How does the past inform the present? •  What are the principles that underlie Operating Systems? •  What are current and future trends in OS? •  Make it real: projects to get some experience with OS development •  Get you ready to do Systems research 3

4. Some topics we will cover •  Operating Systems models and how they evolved –  Monolithic kernels, micro-kernels, … •  extensibility, protection, performance –  How do these models influence current OS organizations •  Virtualization, containers, kernel modules, … •  Concurrency: –  Synchronization and Scheduling –  Multicore OS •  File systems: –  Sequential, networked, distributed, internet scale •  Other advanced topics 4

5. Class format •  For every topic: –  Some overview –  Discuss research papers •  Research papers: –  Critique for some required papers (1 paper most weeks) •  Additional papers discussed in class •  You are responsible for required papers and material discussed in class 5

6. Questions to keep in mind while reading papers •  What are the primary goals (hypothesis)? –  2 sentence elevator pitch •  Why did the authors do what they did the way they did? –  Understand motivation for design •  What were the driving forces for the paper at the time it was written? •  What parts still hold? What parts don’t? •  How did they experiment to support their ideas? 6

7. Reading Research Papers •  Guidelines for reading papers –  Make sure to identify authors’ goals and assumptions. Not always directly stated. –  Look for high-level takeaways. –  Follow a multi-pass reading strategy •  Pass1: Get overview. Pass2: Read details and make notes. Pass3: Re-read details to evaluate. –  Thinkhow techniques used are applicable today. Identify extensions. 7

8. Projects •  Projects (2-3, depending on how I break them up) –  Will also give you an option of a research project in place of the final exam •  Often not directly connected to the research topics we discuss –  Primary goal is to improve systems- building skills 8

9. Expectations and little bit about me •  I am NOT an OS person –  I drew the short straw J •  My first time teaching this class –  My favorite two answers are •  I don’t know •  What do YOU think? –  I am looking forward to learn with you •  …but I do know a lot about OS –  I am a systems person –  I work in architecture, networking, high performance computing and security •  OS is at the intersection of all systems areas 9

10. Class Logistics •  TA: Bashar Romanous –  Officehours and contact information on the class website. •  Class website: http://www.cs.ucr.edu/~nael/cs202 •  Piazza website will be up soon 10

11. Course Logistics •  Projects 35% •  Reading and critiquing papers •  Attendance 20% •  Asking/answering questions •  Mid-term 20% •  Final 25% 11

12. Course Material •  I assume you know undergraduate material –  If you need background, I suggest: •  OS, 3 easy pieces: http://pages.cs.wisc.edu/~remzi/OSTEP/ –  Its free! –  Its excellent! •  Most material from published research papers 12

13. Pre-requisites •  May recap basics of OS, but if so it will be quick •  To do well, you must have had undergrad OS or equivalent preparation •  Architecture, networks, distributed systems courses are also a plus. 13

14. Questions? •  Schedule will be posted incrementally on course website which will go live tomorrow http://www.cs.ucr.edu/~nael/cs202 •  Watch out for course announcements on http://ilearn.ucr.edu 14

15. Situation •  We all have multiple applications running on our smart phone or computer –  Written by programmers that don’t know each other –  They all just magically work – how?? •  Goal today: get you ready to discuss OS structure, our first topic 15

16. Computing Systems – a hierarchy of abstractions •  Computing systems are a series of abstractions –  Impossible to think about a system from electrons to application in one shot –  What are some abstraction layers we have from transistors to applications? •  This class: OS level abstractions 16

17. What is an OS? Applications Operating System Hardware •  Directly has access to underlying hardware •  Hides hardware complexity –  Offers nice abstractions to the applications through system calls •  Manage the hardware on behalf of one or more applications •  Ensures that applications are isolated and protected from each other 17

18. Getting more technical •  What is an OS? –  A piece of software that abstracts and arbitrates a computing systems •  A manager in a shop –  Directs resources •  Controls CPUs, memory, devices… –  Enforces working policies •  Fairness, resource limits, … –  Simplifies complex tasks •  Abstracts hardware; offers system calls 18

19. Abstraction and Arbitration •  OS offers abstractions and arbitration •  Example of arbitration? –  Allocate memory or CPU time –  Arbitrate access to a shared device •  Examples of abstractions? –  Files, sockets, process, thread, … 19

20. Abstractions, mechanisms, policies •  Memory management example •  Abstraction: memory page •  Mechanisms: allocate, map to a process, deallocate •  Policies: page replacement, LRU, LFU, … 20

21. Design principles •  Separation of mechanism and policy –  Implementflexible mechanisms to support many policies •  Policies must optimize for the common case –  Where will the OS be used? –  What will the user want to execute? 21

22. Hardware and Resources •  Good understanding of the hardware is essential to understanding OS •  What hardware? –  Smart phone/tablets? –  Desktops? –  Servers? –  Computing clusters? –  Cloud? •  How different are these? 22

23. They are not that different! CPU chip Register file ALU System bus Memory bus I/O Main Bus interface memory bridge I/O bus Expansion slots for other devices such as network adapters. USB Graphics Disk controller adapter controller Mouse Keyboard Monitor 23 Disk

24.How does the OS interact with the hardware? •  OS –  Has protected access to hardware resources –  Arbitrates among competing requests –  Receives and handles events from the hardware 24

25.What support does the hardware provide to allow that? •  Manipulating privileged machine state –  Protected instructions –  Manipulate device registers, TLB entries, etc. •  Generating and handling “events” –  Interrupts, exceptions, system calls, etc. –  Respond to external events –  CPU requires software intervention to handle fault or trap •  Mechanisms to handle concurrency –  Interrupts, atomic instructions 25

26. Catering to Applications •  Provide resource needs of an application –  CPU, memory, device access •  When applications launch, the OS loads the program from file into memory –  Allocates memory for code, data, heap and stack –  Can the application ask for more resources? •  Yes, it receives additional requests and provides resources as needed •  OS also reacts to events in the system •  Gets out of the way as fast as possible 26

27. CPU management •  Abstractions –  Program: static entity –  Process: program in execution •  Unit of resource allocation and one thread of execution 27

28. Memory management •  Abstractions: –  Address space for each processor •  OS implements these abstractions using the available hardware support •  Paging, segmentation, TLBs, caches… 28

29. Storage/file system •  Abstraction: Files and directories –  Others possible: e.g., object store •  Implemented in a variety of different ways –  Traditional file system: mapping of files to storage –  Network file system –  Distributed FS –  Internet scale FS 29