course: operating systems instructor: umar kalim nust institute of information technology, pakistan ...

35
Course: Operating Systems Instructor: Umar Kalim NUST Institute of Information Technology, Pakistan http://www.niit.edu.pk Operating Systems

Post on 19-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Course: Operating SystemsInstructor: Umar Kalim

NUST Institute of Information Technology, Pakistanhttp://www.niit.edu.pk

Operating Systems

Agenda• Revisiting Operating System Structures

Operating System Design and Implementation• Design and Implementation of OS not

“solvable”, but some approaches have proven successful

• Internal structure of different Operating Systems can vary widely

• Affected by choice of hardware, type of system• User goals and System goals

− User goals – operating system should be convenient to use, easy to learn, reliable, safe, and fast

− System goals – operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient

Operating System Design and Implementation (Cont.)• Important principle to separate

Policy: What will be done? Mechanism: How to do it?

• Mechanisms determine how to do something, policies decide what will be done− The separation of policy from mechanism is a very

important principle, it allows maximum flexibility if policy decisions are to be changed later

• Implementation− Using higher level languages

• Can be easily recompiled for different platforms− Assembly language

• Optimum implementation− Hybrid

Course: Operating SystemsInstructor: Umar Kalim

NUST Institute of Information Technology, Pakistanhttp://www.niit.edu.pk

Processor support for dual mode

Simple Structure • MS-DOS – written to provide the most

functionality in the least space− Not divided into modules− Although MS-DOS has some structure, its

interfaces and levels of functionality are not well separated

MS-DOS Layer Structure

Layered Approach• The operating system is divided into a number

of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.

• With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers

• Current trend− Less layers, more functionality per layer

Layered Approach• Debugging is fairly easy as it can be implemented

in layers.• Difficulty in careful definition of layers, because

each layer can only use layers beneath it.• Another problem is that layered approach tends

to be a little slow at times because each process has to go through subsequent layers and each layer might add extra calculations or traps.

• Advantage is modularity!• But tend to be less efficient than other types

− User program executes an IO operation, it executes a system call that is trapped to the IO layer

• IO layer calls the memory management layer− Memory management layer calls the CPU scheduling

layer• Then passed to hardware

− Overhead at each layer !

Layered Operating System

UNIX• UNIX – limited by hardware functionality, the

original UNIX operating system had limited structuring. The UNIX OS consists of two separable parts− System programs [backup slides]− The kernel

• Consists of everything below the system-call interface and above the physical hardware

• Provides the file system, CPU scheduling, memory management, and other operating-system functions; a large number of functions for one level

UNIX System Structure

Microkernel System Structure • Kernels grew in size with increased functionality in

the OS. − This give birth to the idea of Micro Kernel

• Remove unnecessary programs from the kernel into the user space. − Micro kernels typically provide minimal process

and memory management, in addition to communication facility

• Communication takes place between user modules using message passing.

• Idea of having Clients and Servers within one system. − If a program wants to access a file it does not

interact directly with kernel but kernel is just used to pass the messages indirectly.

Microkernel System Structure • Benefits:

− Easier to extend a microkernel− Easier to port the operating system to new

architectures− More reliable (less code is running in kernel

mode)− More secure

• Detriments:− Performance overhead of user space to kernel

space communication• Example: Tru64 UNIX, QNX

Modules• Most modern operating systems implement

kernel modules− Uses object-oriented approach− Each core component is separate− Each talks to the others over known interfaces− Each is loadable as needed within the kernel

• Overall, similar to layers but with more flexible

Solaris Modular Approach

Mac OS X Structure• Hybrid structure• Mach

− Memory management, inter-process communication, scheduling

• BSD− BSD command

line interface, support for networking, and file systems etc

• Applications can interact with Mach & BSD facilities directly

Windows NT Architecture (Simplified View)• In modern operating systems,

applications are kept separate from the operating system itself.

• The operating system code runs in a privileged processor mode known as kernel-mode and has access to system data and hardware.

• Applications run in a non-privileged processor mode known as user mode and have limited access to system data and hardware through a set of tightly controlled application programming interfaces (APIs).

Windows NT (Case Study)• Windows NT is a multithreaded

microkernel-based operating system. • Keeping the base operating system as

small and as tight as possible was one of the primary design goals of Windows NT. − To do this, Microsoft kept in the base operating

system only those functions that could not reasonably be performed elsewhere.

− Functionality pushed out of the kernel was put in six non-privileged servers known as protected subsystems.

• The protected subsystems provide the traditional operating system support to applications through a feature-rich set of APIs.

Windows NT (Case Study)• This design results in a very stable base

operating system. Enhancements occur at the protected subsystem level.

• New protected subsystems can be added without modifying either the base operating system or the other existing protected subsystems

