CS345 02 - Computer Systems
Download
Report
Transcript CS345 02 - Computer Systems
Event-driven programming
Event-driven programming is a programming paradigm
in which the flow of the program is determined by
Application has a main loop
sensor outputs,
user actions (mouse clicks, key presses), or
messages from other programs or threads.
interrupts
Event selection (scheduler).
Event handling (dispatcher).
Events are external to a task
Signals are asynchronous events
Occur anytime, handled by call-back functions
Semaphores are synchronous events.
BYU CS 345
Occur anytime, handled by semaphores
Chapter 2: OS Overview
1
Project 1 File Summary…
Files needing attention:
os345tasks.c – createTask, sysKillTask
os345interrupts.c – keyboard_isr
os345signals.c – signals, sigAction, sigSignal,
defaultSigxxHandler, createTaskSigHandlers
os345p1.c – P1_shellTask, P1_help …
os345.h – your equates
Signal Event Handlers
int signals(void);
int sigAction(void (*sigHandler)(void), int sig);
int sigSignal(int taskId, int sig);
void defaultSigxxxHandler(void);
void createTaskSigHandlers(int tid)
BYU CS 345
Chapter 2: OS Overview
2
1.4 Signals
A signal is an asynchronous notification of an event that is sent to a
process before it is rescheduled for execution.
Blocked processes are not un-blocked by a signal, but rather the
signal remains pending until such time as the process is un-blocked
and scheduled for execution.
4. Before a task is scheduled by the function dispatcher (os345.c),
the function signals (os345signals.c) is called:
Modify the function signals (os345signals.c) to call all pending task signal handlers.
Modify the function createTaskSigHandlers (os345signals.c) such that a child task
inherits all its parent signal handlers.
Modify the function sigAction (os345signals.c) to register new task signal handlers.
Add default signal handlers as needed.
Implement all signals and signal handlers such that:
Cntrl-X terminates (kills) all tasks except task 0 (shell).
Cntrl-W pauses the execution of all tasks.
Cntrl-R continues the execution of all tasks after a pause.
BYU CS 345
Chapter 2: OS Overview
3
Signals
1.4 Signals Example
Dispatcher calls signal handlers before rescheduling task:
void mySIGINTHandler(void)
{ sigSignal(-1, SIGTERM);
return;
}
keyboard_isr() detects a cntrl-X and
sends a SIGINT signal to the shell:
Task registers call-back signal handler
functions with the OS:
sigSignal(0, SIGINT);
sigAction(mySIGINTHandler, SIGINT);
sigAction(mySIGTERMHandler, SIGTERM);
dispatch()
createTask()
New
void mySIGTERMHandler(void)
{ killTask(curTask);
return;
}
Ready
sysKillTask()
Running
Exit
SWAP
createTask calls createTaskSigHandlers() to setup
default / parent signal handlers:
{
void createTaskSigHandlers(int tid)
tcb[tid].sigIntHandler = defaultSigIntHandler;
tcb[tid].sigTermHandler = defaultSigTermHandler;
return;
}
BYU CS 345
Chapter 2: OS Overview
4
Signals
Signal Handling
BYU CS 345
Chapter 2: OS Overview
5
Keyboard Interrupts
Keyboard
Input
Action
Cntrl-X
sigSignal SIGINT to shell
Clear input buffer
semSignal inBufferReady
sigSignal SIGCONT to all tasks
Clear SIGSTOP from all tasks
Clear SIGTSTP from all tasks
sigSignal SIGTSTP to all tasks
Cntrl-R
Cntrl-W
BYU CS 345
Chapter 2: OS Overview
6
Project 1 Signals Quiz
1. What is a signal?
2. Who can signal?
3. When is a signal acknowledged?
4. How are signals delivered to a process?
5. What operations are illegal within a signal handler?
6. How are parameters passed to a signal?
7. What signals might a process not handle?
8. How many signals might a system support?
BYU CS 345
Chapter 2: OS Overview
7
$ kill –l
1) SIGHUP
5) SIGTRAP
9) SIGKILL
13) SIGPIPE
17) SIGCHLD
21) SIGTTIN
25) SIGXFSZ
29) SIGIO
35) SIGRTMIN+1
39) SIGRTMIN+5
43) SIGRTMIN+9
47) SIGRTMIN+13
51) SIGRTMAX-13
55) SIGRTMAX-9
59) SIGRTMAX-5
63) SIGRTMAX-1
BYU CS 345
2) SIGINT
6) SIGABRT
10) SIGUSR1
14) SIGALRM
18) SIGCONT
22) SIGTTOU
26) SIGVTALRM
30) SIGPWR
36) SIGRTMIN+2
40) SIGRTMIN+6
44) SIGRTMIN+10
48) SIGRTMIN+14
52) SIGRTMAX-12
56) SIGRTMAX-8
60) SIGRTMAX-4
64) SIGRTMAX
3) SIGQUIT
7) SIGBUS
11) SIGSEGV
15) SIGTERM
19) SIGSTOP
23) SIGURG
27) SIGPROF
31) SIGSYS
37) SIGRTMIN+3
41) SIGRTMIN+7
45) SIGRTMIN+11
49) SIGRTMIN+15
53) SIGRTMAX-11
57) SIGRTMAX-7
61) SIGRTMAX-3
Chapter 2: OS Overview
4) SIGILL
8) SIGFPE
12) SIGUSR2
16) SIGSTKFLT
20) SIGTSTP
24) SIGXCPU
28) SIGWINCH
34) SIGRTMIN
38) SIGRTMIN+4
42) SIGRTMIN+8
46) SIGRTMIN+12
50) SIGRTMAX-14
54) SIGRTMAX-10
58) SIGRTMAX-6
62) SIGRTMAX-2
8
CS 345
Stalling’s Chapter
#
Project
1: Computer System Overview
2: Operating System Overview
4
P1: Shell
3: Process Description and Control
4: Threads
4
P2: Tasking
5: Concurrency: ME and Synchronization
6: Concurrency: Deadlock and Starvation
6
P3: Jurassic Park
7: Memory Management
8: Virtual memory
6
P4: Virtual Memory
9: Uniprocessor Scheduling
10: Multiprocessor and Real-Time Scheduling
6
P5: Scheduling
11: I/O Management and Disk Scheduling
12: File Management
8
P6: FAT
Student Presentations
6
BYU CS 345
Chapter 2: OS Overview
9
CS 345
Computer System Overview
Chapter 2
Chapter 2 Learning Objectives
Summarize, at a top level, the key functions of an operating system.
Discuss the evolution of operating systems from early simple batch
systems to modern complex systems.
Give a brief explanation of each of the major achievements in OS
research.
Discuss the key design areas that have been instrumental in the
development of modern operating systems.
Define and discuss virtual machines and virtualization.
Understand the OS design issues raised by the introduction of
multiprocessor and multicore organization.
Understand the basic structure of Windows 7.
Describe the essential elements of a traditional UNIX system.
Explain the new features found in modern UNIX systems.
Discuss Linux and its relationship to UNIX.
BYU CS 345
Chapter 2: OS Overview
11
Evolution
Evolution of Operating Systems
Early Systems (1950)
Simple Batch Systems (1960)
Multiprogrammed Batch Systems (1970)
Time-Sharing and Real-Time Systems (1970)
Personal/Desktop Computers (1980)
Multiprocessor Systems (1980)
Networked/Distributed Systems (1980)
Web-based Systems (1990)
Virtualization …
https://www.cs.rutgers.edu/~pxk/416/notes/01-intro.html
1st generation 1945 – 1955
- vacuum tubes, plug boards
2nd generation 1955 – 1965
- transistors, batch systems
3rd generation 1965 – 1980
- ICs and multiprogramming
4th generation 1980 –
- personal computers
5th
present
generation - ???
- ubiquitousness, mobile,
BYU CS 345
Chapter 2: OS Overview
12
Chapter 2 Reading Quiz
1. What are the objectives of an OS?
2. What services does an OS provide?
3. What computer resources need management?
4. What hardware advancements facilitated OS
development?
5. What is JCL?
6. What does SPOOLing stand for?
7. What is a Virtual Machine? Why Virtualize?
8. What differentiates Windows 7, UNIX, and Linux?
BYU CS 345
Chapter 2: OS Overview
13
Objectives
1. What are the Objectives of an OS?
Convenience
Efficiency
Make the computer more convenient to use
Efficient use of computer system resources
Accessibility
Uniformity
Ability to evolve
Permit effective development, testing, and introduction
of new system functions without interfering with
service
BYU CS 345
Chapter 2: OS Overview
14
Services
2. What Services does an OS provide?
Program development
Program execution
Protection, authorization, resolve conflicts
Error detection and response
Authorization, sharing, caching
System access
Uniform interface, hides details
Operating systems are
among the most complex
pieces of software ever
developed...
Controlled access to files
Initialization, scheduling
Access to I/O devices
Editors, debuggers, frameworks
Hardware errors: memory error or device failure
Software errors: arithmetic errors, access forbidden memory locations errors
Accounting
Collect statistics (billing), monitor performance (future enhancements)
BYU CS 345
Chapter 2: OS Overview
15
Resource Management
3. What Resources need management?
Memory
Peripherals
Computer programs
Cache
Virtual
Secondary
User programs
Shared libraries
Concurrency / Synchronization
CPU cores
BYU CS 345
Chapter 2: OS Overview
16
Hardware Advancements
4. What H/W Advancements?
Memory protection (1960’s)
Privileged instructions
do not allow the memory area containing the monitor
to be altered by a user program.
can be executed only by the resident monitor.
A trap occurs if a program tries these instructions.
Interrupts (1956)
provide flexibility for relinquishing control to and
regaining control from user programs.
Timer interrupts prevent a job from monopolizing the
system.
BYU CS 345
Chapter 2: OS Overview
17
Early Systems
Characteristics of Early Systems
Early software: Assemblers, Libraries of
common subroutines (I/O, Floating-point),
Device Drivers, Compilers, Linkers.
Need significant amount of setup time.
Extremely slow I/O devices.
Very low CPU utilization.
But computer was very secure.
BYU CS 345
Chapter 2: OS Overview
18
Early Systems
Early Systems
Structure
Single user system.
Programmer/User as operator (Open Shop).
Large machines run from console.
Paper Tape or Punched cards.
BYU CS 345
Chapter 2: OS Overview
19
Early Systems
Early Computer System
BYU CS 345
Chapter 2: OS Overview
20
Hardware Advancements
Offline Operation
Problem:
Card Reader slow, Printer slow (compared to Tape).
I/O and CPU could not overlap.
Solution: Offline Operation (Satellite Computers)
Speed up computation by loading jobs into memory
from tapes while card reading and line printing is
done off-line using smaller machines.
BYU CS 345
Chapter 2: OS Overview
21
Batch Systems
Simple Batch Systems
Use of high-level languages, magnetic tapes.
Jobs are batched together by type of languages.
An operator was hired to perform the repetitive
tasks of loading jobs, starting the computer, and
collecting the output (Operator-driven Shop).
It was not feasible for users
to inspect memory or patch
programs directly.
BYU CS 345
Chapter 2: OS Overview
22
Batch Systems
5. What is JCL?
Job Control language is the
language that provides
instructions to the monitor:
what compiler to use
what data to use
Example of job format: ------->>
$FTN loads the compiler and
transfers control to it.
$LOAD loads the object code (in
place of compiler).
$RUN transfers control to user
program.
BYU CS 345
Chapter 2: OS Overview
$JOB
$FTN
...
FORTRAN
program
...
$LOAD
$RUN
...
Data
...
$END
23
Batch Systems
Operator-driven Shop
BYU CS 345
Chapter 2: OS Overview
24
Batch Systems
Simple Batch Systems
The user submits a job (written on cards or tape) to a computer
operator.
The computer operator place a batch of several jobs on an input
device.
A special program called the monitor, manages the execution of each
program in the batch.
“Resident monitor” is always in main memory and available for execution.
Monitor utilities are loaded when needed.
Reduce setup time by batching similar jobs.
Alternate execution between user program and the monitor program.
Use Automatic Job Sequencing – automatically transfer control from one job when
it finishes to another one.
Rely on available hardware to effectively alternate execution from
various parts of memory.
BYU CS 345
Chapter 2: OS Overview
25
Batch Systems
Control Cards
• Special cards that tell the monitor which programs to run:
$JOB
$FTN
$RUN
$DATA
$END
• Special characters distinguish control cards from data or
program cards:
$ in column 1
// in column 1 and 2
709 in column1
BYU CS 345
Chapter 2: OS Overview
26
Batch Systems
Card Deck of a Job
BYU CS 345
Chapter 2: OS Overview
27
Uniprogramming
Uniprogramming
I/O operations are exceedingly slow
(compared to instruction execution).
A program containing even a very small
number of I/O operations, will spend most of
its time waiting for them.
Hence: poor CPU usage when only one
program is present in memory.
BYU CS 345
Chapter 2: OS Overview
28
Multiprogramming
Batch Multiprogramming
Several jobs are kept in main memory at the same time,
and the CPU is multiplexed among them.
BYU CS 345
Chapter 2: OS Overview
29
Multiprogramming
Concurrent Multiprogramming
Allows the processor to execute another program while
one program must wait for an I/O device.
BYU CS 345
Chapter 2: OS Overview
30
Multiprogramming
Why Multiprogramming?
Single user cannot keep CPU and I/O devices busy at
all times.
Multiprogramming organizes jobs (code and data) so
CPU always has one to execute.
A subset of total jobs in system is kept in memory.
One job selected and run via job scheduling.
When it has to wait, OS switches to another job.
BYU CS 345
Chapter 2: OS Overview
31
Multiprogramming
Multiprogramming Requirements
Hardware support:
I/O interrupts and DMA controllers
Timer interrupts for CPU to gain control.
Memory management
in order to execute instructions while I/O device is busy.
several ready-to-run jobs must be kept in memory.
Memory protection (data and programs).
Software support from the OS:
For scheduling (which program is to be run next).
To manage resource contention.
BYU CS 345
Chapter 2: OS Overview
32
Multiprocessing
Multi (processor/core)
Traditionally, the computer has been viewed as a sequential
machine.
Multiple control signals
Pipelining
Parallelism
Symmetric Multiprocessors (SMP)
Multicore Computers
2 or more identical processors that share resources
Integrated OS to control jobs, tasks, files, data elements…
High degree of interaction/cooperation between processes
Single piece of silicon (die)
Independent processors + levels of cache
Intel Core i7
Prefetching
Cluster computing
BYU CS 345
Loosely coupled - network
Client / server environment
Middleware
DME, RPC
Chapter 2: OS Overview
33
Spooling
6. What does Spool stand for?
Problem:
Card reader, Line printer and Tape drives slow
I/O and CPU could not overlap.
Solution: Spooling
Overlap I/O of one job with the computation of another job (using
double buffering, DMA, etc).
Technique is called SPOOLing: Simultaneous Peripheral
Operation On Line.
BYU CS 345
Chapter 2: OS Overview
34
Virtual Machine
7. What is a Virtual Machine?
Virtualization technology enables a single PC or server to
simultaneously run multiple operating systems on a single
platform.
The host OS can support many virtual machines, each
with characteristics of a particular OS.
BYU CS 345
Chapter 2: OS Overview
35
Windows 7
8. Windows 7, Unix, Linux?
BYU CS 345
Chapter 2: OS Overview
36
System Architecture
Modern OS Architecture
BYU CS 345
Chapter 2: OS Overview
37
Desktop Market Share
BYU CS 345
Chapter 2: OS Overview
38
Desktop Market Share
BYU CS 345
Chapter 2: OS Overview
39
BYU CS 345
Chapter 2: OS Overview
40