160 likes | 173 Views
This course covers the fundamentals of operating systems, including concepts, functions, and the evolution of OS technology. Topics include resource management, kernel implementation, API design, and system software examples. Assignments, labs, exams, and quizzes are included to reinforce learning.
E N D
CS350 Operating Systems
Administrivia • Assignments • Homework on most chapters • Approximately 8 lab assignments • Exams • Midterm • Final (comprehensive) • Quizzes • Random, 10 minutes each • Grades required to pass (after curving) • >= 70 average on labs • >= 70 average on (h/w + quizzes) together • >= 60 on midterm to pass
Introduction & Motivation • Wanted – a methodology to: • get more work done in a fixed time • allow multiple users on 1 computer • allow programs to interact with each other • maximize memory and CPU utilization • reduce the need for device handling • allow programs' parts to be shared • make the system more usable (friendlier?) • make system faster
Why Study Operating Systems? • Understand support structure so we can: • Exploit system features • Learn to write more effective code • Learn to design an OS
What IS an Operating System? • A "virtual machine" that provides: • An abstraction of some virtual computer • Common functionality for apps • Security across apps/devices • Some level of concurrency (maybe) • Portability across real machines • Simplified access to resources • Sharing of resources • Services for apps
Perspectives • End user • Getting work done • Application programmer • More efficient use of system • Make work easier for user • O/S programmer • Exploit h/w • Enhance performance, usability
Examples of System Software • Tools - a DBMS • API's - functions to create windows • Resident programs – resource mgmt
Abstractions • User • Windows, folders • Application programmer • OS, language API's • Run-time libraries & DLL's • Shell • OS programmer • Hardware interfaces • Machine instructions • OS service interfaces
Abstract View of System User Space Application Programming Interface O/S Space
The API • Application Programming Interface • Exposes a portion of an environment • Provides services • I/O • Memory • Protection • Security
Evolution of OS's • Uni-programming • DOS • Apparent multiprogramming • Windows Versions 2 to 3.1 • True multi-programming • UNIX/LINUX, OS/2, Windows95+ • Mainframe systems: • MVS, VMS, VM
OS Strategies • Batch • All work pre-scheduled • Timesharing • Multi-user, Interactive • PC's and Workstations • Single-user, interactive • Embedded • Satellites, robots, etc • PDA's • Single-user, interactive, small • Network OS's • Multi-machine, multi-user
Resource Management • Resources • Memory • CPU cycles • I/O • Includes networks, robot arms, motors • That is, any means of getting information (or signals) into or out of the computer
Resource Sharing • Why do we need to share? • Greater throughput • Lowers cost of resources • Allows more resources to be available
The Kernel • Implements O/S functions • Privileged, non-interruptible • Sometimes reduced to a "micro-kernel" • Absolutely minimal set of functions required to be in privileged mode • Micro-kernel does NOT include : • Device drivers • File services • Process server • Virtual memory mgmt