Download CS307-slides02

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

OS/2 wikipedia , lookup

Process management (computing) wikipedia , lookup

Library (computing) wikipedia , lookup

DNIX wikipedia , lookup

Berkeley Software Distribution wikipedia , lookup

Burroughs MCP wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

RSTS/E wikipedia , lookup

System 7 wikipedia , lookup

Mobile operating system wikipedia , lookup

Copland (operating system) wikipedia , lookup

Spring (operating system) wikipedia , lookup

VS/9 wikipedia , lookup

Distributed operating system wikipedia , lookup

Security-focused operating system wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Transcript
CS307 Operating Systems
Operating-System Structures
Fan Wu
Department of Computer Science and Engineering
Shanghai Jiao Tong University
Spring 2012
A View of Operating System Services
Operating systems provide an environment for execution of
programs and services to programs and users
Operating Systems
2
Bourne Shell Command Interpreter
Operating Systems
5
First GUI (1973)
The first appeared
on the Xerox Alto
computer in 1973.
Operating Systems
6
Mac OS System 1.0 (1984)
Operating Systems
7
Amiga Workbench 1.0 (1985)
The first GUI with color graphics.
Operating Systems
8
Windows 1.0x (1985)
Operating Systems
9
IRIX 3 (released in 1986, first release 1984)
Operating Systems
10
NeXTSTEP / OPENSTEP 1.0 (1989)
Operating Systems
11
Windows 95 (1995)
Operating Systems
12
KDE 1.0 (1998)
Operating Systems
13
GNOME 1.0 (1999)
Operating Systems
14
Windows XP (released in 2001)
Operating Systems
15
Windows Vista (released in 2007)
Operating Systems
16
Mac OS X Leopard (released in 2007)
Operating Systems
17
KDE (v4.0 Jan. 2009, v4.2 Mar. 2009)
Operating Systems
18
A View of Operating System Services
Operating Systems
19
System Call
 Programming interface to the services provided by the OS
 Typically written in a high-level language (C or C++)
 Example: System call sequence to copy the contents of one file to another
file
Operating Systems
20
API
 Mostly accessed by programs via a high-level Application Program
Interface (API) rather than direct system call use
 Three most common APIs

Win32 API for Windows
 POSIX API for POSIX-based systems (UNIX, Linux, and Mac OS X)
 Java API for the Java virtual machine (JVM)
 Why use APIs rather than system calls?

Program portability
 System calls are often more detailed and difficult to work with than the
API
Operating Systems
21
Example of Standard API

Consider the ReadFile() function in the

Win32 API—a function for reading from a file

A description of the parameters passed to ReadFile()

HANDLE file—the file to be read

LPVOID buffer—a buffer where the data will be read into and written from

DWORD bytesToRead—the number of bytes to be read into the buffer

LPDWORD bytesRead—the number of bytes read during the last read

LPOVERLAPPED ovl—indicates if overlapped I/O is being used
Operating Systems
22
API – System Call – OS Relationship
Operating Systems
24
Standard C Library Example
 C program invoking printf() library call, which calls write() system call
Operating Systems
25
Examples of Windows and Unix System Calls
Operating Systems
30
A View of Operating System Services
Operating Systems
31
Operating System Services

Operating-system services:

User interface - Almost all operating systems have a user interface (UI).

Graphics User Interface (GUI), Command-Line (CLI), Batch

Program execution - The system must be able to load a program into memory
and to run that program, end execution, either normally or abnormally (indicating
error)

I/O operations - A running program may require I/O, which may involve a file or
an I/O device

File-system manipulation - Programs need to read and write files and
directories, create and delete them, search them, list file Information, permission
management.
Operating Systems
32
Operating System Services (Cont.)

Communications – Processes may exchange information, on the same
computer or between computers over a network


Communications may be via shared memory or through message
passing (packets moved by the OS)
Error detection – OS needs to be constantly aware of possible errors

May occur in the CPU and memory hardware, in I/O devices, in user
program

For each type of error, OS should take the appropriate action to
ensure correct and consistent computing

Debugging facilities can greatly enhance the user’s and
programmer’s abilities to efficiently use the system
Operating Systems
33
Operating System Services (Cont.)

Resource allocation - When multiple users or multiple jobs
running concurrently, resources must be allocated to each of
them

Accounting - To keep track of which users use how much and
what kinds of computer resources

Protection and security - The owners of information stored in a
multiuser or networked computer system may want to control
use of that information, concurrent processes should not
interfere with each other
 Protection involves ensuring that all access to system
resources is controlled
 Security of the system from outsiders requires user
authentication, extends to defending external I/O devices
from invalid access attempts
Operating Systems
34
CS307 Operating Systems
Operating-System Structure
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
Operating Systems
41
Traditional UNIX System Structure
Operating Systems
43
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
 The main advantage of the layered approach is simplicity of
construction and debugging
Operating Systems
44
Microkernel System Structure
 Moves as much from the kernel into “user” space
 Communication takes place between user modules
using message passing
 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
Operating Systems
45
Mac OS X Structure
(Darwin)
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 flexibility
 Like microkernel but more efficient
Solaris Modular Approach
Operating Systems
46
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 host creates the illusion that a process has its
own processor and (virtual memory).
 Each guest is provided with a (virtual) copy of underlying computer.
Operating Systems
47
Virtual Machines (Cont.)
(a) Nonvirtual machine
Operating Systems
(b) virtual machine
48
Architecture
Operating Systems
49
Benefits of Virtualization
Before Virtualization
After Virtualization
• Multiple OSs on a single machine
• Hardware-independence of operating
system and applications
• Better utilization of resources
• Encapsulating OS and application into
virtual machines
• Single OS image per machine
• Software and hardware tightly coupled
• Underutilized resources
• Inflexible and costly infrastructure
Operating Systems
50
Virtual Infrastructure for Data Center
Operating Systems
51
Amazon Elastic Compute Cloud (EC2)
Operating Systems
54
The Java Virtual Machine
Operating Systems
55
Homework
 Reading

Chapter 2: Operating-System Structures
Operating Systems
56