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