3/28/2016 Introduction to Operating Systems 1A. Administrative introduction to course 1B. Why study Operating Systems? CS111 1C. What is an Operating System? Operating Systems Principles 1D. Operating Systems goals 1E. Principles to be covered in this course Mark Kampe 1F. A (very) brief history of Operating Systems (markk@cs.ucla.edu) Introduction to Operating Systems 2 Instructor This Course • Background (non-academic) • This is a revised curriculum with new goals: – professional engineer w/over 40 years in OS – understanding and exploiting OS services • commercial Unix/Linux, SMP and distributed – foundation concepts and principles • development, leadership, staff and executive roles – common problems that have been solved in OS – I am here because I love teaching and I love OS – evolving directions in system architecture • Getting in touch with me (in order) • This is not a course in how to build an OS – email: markk@cs.ucla.edu – you will not read or write any kernel-mode code – GoogleTalk: mark.kampe@gmail.com – you will not study or build any parts of a toy OS – office: BH 4532B, MW 1-1:50, 4-4:50 Introduction to Operating Systems 3 Introduction to Operating Systems 4 Learning Objectives Course Web Site(s) http://web.cs.ucla.edu/classes/spring16/cs111 • We started with a list of learning objectives • course syllabus – over 300 concepts, issues, approaches and skills • reading, lecture and exam schedule • All activities in this course are based on them • copies of lecture slides – the reading has been chosen introduce them • supplementary reading and study materials – the lectures are designed to reinforce them https://ccle.ucla.edu/course/view/16S-COMSCI111-1 – the projects have been chosen to exercise them • announcements – the exams will test your mastery of them • (per lecture) on-line quizzes • Study this list to understand the course goals • projects descriptions and submission • Use this list to guide your pre-exam review • discussion forum Introduction to Operating Systems 5 Introduction to Operating Systems 6 1
3/28/2016 Reading and Quizzes Lectures • Reading • Lectures will not – Remzi Arpaci-Dusseau OS in Three Easy Pieces – re-teach material well-covered by the reading – Saltzer – System Design (complexity and security) • Lectures will be used to – numerous monographs to fill in gaps – clarify and elaborate on the reading – average 40pp/day, but there is one 84 page day – explore implications and applications • Quizzes – discuss material not covered by the reading – 4-8 short questions on the assigned reading – discuss questions raised by students – online (CCLE), due before start of each lecture • All lecture slides will be posted on-line – purpose: to ensure that you do the reading – to aid you in your note-taking and review Introduction to Operating Systems 7 Introduction to Operating Systems 8 Projects Academic Honesty • Skill development and demonstration • Acceptable: P0 – a warm-up to confirm your readiness – study and discuss problems/approaches w/friends P1 – processes, I/O and IPC (in 2 parts) – independent research on problems/approaches P2 – synchronization (in 3 parts) • Unacceptable: P3 – file systems (in 2 parts) – submitting work you did not independently create an embedded system project or research paper (or failing to cite your sources) • one part is due every Monday by midnight – sharing code or answers with class-mates – start each project as soon as you finish previous – using reference materials in closed-book exams – be ready to talk to TA about problems on Friday • Detailed rules are in the course syllabus – finish the project over the weekend Introduction to Operating Systems 9 Introduction to Operating Systems 10 Why is OS a required course? Why do I build Operating Systems? • Most CS discussions involve OS concepts • They are held to high pragmatic standards: – performance, correctness, robustness, scalability, • Many hard problems have been solved in OS availability, maintainability, extensibility – synchronization, security, scalability, distributed – they demand meticulous attention to detail computing, dynamic resource management, … • They must also meet high aesthetic standards – the same solutions apply in other areas – they must be general, powerful, and elegant (to be • Few will ever build an OS, but most of us will: understandable by a single person) – set-up, configure, and manage computer systems • The requirements are ever changing – write programs that exploit OS features – exploit the capabilities of ever-evolving hardware – work w/complex distributed/parallel software – enable new classes of systems and applications – build abstracted services and resources • Worthy adversaries attract interesting people – troubleshoot problems in complex systems Introduction to Operating Systems 11 Introduction to Operating Systems 12 2
3/28/2016 What does Operating System do? What makes the OS special? • manages the hardware • It is always in control of the hardware – allocate hardware among the applications – first software loaded when the machine boots – enforce controlled sharing/privacy – continues running while apps come and go – oversee execution and handle errors • It alone has complete access to hardware • abstract the bare hardware – privileged instructions, all memory and devices – make it easier to use – mediates application access to the hardware – make the software more hardware independent • It is trusted • new abstractions to enable applications – to store, manage, and protect critical data – powerful features beyond the bare hardware – to perform all requested operations in good faith Introduction to Operating Systems 13 Introduction to Operating Systems 14 What does an OS look like? Software Layering • applications see objects and operations (user and system) applications – CPU supports data types and operations • bytes, shorts, longs, floats, pointers … Operating System middle-ware services services • add, multiply, copy, compare, indirection, branch … Application Binary Interface – OS supports richer objects, higher operations general libraries • files, processes, threads, segments, ports, … • create, destroy, read, write, signal, … drivers Operating System kernel • much of what OS does is behind-the-scenes Instruction Set Architecture – plug & play, power management, fault-handling, privileged devices general instruction set domain services, upgrade management, … instruction set Introduction to Operating Systems 15 Introduction to Operating Systems 16 Internal Structure (artists conception) What functionality is in the OS • as much as necessary, as little as possible system call interfaces user visible OS model file namespace authorization file file I/O IPC process/thread exception synchronization – OS code is very expensive to develop and maintain model model model model model model model model – it is important to distinguish OS from kernel run-time configuration fault quality … higher level transport file systems loader services management of service services protocols • functionality must be in the OS if it … stream volume hot-plug block I/O services management services services – requires the use of privileged instructions memory logging swapping paging scheduling & tracing network serial display storage I/O class driver class driver class driver class driver abstraction virtual – requires the manipulation of OS data structures execution fault process/thread processes asynchronous engine device drivers device drivers handling scheduling (resource containers) events – required for security, trust, or resource integrity DMA configuration thread memory memory thread bus drivers services analysis dispatching allocation segments synchronization • other simple functions can be in libraries boot I/O resource enclosure processor processor context kernel processor strap allocation management exceptions initialization switching debugger abstraction I/O processor processor memory memory cache cache atomic atomic • complex functionality provided by services DMA interrupts interrupts traps traps timers timers operations mode mode mapping mapping mgmt mgmt updates updates Introduction to Operating Systems 17 Introduction to Operating Systems 18 3
Recommend
More recommend