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