Presentation is loading. Please wait.

Presentation is loading. Please wait.

1: What is an operating system? Last Modified: 11/21/2015 1:20 AM.

Similar presentations


Presentation on theme: "1: What is an operating system? Last Modified: 11/21/2015 1:20 AM."— Presentation transcript:

1 1: What is an operating system? Last Modified: 11/21/2015 1:20 AM

2 -2 What is an operating system? r A software layer that m manages hardware resources m provides an abstraction of the underlying hardware that is easier to program and use Applications Operating Systems Hardware

3 -3 Hardware Resources r CPU, Functional Units, Registers r Main memory access r Storage devices (disk drives, CD-ROMs, tape drives) r Network Interface Cards r Human I/O devices (keyboards, monitors, mice) r Other? Printers, cameras, sensors, … How much do you know about what it would be like to interact with these devices without an OS?

4 -4 Benefits of Operating Systems (1) r Abstracting the Hardware m Gory details of the raw hardware hidden so applications can be smaller and simpler m Fast access (as little “tax” as possible) m Application writers can program to a simpler and more portable “virtual machine” r Providing useful logical abstractions m New types of logical resources (sockets, pipes, file systems)

5 -5 Benefits of Operating Systems (2) r Protecting applications from each other m Enforce “fair” allocation of hardware resources among applications m Policies that say what is “fair” and mechanisms to enforce it r Supporting communication and coordination among applications m Support abstractions through which different applications can share data and notify each other of events

6 -6 What an operating system is not? r Compiler r Standard libraries r Command Shells r These are closely related pieces of system software, but they are not the OS.

7 -7 Is OS code like other code? r Most OSs implemented in C r Developed without space-age development environments (kernel debuggers?) r The buck stops here! m OS must deal with gory hardware details Try to keep hardware dependent parts isolated m What happens when get a device interrupt in the middle of executing an application? What happens when get a device interrupt while servicing another device interrupt? m What happens if you take a page fault while executing operating system code r Performance and reliability are crucial! r Still a lot more like application code than you might think

8 -8 Lots of variety of OSes r Unix (Solaris, HP-UX, AIX, FreeBSD, NetBSD,OpenBSD..) r Linux r Windows XP, 2000, NT, ME, 98, 95 r BeOS r MacOS r AndroidOS, PalmOS r WindowsCE r Mach, Amoeba, Sprite, Vino, SPIN, QnX,…

9 -9 What distinguishes operating systems? r When people talk about which operating system to run, they often talk about: m Look and feel of the desktop windowing system m Devices that are supported m What hardware platforms does it run on? m Applications that are available for that OS m Who developed the code? Who supports the code? m How often does the system crash? Reliability? m Do you pay for it? r Are these really core OS issues?

10 -10 Core OS Issues: OS Structure r How is the OS structured? m One monolithic kernel of spaghetti code m One monolithic kernel that is internally composed of distinct layers m One monolithic kernel that is internally composed of distinct objects m Micro-kernel with trusted user level applications that provide major OS functionality like virtual memory, scheduling, file systems, etc. r Software engineering question m Maintainability? Performance? Reliability? Portability?

11 -11 Core OS Issues r Concurrency m How many and what types of activities can occur simultaneously? r Protection m What is the granularity at which permission to access various resources are granted? m How do you verify an entity’s right to access a resource? r Fault Tolerance m How do we deal with faults in applications? In devices? In our own OS code?

12 -12 Core OS Issues r Resource/services provided to applications m Does the OS offer kernel support for events? Signals? Threads? Pipes? Shared memory? r Naming m How do applications refer to and request the resources they want for themselves? Resources they want to share with others? r Sharing m What objects can be shared among applications? What is the granularity of sharing? r Resource Allocation and Tracking m What is the unit (or units) of resource allocation? m Can we track ( and bill for) resource usage?

13 -13 Core OS Issues r Service Time Guarantees m What guarantees (if any) are made to applications about the servicing of their requests or about the servicing of device interrupts? m Real-time OSs r Scale/Load m What are the limits of resource allocation? (Biggest file, Maximum number of processes, etc.) m What happens as the demand for resources increases? (graceful degradation? )

14 -14 Core OS Issues r Extensibility /Tuning m What interfaces are provided to change operating system behavior? m How does (or does) the OS optimize its behavior based on the characteristics of the hardware or the application mix?

15 -15 Programmers/users demand performance r Users want to realize the full “advertised” capability of a hardware resource m If they have a disk capable of 20 MB/sec transfer rate, then they would like to be able to read files at that rate m If they have a network interface card capable of 100 Mbit/sec transmission rate, then they would like to be able to send data at that rate r Operating System usually provide the desired functionality at a cost of some overhead (tax like the government) m Avoid seek and rotational delay when reading/writing to the disk m Avoid control messages sent over the network m Use a minimum of memory/disk space r Programmers/users want that tax to be at a minimum

16 -16 Performance Optimization r Operating systems try to optimize their algorithms to minimize the “tax” on applications r What algorithms minimize the tax? That is a hard question – depends on what your workload is r Example: What data do you keep in memory? m LRU is generally good but is exactly the wrong thing for large sequential accesses r Optimize for the “common” case? Adapt? Let applications give hints?

17 -17 OS Goals r So operating systems should: m Abstract the raw hardware m Protect apps from each other m Not allow applications to monopolize more that their fair share of system resources m Provide desired functionality m Expose the raw capability of the hardware, minimizing the “tax” m Optimize for the expected (any?) workload m Be simple enough that the code executes quickly and can be debugged easily r Does this sound like a big job to anyone?

18 -18 Topics r OS History, Architectural Support r Processes, Threads r Scheduling r Synchronization, Deadlock r Memory Management r File Systems, IO Devices r Networks, Distributed Systems r Security

19 -19 Outtakes

20 -20 Logistics r Course Web Page r Mailing List r Staff r Textbook

21 -21 Textbooks Required: r Operating System Concepts, 7th Edition, by Silberschatz, Galvin, and Gagne, John Wiley & Sons, 2005, ISBN 0-471-69466-5. Recommended: r The C Programming Language, ANSI C, Second Edition, by Kernighan & Ritchie, Prentice Hall, 1988, ISBN 0-13- 110362-8.


Download ppt "1: What is an operating system? Last Modified: 11/21/2015 1:20 AM."

Similar presentations


Ads by Google