- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
操作系统简介
展开查看详情
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