COP 4600 Operating Systems

advertisement
COP 4600 Operating Systems
Euripides Montagne
University of Central Florida
(Spring 2010)
Outline
1. Course Organization
2. What is an Operating System?
Eurípides Montagne
University of Central Florida
2
COP 4600 Operating Systems
Who am I and where to find me?
Instructor: Euripides Montagne
Tele.: (407) 823-2684
email: eurip@eecs.ucf.edu
Office hours: T-TH from 10:00 a.m. to 11:30 a.m.
M-W from 2:00 p.m. to 4:00 p.m.
Eurípides Montagne
University of Central Florida
(HEC 217)
(HEC 217
3
COP 4600 Operating Systems
Course information
Lecture meetings: T-TH 7:30 p.m. – 8:45 p.m. (HEC 117 )
Web page:
http://www.cs.ucf.edu/courses/cop4600/spr2010/
Eurípides Montagne
University of Central Florida
4
COP 4600 Operating Systems
Course outline
Course Outcomes: I passing student will have an understanding the fundamental
concepts and algorithms used in the design of existing operating systems kernels, an
understanding of how operating system abstractions are implemented on conventional
hardware, an understanding of the main evaluation models used to evaluate a system,
and an understanding of the implementation of concurrent programming constructs
and the correct use of synchronization primitives such as semaphores and Monitors.
Course Topics: Operating systems structure. Process management.
Process scheduling. Memory Management. Virtual memory. I/O system.
File system. Performance Evaluation.
Eurípides Montagne
University of Central Florida
5
COP 4600 Systems Software
Prerequisites:
•COP 3503 – Computer Science II.
•COP 3402 – Systems Software
•COT 3960 - Foundation Exam.
•Proficiency in C and Familiarity with UNIX.
If you have not satisfied all of the above prerequisites,
you do not belong in this class and have little chance
of passing.
Eurípides Montagne
University of Central Florida
6
COP 4600 Operating Systems
Grading Policy:
(20%) Exam #1
(20%) Exam #2
(25%) Final Exam
(30%) Programming project.
(5%) Recitations
Each programming project will have a due date and points
will be subtracted for submission after that date ( up to 2
days late, 20 % off; more than two days late, you get “0”
for that program).
Eurípides Montagne
University of Central Florida
7
COP 4600 Operating Systems
Material:
Lecture notes: On website.
Principles of Computer Systems Design: An
Introduction.
Authors: Jerome Saltzer and Frans Kaasohoek.
Publisher: Morgan Kaufmann, 2009.
ISBN 978-0-12-374957-4
Eurípides Montagne
University of Central Florida
8
COP 4600 Operating Systems
Who is your TAs?
TA: Sean Szumlanski
E-mail: seansz@cs.ucf.edu
Office hours: TR 12:00 p.m. to 1:00 p.m. (HEC 303).
Eurípides Montagne
University of Central Florida
9
COP 4600 Operating Systems
Lecture 1: Operating System Services
What is an Operating System?
An operating system is an event driven program which
acts as an interface between a user of a computer, and the
computer hardware.
What are the main purposes of an operating system?
1. Transform a bare machine into an environment or virtual
machine in which a user may execute programs.
2. To use the computer hardware in an efficient way.
3. To create a friendly interface between the user and bare
machine.
User
Operating System
Bare Machine
To create such an
environment the
operating system
provides certain
services to programs
and to the users of
those programs. Some
of these services are:
Program execution:
Error handling:
Job sequencing:
Input/Output operations:
Interrupt handling:
File system manipulation:
Scheduling:
Resource Allocation:
Accounting of computer resources:
Protection:
 Program execution: Users are interested in executing
programs. The system must be able to load a program into
memory and run it. The program must be able to end its
execution, either normally or abnormally.
 Error handling: For each type of error, the operating system
should take the appropriate action to assure correct ant
consistent computing.
Example:
Power failure in the CPU or memory.
Parity error on tape.
Printer out of paper.
Arithmetic overflow.
Access illegal memory location.
 Job sequencing: The system must determine the sequence in
which jobs should be processed. In the first operating systems
to transfer control from one Job to the next, a Job Control
language interpreter(a command interpreter) had to be used.
Example:
$JOB
$COMPILE "Fortran“
Program
$LOAD & RUN
Data
$EOJ

Input/Output operations: Since a user program
cannot execute I/O operations directly, the O.S. must
provide some means to do so.
Example:
Rewind tape drive
Start I/O
Skip first record

Interrupt handling: Operating systems are event
driven programs. If there are no programs to execute, no
I/O devices to service, and no user to respond to, an O.S.
will sit quietly, waiting for something to happen. Events
are almost always signaled by the occurrence of an
interrupt or trap.
When an interrupt occurs, the hardware transfers control
to the O.S., it determines which type of interrupt has
occurred, and takes the appropriate actions.
Types of interrupts: 1) Software interrupts
2) Hardware interrupts
 Software interrupts: They are generated within the CPU.
1. System calls(also known as SuperVisor Calls-SVC)
2. Traps(i.e. to handle program errors)
 Hardware interrupts: These are signals sent to the cpu by
devices to indicate that an I/O operation is completed.
1.
I/O interrupts
Timer interrupt: Every time the O.S. assigns the CPU to a
program, the timer register is set to a value, say 100 ms, and at
each clock tick the register is decremented by one. When the
timer register reaches the value zero, an interrupt is generated,
and the O.S. takes control of the computer system again, avoiding
thus, that none program monopolizes the CPU.
 File system manipulation: Users will want to be able to
create, delete, read, or write files.
Scheduling: The system has to decide when to introduce
new processes into the system and the order in which
processes should run.
 Resource Allocation: When there are multiple process
running concurrently, resources must be allocated to each
one of them.
Example:
A compiler.
A tape unit.
Memory.
Accounting of computer resources: The operating system must
keep track of the type and amount of resources used by each
user. This information can be used for the purpose of paying for
the use of the system or for accumulating usage statistics.
Protection: When several processes are being executed
concurrently to increase CPU utilization, it should not be
possible for one process to interfere the others.
Operating system characteristics
Concurrency:
Sharing:
Long term storage:
Determinacy
Non-determinacy:
Concurrency:
The existence of several simultaneous or parallel activities: for
example, overlapping I/O operations and computation.
INPUT DEVICE
CPU
OUTPUT DEVICE
| Data 1 | Data 2 | Data 3 |
| Data 1 | Data 2 | Data 3|
| Data 1 | Data 2 | Data 3|
 Sharing:
The existence of several processes accessing the same data
area or device. For example, sharing a compiler or a disk unit.
 Long term storage:
Programs and data can be stored for long periods of time.

Determinacy
The same program running with the same data should produce the
same results.

Non-determinacy:
The operating system must respond to events, which will occur in
an unpredictable order but it must preserve the consistency of the
whole system. If we have two processes, say P1 and P2, running
concurrently, and P1 produces the events E1, E2, E3 and P2
produces the events E3, E4, E5. These six events might occur in
different orders, such as E1,E2, E4, E3, E5,E6 or E3, E1, E4, E2,
E3, E5 and the OS will keep all the system in a coherent way.
Operating systems types
Mainframe operating systems

Server operating systems

Multiprocessor operating systems

Network Operating Systems

Distributed Operating Systems

Web operating systems (meta-computing)

Personal computer operating systems

Real time operating systems

Embedded operating systems

Smart card operating systems
COP 4600 Operating Systems
Next class we will talk about
The Interrupt mechanism
Download