14
CGS 3763 Operating Systems Concepts Spring 2013 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 11:30 - 12:30 AM

CGS 3763 Operating Systems Concepts Spring 2013

  • Upload
    ivan

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

CGS 3763 Operating Systems Concepts Spring 2013. Dan C. Marinescu Office: HEC 304 Office hours: M- Wd 11:30 - 12:30 A M. Last time: Threads Today: Pthreads Java threads CPU scheduling Next time CPU Scheduling Reading assignments - PowerPoint PPT Presentation

Citation preview

Page 1: CGS 3763 Operating Systems Concepts                         Spring 2013

CGS 3763 Operating Systems Concepts Spring 2013

Dan C. MarinescuOffice: HEC 304Office hours: M-Wd 11:30 - 12:30 AM

Page 2: CGS 3763 Operating Systems Concepts                         Spring 2013

Last time: Threads

Today: Pthreads Java threads CPU scheduling

Next time CPU Scheduling

Reading assignments Chapters 4 and 5 of the textbook

Lecture 19 – Wednesday, February 20, 2013

2Lecture 19

Page 3: CGS 3763 Operating Systems Concepts                         Spring 2013

Pthreads POSIX (Portable Operating System Interface) - a family

of standards specified by the IEEE for maintaining compatibility between operating systems.

Pthreads – POSIX standard defining an API for thread creation and synchronization.

A tutorial on Pthreads at https://computing.llnl.gov/tutorials/pthreads/#Pthread

Lecture 19 3

Page 4: CGS 3763 Operating Systems Concepts                         Spring 2013

Pthreads Threads use and exist within these process resources, yet are able

to be scheduled by the operating system and run as independent entities largely because they duplicate only the bare essential resources that enable them to exist as executable code.

This independent flow of control is accomplished because a thread maintains its own: Stack pointer Registers Scheduling properties (such as policy or priority) Set of pending and blocked signals Thread specific data.

Lecture 19 4

Page 5: CGS 3763 Operating Systems Concepts                         Spring 2013

Lecture 19 5

UNIX PROCESS THREADS WITHIN A UNIX PROCESS

Page 6: CGS 3763 Operating Systems Concepts                         Spring 2013

Lecture 19 6

Timing results for: (1) the fork()  subroutine; (2) the pthread_create()  subroutine. Timings in seconds reflect 50,000 process/thread creations.Don't expect the system and user times to add up to real time, because these are SMP systems with multiple CPUs working on the problem at the same time.

Page 7: CGS 3763 Operating Systems Concepts                         Spring 2013

Pthreads API Thread management: Routines that work directly on threads -

creating, detaching, joining, etc. They also include functions to set/query thread attributes (joinable, scheduling etc.)

Mutexes: Routines that deal with synchronization, called a "mutex", which is an abbreviation for "mutual exclusion". Mutex functions provide for creating, destroying, locking and unlocking mutexes. These are supplemented by mutex attribute functions that set or modify attributes associated with mutexes.

Condition variables: Routines that address communications between threads that share a mutex. Based upon programmer specified conditions. This group includes functions to create, destroy, wait and signal based upon specified variable values. Functions to set/query condition variable attributes are also included.

Synchronization: Routines that manage read/write locks and barriers.

Lecture 19 7

Page 8: CGS 3763 Operating Systems Concepts                         Spring 2013

Java threads Threads a fundamental programming model in Java. Managed by JVM (Java Virtual Machine). The method we use in the next example is to implement Runnable

interface public interface Runnable { public abstract void run(); } When a class implements a Runnable interface it must define a

run() method. The code running when the run() method is invoked runs as a separate thread.

Two methods: Start() start a thread Join() block the calling thread until a thread terminates

Lecture 19 8

Page 9: CGS 3763 Operating Systems Concepts                         Spring 2013

Example: Java program for summation of positive integers from 1 to upper. The Summation class implements the Runnable interface. Creation of a thread object create an instance of a Thread class pass the constructor a Runnable object The actual thread creation use the start() method to

Allocate the memory and initialize the new thread Call the run() method to make the thread eligible to run under JVM (Java

Virtual Machine) When the summation program runs two threads are created:

The parent thread it starts the execution in the main() method. The child thread created by the start() method

it begins execution in the run() method of the Summation class. it terminates after outputting the result and exits from its run() method.

Lecture 19 9

Page 10: CGS 3763 Operating Systems Concepts                         Spring 2013

Lecture 19 10

Page 11: CGS 3763 Operating Systems Concepts                         Spring 2013

CPU scheduling CPU scheduling – the “Running” process either relinquishes the

control of the CPU by itself or it is forced by the scheduler to do so. Then the scheduler selects a process from those in the ``Ready’’ queue and gives it the control of the CPU and Non-preemptive scheduling the ``Running’’ process decides by

itself to1.switch from ``Running’’ to ``Waiting’’ or the ``Ready’’ state.2.Terminates execution

Preemptive scheduling the ``Running’’ process is forced to relinquish the control of the CPU by the scheduler.

CPU burst the period of time a process is in control of the CPU. I/O burst the period of time a process is in a “Waiting” state.

Lecture 19 11

Page 12: CGS 3763 Operating Systems Concepts                         Spring 2013

Metrics and objectives of scheduling policies Two types of systems

Batch processing of jobs Interactive, e.g., transaction processing systems

The metrics Utilization ratio of useful time versus total time Throughput number of transactions or jobs per unit of time Turn around time the time it takes to complete a job Response time the time to get a response at a request Waiting time the time a job or a transaction has to wait before

being processed The objectives

Maximize: CPU utilization and Throughput Minimize: Turn around time, Response time, Waiting time

The objectives can be contradictory!!

Lecture 19 12

Page 13: CGS 3763 Operating Systems Concepts                         Spring 2013

Histogram of the CPU burst time

Lecture 19 13

Page 14: CGS 3763 Operating Systems Concepts                         Spring 2013

Typical alternations of CPU and I/O bursts

Lecture 19 14