ECE3055 Computer Architecture and Operating Systems Lecture 10 Operating System Overview

Download Report

Transcript ECE3055 Computer Architecture and Operating Systems Lecture 10 Operating System Overview

ECE3055
Computer Architecture and
Operating Systems
Lecture 10 Operating System Overview
Prof. Hsien-Hsin Sean Lee
School of Electrical and Computer Engineering
Georgia Institute of Technology
H.-H. S. Lee
1
What is an Operating System?
 An intermediate program between a user of a
computer and the computer hardware (to hide messy
details)
 Goals:
 Execute user programs and make solving user problems
easier
 Make the computer system convenient and efficient to use
PwrPoint
SPIM
IE 6.1
Compiler
Editors
Shell
Operating System
System
Program
Instruction Set Architecture
Microarchitecture
Physical devices
2
Computer System Components
 Hardware
 Provides basic computing resources (CPU, memory, I/O)
 Operating System
 Controls and coordinates the use of the hardware among
various application programs for various users
 Application Programs
 Define the ways in which the system resources are used to
solve the computing problems of users (e.g. database
systems, 3D games, business applications)
 Users
 People, machines, other computers
3
Abstract View of System Components
User
1
gcc
User
2
User
3
User
N
firefox
emacs
mySQL
System and application programs
Operating System
Computer
Hardware
4
History of Operating Systems
 Vacuum Tubes and Plug boards (1945
– 55)
 Programmers sign up a time on the signup
sheep on the wall
 Transistors and batch system (1955 –
65)
 Mainframes, operated by professional staff
 Program with punch cards
 Time wasted while operators walk around
A job
5
History of Operating Systems
 ICs and Multiprogramming (1965 – 80)
 Multiple jobs in memory, overlap I/O
overhead with CPU
 IBM OS/360
 Timesharing
6
Time-sharing Systems (Interactive Computing)
 The CPU is multiplexed among several jobs that are kept in
memory and on disk (The CPU is allocated to a job only if the job
is in memory)
 A job swapped in and out of memory to the disk
 On-line communication between the user and the system is
provided

When the OS finishes the execution of one command, it seeks the
next “control statement” from the user’s keyboard
 On-line system must be available for users to access data and
code
 MIT MULTICS (MULtiplexed Information and Computing
Services)




Ken Thompson went to Bell Labs and wrote one for a PDP-7
Brian Kernighan jokingly dubbed it UNICS (UNIplexed ..)
Later spelled to UNIX and moved to PDP-11/20
IEEE POSIX to standardize UNIX
7
History of Operating Systems
 VLSI and PC (1980 – present)
 CP/M (Intel 8080 or Zilog’s Z80)
 Apple II (on 6502), competitor of CP/M
 People bought Z80 coprocessor to run CP/M on Apple II
 CP/M add-on cards were sold by a little company (of course,
back then) called Microsoft




DOS/MS-DOS (on 8086)
Apple Macintosh (on Motorola 68000), first GUI
X Window (Motif), GUI for Unix
MINIX (Tanenbaum) to Linux (Torvalds)
8
Operating System Concepts
 Process Management
 Main Memory Management
 File Management
 I/O System Management
 Secondary Management
 Networking
 Protection System
 Command-Interpreter System
9
Process Management
 A process is a program in execution
 A process contains
 Address space (e.g. read-only code, global data, heap, stack, etc)
 PC, $sp
 Opened file handles
 A process needs certain resources, including CPU time,
memory, files, and I/O devices
 The OS is responsible for the following activities for
process management
 Process creation and deletion
 Process suspension and resumption
 Provision of mechanisms for:
 process synchronization
 process communication
10
Process Management
A
B
D
E
C
F
 A process can create one or several child processes
 Inter process communication (IPC)
 Sometime it is needed to communicate between 2 processes
11
Process Management
Process
Process
A
B
Pipe
 Two processes connected by a pipe
12
Main-Memory Management
 Memory is a large array of words or bytes, each with its
own address

It is a repository of quickly accessible data shared by the CPU
and I/O devices
 Main memory is a volatile storage device. It loses its
contents in the case of system failure
 The OS is responsible for the following activities for
memory management
 Keep track of which parts of memory are currently being used
and by whom
 Decide which processes to load when memory space
becomes available
 Allocate and deallocate memory space as needed
13
File Management
 A file is a collection of related information defined by
its creator
 Commonly, files represent programs (both source and object
forms) and data
 The OS is responsible for the following activities for
file management





File creation and deletion
Directory creation and deletion
Support of primitives for manipulating files and directories
Mapping files onto secondary storage
File backup on stable (nonvolatile) storage media
 Each process has a file descriptor table (FDT) to keep
track of its open files
14
I/O System Management
 The I/O system consists of:
A buffer-caching system
A general device-driver interface
Drivers for specific hardware devices
15
Secondary-Storage Management
 Since main memory (primary storage) is volatile and
too small to accommodate all data and programs
permanently, the computer system must provide
secondary storage to back up main memory
 Most modern computer systems use disks as the
principle on-line storage medium, for both programs
and data
 The operating system is responsible for the following
activities in connection with disk management:
 Free space management
 Storage allocation
 Disk scheduling for multiple disk access requests
16
Networking (Distributed Systems)
 A distributed system is a collection of processors that
do not share memory or a clock
 Each processor has its own local memory
 The processors in the system are connected through
a communication network
 Communication takes place using a protocol
 A distributed system provides user access to various
system resources
 OS generalizes network access as file access
 Access to a shared resource allows:
 Computation speed-up
 Increased data availability
 Enhanced reliability
17
Protection System
 Protection refers to a mechanism for
