Introduction and Overview: Questions Answered in This Lecture
Introduction and Overview: Questions Answered in This Lecture
Introduction and Overview: Questions Answered in This Lecture
Users
compilers
Applications databases
word processors
Operating System
CPU
Hardware memory
I/O devices
OS:
Everything in system that isn’t an application or hardware
OS:
Software that converts hardware into a useful form for applications
What is the role of the OS?
Role #1: Provide standard Library (I.e., abstract resources)
What is a resource?
• Anything valuable (e.g., CPU, memory, disk)
Advantages of standard library
• Allow applications to reuse common facilities
• Make different devices look the same
• Provide higher-level abstractions
Challenges
• What are the correct abstractions?
• How much of hardware should be exposed?
What is the role of the OS?
Role #2: Resource coordinator (I.e., manager)
OS Functionality
• Add back time-sharing, protection, and virtual memory
Current Systems
Conclusion: OS changes due to both hardware and users
Current trends
• Multiprocessors
• Networked systems
• Virtual machines
OS code base is large
• Millions of lines of code
• 1000 person-years of work
Code is complex and poorly understood
• System outlives any of its builders
• System will always contain bugs
• Behavior is hard to predict, tuning is done by guessing
OS Components
Kernel: Core components of the OS
Process scheduler
• Determines when and for long each process executes
Memory manager
• Determines when and how memory is allocated to processes
• Decides what to do when main memory is full
File system
• Organizes named collections of data in persistent storage
Networking
• Enables processes to communicate with one another
Why study Operating Systems?
Build, modify, or administer an operating system