Course: Operating SystemsInstructor: Umar Kalim

NUST Institute of Information Technology, Pakistanhttp://www.niit.edu.pk

Questions?

Virtual Machines• A virtual machine takes the layered approach to

its logical conclusion. It treats hardware and the operating system kernel as though they were all hardware

• A virtual machine provides an interface identical to the underlying bare hardware

• The operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory

Virtual Machines (Cont.)• The resources of the physical computer are

shared to create the virtual machines− CPU scheduling can create the appearance that

users have their own processor− Spooling and a file system can provide virtual

card readers and virtual line printers− A normal user time-sharing terminal serves as the

virtual machine operator’s console

Virtual Machines (Cont.)

(a) Non virtual machine (b) virtual machine

Non-virtual Machine Virtual Machine

Virtual Machines (Cont.)• The virtual-machine concept provides complete

protection of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing of resources.

• A virtual-machine system is a perfect vehicle for operating-systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation.

• The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine

VMware Architecture

The Java Virtual Machine

Operating System Generation• Operating systems are designed to run on any of

a class of machines; the system must be configured for each specific computer site

• SYSGEN program obtains information concerning the specific configuration of the hardware system

• Booting – starting a computer by loading the kernel

• Bootstrap program – code stored in ROM that is able to locate the kernel, load it into memory, and start its execution

System Boot• Operating system must be made available to

hardware so hardware can start it− Small piece of code – bootstrap loader, locates

the kernel, loads it into memory, and starts it− Sometimes two-step process where boot block at

fixed location loads bootstrap loader− When power initialized on system, execution

starts at a fixed memory location• Firmware used to hold initial boot code

Boot sequence

Course: Operating SystemsInstructor: Umar Kalim

NUST Institute of Information Technology, Pakistanhttp://www.niit.edu.pk

Questions?

•Recommended Reading:− OSRC

• http://www.nondot.org/sabre/os/articles− M. F. Kaashoek, et. al.,

• "Application Performance and Flexibility on Exokernel Systems “http://www.csie.fju.edu.tw/~yeh/research/papers/os-reading-list/frans-sosp97-exokernel.pdf

− G. Hamilton and P. Kougiouris, • " The Spring Nucleus: A Microkernel for Objects

,“http://www.csie.fju.edu.tw/~yeh/research/papers/os-reading-list/hamilton-usenix93-spring.pdf

System Programs• System programs provide a convenient

environment for program development and execution. The can be divided into:− File manipulation − Status information− File modification− Programming language support− Program loading and execution− Communications− Application programs

• Most users’ view of the operation system is defined by system programs, not the actual system calls

System Programs• Provide a convenient environment for program

development and execution− Some of them are simply user interfaces to system

calls; others are considerably more complex• File management - Create, delete, copy, rename, print,

dump, list, and generally manipulate files and directories• Status information

− Some ask the system for info - date, time, amount of available memory, disk space, number of users

− Others provide detailed performance, logging, and debugging information

− Typically, these programs format and print the output to the terminal or other output devices

− Some systems implement a registry - used to store and retrieve configuration information

Boot Sequence• All computers running Windows XP

Professional share the same startup sequence:

• Power-on self test (POST) phase • Initial startup phase • Boot loader phase • Detect and configure hardware phase • Kernel loading phase • Logon phase

Power On Self Test (POST)• As soon as you turn on a computer, its central processing

unit (CPU) begins to carry out the programming instructions contained in the basic input/output system (BIOS). − The BIOS, which is a type of firmware, contains the

processor dependent code that starts the computer regardless of the operating system installed.

• The first set of startup instructions is the power-on self test (POST). The POST is responsible for the following system and diagnostic functions:− Performs initial hardware checks, such as determining

the amount of memory present. − Verifies that the devices needed to start an operating

system, such as a hard disk, are present. − Retrieves system configuration settings from non-

volatile complementary metal-oxide semiconductor (CMOS) memory, which is located on the motherboard.

booting process …• Power on self-test (POST). • Find boot device and load boot record (handled by the

system BIOS). The master boot record (MBR) reads the partition table, determines the location of the boot record, and then jumps to that sector and begins execution there.

• Windows NT bootstrap routine finds and loads NTLDR.• NTLDR switches processor to 32-bit flat memory mode. • NTLDR reads the BOOT.INI and displays operating system

choices. • User selects an operating system (Windows NT in this

example). • NTLDR loads NTDETECT.COM. • NTDETECT.COM builds the hardware list. It then passes

the list and control back to NTLDR. • NTLDR loads NTOSKRNL.EXE. • NTOSKRNL.EXE loads and initializes Windows NT using

information from the Registry to load and initialize drivers and other system settings.