controlling access by programs,
processes, or users to both system and
user resources
 The protection mechanism must:
 distinguish between authorized and
unauthorized usage (e.g. files, memory,
control registers)
 specify the controls to be imposed
 provide a means of enforcement
18
Command-Interpreter System
 Many commands are given to the
operating system by control statements
which deal with:







Process creation and management
I/O handling
Secondary-storage management
Main-memory management
File-system access
Protection
Networking
19
Shell
 A primary interface (not GUI) between a
user sitting at his terminal and the OS
 Not part of the OS
 When a user logs in, a shell is started
up
 Example:
ece101% cat file1 file2 file3 | sort > /dev/lp
20
Operating System Services
 Program execution – system capability to load a program
into memory and to run it
 I/O operations – since user programs cannot execute I/O
operations directly, the operating system must provide
some means to perform I/O
 File-system manipulation – program capability to read,
write, create, and delete files
 Communications – exchange of information between
processes executing either on the same computer or on
different systems tied together by a network.
Implemented via shared memory or message passing
 Error detection – ensure correct computing by detecting
errors in the CPU and memory hardware, in I/O devices,
or in user programs
21
Additional Operating System Functions
Additional functions exist not for helping the user,
but rather for ensuring efficient system operations
 Resource allocation – allocating resources to
multiple users or multiple jobs running at the same
time
 Accounting – keep track of and record which users
use how much and what kinds of computer
resources for account billing or for accumulating
usage statistics
 Protection – ensuring that all access to system
resources is controlled
22
System Calls
 When a user program needs a system service
 e.g. reading data from a file, change the working directory

count = read(file, buffer, nbytes)
 System calls provide the interface between a running
program and the OS




A special type of procedural call
Enter the kernel or other privileged OS components
Generally available as assembly-language instructions
Languages defined to replace assembly language for
systems programming allow system calls to be made
directly (e.g., C, C++)
23
System Calls
 Three general methods are used to pass parameters
between a running program and the operating system
 Pass parameters in registers
 Store the parameters in a table in memory, and the table
address is passed as a parameter in a register
 Push (store) the parameters onto the stack by the program,
and pop off the stack by operating system
24
Passing of Parameters as a Table
25
Types of System Calls
 Process management
 File management
 Device management
 Information maintenance
 Communications
26
System Calls
27
Example
A stripped-down shell
Geek’s window
%
cp hw1.pdf hw1_sol.pdf
28
MS-DOS Execution
At System Start-up
Running a Program
29
UNIX Running Multiple Programs
30
Communication Models
 Communication may take place using either
message passing or shared memory
Message Passing
Shared Memory
31
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
32
MS-DOS System 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
33
MS-DOS Layer Structure
34
System Components — Kernel
 Foundation for the executive and the subsystems.
 Never paged out of memory; execution is never
preempted.
 Four main responsibilities:
 thread scheduling
 interrupt and exception handling
 low-level processor synchronization
 recovery after a power failure
 Kernel is object-oriented, uses two sets of objects.
 dispatcher objects control dispatching and
synchronization (events, mutants, mutexes,
semaphores, threads and timers).
 control objects (asynchronous procedure calls,
interrupts, power notify, power status, process and
profile objects.)
35
UNIX System Structure
 UNIX – limited by hardware functionality, the
original UNIX operating system had limited
structuring. The UNIX OS consists of two
separable parts
 Systems programs
 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
36
UNIX System Structure
37
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
38
An Operating System Layer
39
OS/2 Layer Structure
40
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
 Only the microkernel contains processor-specific code
 More reliable (less code is running in kernel mode)
 More secure
 Detriments:
 Performance overhead of user space to kernel space
communication
41
Kernel Architecture
User
mode
Users
Kernel
mode
I/O and Device Management
Virtual Memory
Process Server
File server
Device drivers
Interprocess Communication
User
mode
Client Process
File System
Virtual Memory
Primitive Process Management
Kernel
mode
Microkernel
Hardware
Hardware
Layered Kernel
Microkernel
42
Mac OS X Structure
43
Windows NT Client-Server Structure
44
Windows XP Architecture
 Layered system of modules.
 Protected mode — HAL, kernel, executive.
 User mode — collection of subsystems
 Environmental subsystems emulate different operating
systems.
 Protection subsystems provide security functions.
45
Depiction of XP Architecture
46
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
47
Solaris Modular Approach
48
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
49
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
50
System Models
In User mode
In Monitor mode
Non-virtual Machine
Virtual Machine
51
Advantages/Disadvantages of Virtual Machines
 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
52
Java Virtual Machine
 Compiled Java programs are platform-neutral
bytecodes executed by a Java Virtual Machine (JVM)
 JVM consists of
 Class loader
 Class verifier
 Runtime interpreter
 Java runtime interpreter implementation
 A simple interpreter
 A Just-In-Time (JIT) compilers
 Turn bytecode into native code
 A hardware Java
 Picojava
53
The Java Virtual Machine
54
The Java Platform

Java Platform



A Java Virtual Machine (JVM)
Java API
Java Platform implemented on top of



Unix, Windows OS
Browser
Hardware
55
Java .class File on Cross Platforms
56
Java Development Environment
Class
loader
57
System Design 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
58
Mechanisms and Policies
 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
59
System Implementation
 Traditionally written in assembly language, operating
systems can now be written in higher-level languages
 Code written in a high-level language:
 Can be written faster
 Is more compact.
 Is easier to understand and debug
 An operating system is far easier to port (move to
some other hardware) if it is written in a high-level
language
60
System Design 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
61
System Generation (SYSGEN)
 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
62