160 likes | 258 Views
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
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 • Multithreading (mainstream systems) • OS/2 • System-V (AIX, Solaris, SCO Unixware) • Windows 95/98/NT/XP, 200x • Linux
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