Operating Systems. Purpose of an Operating System. Manage system resources CPU scheduling Process management Memory management Input/Output device management Storage device management (hard disks, CD/DVD drives, etc) File System Management Simplify the development and use of applications.
Purpose of an Operating System • Manage system resources • CPU scheduling • Process management • Memory management • Input/Output device management • Storage device management (hard disks, CD/DVD drives, etc) • File System Management • Simplify the development and use of applications
Mainstream Operating Systems • Microsoft Windows • MacOS • Mac and PCs are not directly compatible but virtualization can be used.
UNIX • Operating system for large computers about 40 years ago. • Linux • Free implementation of Unix • Supported by most platforms
Special Purpose OS • Most “devices” use an operating system to make application development easier. • Examples: • cell phones (Symbian, BlackBerry, Windows Mobile, etc). • Aircraft Systems (VxWorks, pSOS, QNX)
Layers • Layers need to be concerned with layer below (and above) • Layers are isolated from certain changes
Virtual Machine Linux Application Linux (OS) Windows Application VMWare Application Windows (OS) Hardware
OS Modes • A typical operating system has two modes of operation. • User Mode • Kernel Mode • These are like layers of operation within the operating system layer.
User Mode • The User Mode is concerned with the actual interface between the user and the system. • It controls things like running applications and accessing files.
Kernel Mode • The Kernel Mode is concerned with everything running in the background. • It controls things like: • accessing system resources • controlling hardware functions • processing program instructions. • The Kernel forms the core of the operating system. • acts like a supervisor for everything that is happening in the computer.
The Client-Server OS Model • In the client-server model of an operating system, the User Mode is considered a client. • the User Mode accesses resources provided by the Kernel (the server).
Typical OS Architecture Service Application Service Application Service Application Service Application User mode (client) Application Interface Kernel mode (server) Dispatcher I/O Device Manager Memory Manager Security System Graphics System Graphics System Scheduler File System Kernel Hardware
User Interface • Way for the user to control the operating system. • Two types: graphical user interface (GUI) and command line interface
Command Line Interpreter • Converts typed commands into operating system actions (system calls). • Most interpreters execute applications to perform the system calls.
Managing System Resources • An operating system needs to manage a wide range of system resources: • CPU scheduling and process management • Memory (RAM) • Access to peripheral devices • File system management.
CPU Scheduling Applications • Decide when applications should run; does the order matter? • Are the applications active or sleeping? • Multiple applications at the same time Word Internet Explorer Microsoft Outlook Adobe Acrobat
The Process Table • Keeping track of all of the processes is done with the Process Table. • The Process Table lists: • Processes that are currently being run • Processes that are waiting to be executed • Processes that have been temporarily suspended • It also keeps track of the current status, or state, of each process.
Memory Management RAM • Give memory to each application as needed. • Protect applications from each other • Protect operating system from ‘bad’ applications Windows Word Internet Explorer Internet Explorer Unused
Peripherals • Devices are very difficult to program • OS Provides Drivers • Applications speak to drivers • Drivers communicate to device
File System • Manage Information (files and folders) • Provide common view of storage devices
Review Questions • Describe two tasks that are performed by an operating system. • Describe the four layers of interaction in an operating system model. • Briefly describe how you can install multiple operating systems on the same computer. • Draw a diagram to demonstrate how virtualization can be used to run multiple operating systems at the same time.
Briefly describe the client-server model of an operating system. • Draw a simple diagram to show the two modes of operations of an OS. • Briefly describe the function of the Command Line Interpreter. • What are the major differences between System Calls and Interrupts? • Describe the purpose of the Process Table.