Overview of Time Related Data Structures and Functions in Unix/C. It s About Time

Size: px
Start display at page:

Download "Overview of Time Related Data Structures and Functions in Unix/C. It s About Time"

Transcription

1 Overview of Time Related Data Structures and Functions in Unix/C It s About Time 1. time_t Same as an unsigned long. Time in seconds since Midnight GMT Jan 1, a. char * ctime(time_t x) will return a string showing the current date and time. The string ends in a newline which you may want to get rid of. Also ctime_r. b. time_t time(time_t * x) will return the elapsed time in seconds since the EPOCH. c. time_t mktime(struct tm * brokendowntime) converts struct tm to time_t. d. struct tm * localtime(time_t * x) converts time_t to struct tm. Also localtime_r e. struct tm * gmtime(time_t *x) converts time_t to Grenwich England struct tm. Also gmtime_r; time_t is also used in struct timeval, struct itimerval, struct stat where it is used to represent the last accessed, modified and property change times, struct utmp where it is used to represent login, logout and system boot times. 2. struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* microseconds */ Used when requiring a more precise time. Both values are unsigned long ints. The first is an EPOCH time. The second figure is in millionths of a second, however the clock that generated the value may not be that precise. Used in gettimeofday, settimeofday which access the system clock. settimeofday can only be run if you are root. There is no need for a function to convert a timeval to a time_t or the reverse. You just use the field tv_sec directly. 3. struct tm { int tm_sec; /* seconds */ int tm_min; /* minutes */

2 int tm_hour; /* hours */ int tm_mday; /* day of the month */ int tm_mon; /* month */ int tm_year; /* year */ int tm_wday; /* day of the week */ int tm_yday; /* day in the year */ int tm_isdst; /* daylight saving time */ This is know as broken down time because it is broken up into separate fields. The advantage of this format is that it corresponds to how human beings think of time. We can set, add or subtracts days, years, hours or minutes. Months are numbered Month 12 would be January of next year. Days are numbered 1 to 31 the 0 th day would be the last day of the previous month. The zeroth year is To store the year 2011 in the year field, subtract a) size_t strftime(char * result, size_t maxsize, char *format, struct tm * brokendt) - changes broken down time to a string, as specified by a date format. Returns the length of the returned string, 0 if the function fails. b) char * strptime(char * s, char * format, struct tm * brokendowntime) - scans a string and converts it to broken down time using a specified format. The return value points to the first character not processed by the function. c) see also time_t 4. char * timestring Time can be formated into a string using the function strftime( void *buffer,size_t n,char * fmt, struct tm * brokendowntime). The formats are the same as those used by the Unix date command. See man date for a full list. eg: strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M", &tm); If we know the format that a string was written with we can also convert a string into a broken down time using strptime(void *buffer,char *format, struct time * brokendowntime). This is useful when interpretting data from a form or when reading a file where the date has been reliably formatted by another program. If we wish to convert a time_t or a struct timeval value to a string we either use ctime or convert first to broken down time (struct tm). To go from a string to time_t there is no direct

3 route we need to go through another functions that use struct tm. 5. clock_t Measured in Jiffies. A Jiffy is one tick of the system clock. The number of jiffies per second is returned by the following system call: sysconf(clocks_per_sec). Jiffies are used to time processes. System clocks can run a different rates, depending on the machine. You can buy an add on card for your system that will give faster rates and a more precise time. a. clock_t clock() - returns number of clock ticks since the start of the process b. see also struct tms 6. struct tms { clock_t tms_utime; /* user time */ clock_t tms_stime; /* system time */ clock_t tms_cutime; /* user time of children */ clock_t tms_cstime; /* system time of children */ This is used with the Unix/C kernel function times(struct tms * buf). It s used to measure the elapsed execution time for a process. It s divided into 4 fields. The first 2 are for the current process, the second two are for any child processes spawned by your program. When you run the system or popen function you are starting a child process. Another way to do this is by using the fork() function which we will cover later. times measures CPU time. Time spent in the kernel is called stime or system time. Time executing outside the kernel is called utime or user time. To obtain the number of seconds of cpu time, take either the stime or the utime and divide by the # of jiffies per second. struct tms t; times(&t); usertime= ((double)t.utime)/sysconf(clocks_per_sec); Casting the utime to double is necessary otherwise you don t measure time that is less than 1 second.

4 User time is eaten up by normal calculation, manipulating strings, moving data around in arrays. System time is eaten up by privileged operations that require the kernel: file or network I/O, memory allocation and freeing, system security. The 3 rd type of time is called real, elapsed or wallclock time. When a process is running it may spend time waiting for keyboard input. Or it may be slowed down by other processes on the system. When a program is running slowing it is important to know which of these three times is the cause in order to make it run faster. If a task is bogged down in wallclock time, a faster processor won t help. One solution is to move other jobs off the system. If the cause is I/O, usually resulting in higher stime values, a faster drive may do more than a faster processor, or setting larger I/O buffers may be the answer. If the problem is utime, then a faster processor or a better algorithm is what should be considered. The Unix command line utility times is a wrapper function that will display all 3 times. times myprog --flags args The C kernel function with the same name times will only give you utime and stime. To get the elapse time you need to use gettimeofday. Function: a) clock_t times(struct tms *buf) - the returned value is the number of clock ticks since some time in the past we did not use this as the definition is not easy to use. buf contains the cpu times for the main process and the cumulative times for all child processes. 7. struct itimerval { struct timeval it_interval; /* next value */ struct timeval it_value; /* current value */ This data type is used to set a timer for a delay. Each of the fields is a timeval which has fields tv_secs and tv_usecs. The 2 nd field it_value represents the delay in seconds and microseconds until the first time signal is sent. The 1 st field it interval is used when you wish to repeat the alarm multiple times. If the fields of it_interval are set to zero the alarm is issued once.

5 Every process has 3 and only 3 alarm clocks. ITIMER_REAL is a real world time (wall clock time) timer. Using a) setitimerval(int which, struct itimerval *newval, struct itimerval *oldval) - sets a new timer. which is one of ITIMER_REAL (wallclock time), ITIMER_VIRTUAL (all cpu time) or ITIMER_PROF (kernel time). On completion SIGALRM, SIGVTALRM or SIGVTPROF is sent b) getitimerval(int which, struct itimerval * currentval) - retrives a current setting. c) sleep(int secs), usleep(int microsecs), alarm(int secs) all set up a real time alarm using setitimer. Summary There are functions to convert between time_t, struct tm and strings. struct timeval extends time_t to microseconds. These data structures are used to record absolute time relative to the EPOCH. You should know how to convert between these data types. struct timeval, clock_t and struct tms are all used to measure intervals, not absolute times. clock_t is converted to seconds by dividing the value by sysconf(_sc_clk_tck) (the number of clock ticks per second) and this can be converted using simple math (divide by 60) to minutes, hours or other units of time.

Systems Programming/ C and UNIX

Systems Programming/ C and UNIX Systems Programming/ C and UNIX A. Fischer CSCI 4547/6647 What is Time? November 6, 2017 A. Fischer CSCI 4547/6647[1ex]What is Time? Systems Programming Lecture 8... 1/24 November 6, 2017 1 / 24 Outline

More information

Timekeeping. 5February :09

Timekeeping. 5February :09 Timekeeping UNIX timekeeping is an untidy area, made more confusing by national and international laws and customs. Broadly, there are two kinds of functions: one group is concerned with getting and setting

More information

Interacting with Unix

Interacting with Unix Interacting with Unix Synopsis Getting the Process ID #include pid_t getpid(void); Example: #include #include int main(){ pid_t n = getpid(); printf("process id is %d\n",

More information

Examination C++ Programming

Examination C++ Programming LUND INSTITUTE OF TECHNOLOGY 1(8) Department of Computer Science Examination C++ Programming 2011 08 20, 8.00 13.00 Aid at the exam: one C++ book. The copies of the lecture slides are not allowed. You

More information

Chapter 6. System Data Files and Information

Chapter 6. System Data Files and Information Chapter 6. System Data Files and Information System Programming http://www.cs.ccu.edu.tw/~pahsiung/courses/pd 熊博安國立中正大學資訊工程學系 pahsiung@cs.ccu.edu.tw Class: EA-104 (05)2720411 ext. 33119 Office: EA-512

More information

Systems Programming/ C and UNIX

Systems Programming/ C and UNIX Systems Programming/ C and UNIX A. Fischer CSCI 4547 / 6647 November 1, 2013 A. Fischer CSCI 4547 / 6647 () Systems Programming Lecture 8... 1/41 November 1, 2013 1 / 41 Outline 1 Signals for Threads Signals

More information

SYSTEM INFORMATION. UNIX Programming 2015 Fall by Euiseong Seo

SYSTEM INFORMATION. UNIX Programming 2015 Fall by Euiseong Seo SYSTEM INFORMATION UNIX Programming 2015 Fall by Euiseong Seo Host Information POSIX defines host information as follows OS name (Linux) OS release (3.13.0) OS version (#60-Ubuntu SMP Web Aug 13) Node

More information

Preview. Review. System Data Files (Password File) System Data Files (Password File) System Data Files (Password File)

Preview. Review. System Data Files (Password File) System Data Files (Password File) System Data Files (Password File) Review Preview link(), unlink() System Call remove(), rename() System Call Symbolic Links Symbolic link to directory Symbolic link to a executable file symlink() System Call File Times utime() System Call

More information

Timing Measurement (Linux) Introduction Timekeeping Architecture Related System Calls

Timing Measurement (Linux) Introduction Timekeeping Architecture Related System Calls Lecture 3 - Timer Timing Measurement (Linux) Introduction Timekeeping Architecture Related System Calls Case study - S3C2410 Timer Block Diagram Timer Operations Registers 1 Introduction Within a system,

More information

Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers

Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers NAME SYNOPSIS Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers use Time::HiRes qw( usleep ualarm gettimeofday tv_interval nanosleep clock_gettime clock_getres clock_nanosleep clock

More information

Outline. Computer programming. Usage of time and date functions. Date and Time: time.h. Date and Time: time.h. Time functions:

Outline. Computer programming. Usage of time and date functions. Date and Time: time.h. Date and Time: time.h. Time functions: Outline Computer programming "An expert is a man who has made all the mistakes which can be made, in a narrow field." Niels Bohr Working with time I/O redirection Variable length argument lists Command

More information

Computer programming. "An expert is a man who has made all the mistakes which can be made, in a narrow field." Niels Bohr

Computer programming. An expert is a man who has made all the mistakes which can be made, in a narrow field. Niels Bohr Computer programming "An expert is a man who has made all the mistakes which can be made, in a narrow field." Niels Bohr 1 Outline Working with time I/O redirection Variable length argument lists Command

More information

Avoid Using POSIX time_t for Telling Time

Avoid Using POSIX time_t for Telling Time Avoid Using POSIX time_t for Telling Time John Sauter 2018-07-15 Abstract The POSIX data type time_t is defined in a way that leads to errors in application programs when it is used for telling time. Here

More information

Odds and Ends. Data and File Structures Laboratory. DFS Lab (ISI) Odds and Ends 1 / 8

Odds and Ends. Data and File Structures Laboratory.   DFS Lab (ISI) Odds and Ends 1 / 8 Odds and Ends Data and File Structures Laboratory http://www.isical.ac.in/~dfslab/2017/index.html DFS Lab (ISI) Odds and Ends 1 / 8 Topics 1. Generic functions (e.g., swap) 2. Function activation records;

More information

F28HS Hardware-Software Interface: Systems Programming

F28HS Hardware-Software Interface: Systems Programming : Systems Programming Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 2 2017/18 0 No proprietary software has been used in producing these slides

More information

Structs (1) In data processing, a collection of data that can be treated as a single unit is a record. The components of this collection (fields or

Structs (1) In data processing, a collection of data that can be treated as a single unit is a record. The components of this collection (fields or Structs (1) In data processing, a collection of data that can be treated as a single unit is a record. The components of this collection (fields or members or attributes) are uniquely named and have values.

More information

Linked lists, stacks, queues

Linked lists, stacks, queues Linked lists, stacks, queues Data and File Structures Laboratory Data and File Structures Laboratory Linked lists, stacks, queues 1 / 9 Preliminaries: measuring time Motivation: to measure the amount of

More information

Programming Language B

Programming Language B Programming Language B Takako Nemoto (JAIST) 28 January Takako Nemoto (JAIST) 28 January 1 / 20 Today s quiz The following are program to print each member of the struct Student type object abe. Fix the

More information

LECTURE 9 The Standard Library Part 3

LECTURE 9 The Standard Library Part 3 LECTURE 9 The Standard Library Part 3 THE STANDARD LIBRARY In this lecture, we will briefly cover each of the remaining Standard Library modules that you absolutely must know about. Some of the remaining

More information

This manual is for Libffi, a portable foreign-function interface library. Copyright c 2008, 2010, 2011 Red Hat, Inc. Permission is granted to copy,

This manual is for Libffi, a portable foreign-function interface library. Copyright c 2008, 2010, 2011 Red Hat, Inc. Permission is granted to copy, Libffi This manual is for Libffi, a portable foreign-function interface library. Copyright c 2008, 2010, 2011 Red Hat, Inc. Permission is granted to copy, distribute and/or modify this document under the

More information

Performance Measuring on Blue Horizon and Sun HPC Systems:

Performance Measuring on Blue Horizon and Sun HPC Systems: Performance Measuring on Blue Horizon and Sun HPC Systems: Timing, Profiling, and Reading Assembly Language NPACI Parallel Computing Institute 2000 Sean Peisert peisert@sdsc.edu Performance Programming

More information

Overview. POSIX signals. Generation of signals. Handling signals. Some predefined signals. Real-time Systems D0003E 3/3/2009

Overview. POSIX signals. Generation of signals. Handling signals. Some predefined signals. Real-time Systems D0003E 3/3/2009 Overview Real-time Systems D0003E Lecture 13: More on inter-process communication (Burns & Wellings ch. 8, 11 & 10.6) Posix signals Posix timers timers in cygwin (lab environment) event-loop pattern semaphores

More information

CPSC 427a: Object-Oriented Programming

CPSC 427a: Object-Oriented Programming CPSC 427a: Object-Oriented Programming Michael J. Fischer (with thanks to Ewa Syta for help with the slides) Lecture 14 October 20, 2011 CPSC 427a, Lecture 14 1/22 More on Course Goals Demo: Stopwatch

More information

CS F-MID Midterm October 25, 2001

CS F-MID Midterm October 25, 2001 Name (Last, First): This exam consists of 5 questions on 9 pages; be sure you have the entire exam before starting. The point value of each question is indicated at its beginning; the entire exam has 100

More information

CSE 421: Introduction to Operating Systems

CSE 421: Introduction to Operating Systems Recitation 5: UNIX Signals University at Buffalo, the State University of New York October 2, 2013 About Me 4th year PhD student But TA first time From South Korea Today, We will study... What UNIX signals

More information

Processes. Processes (cont d)

Processes. Processes (cont d) Processes UNIX process creation image-file arg1 arg2 Shell command line example ls -l Equivalent to /bin/ls -l Why? How do you find out where the image file is? Background processes ls -l & Execute a process

More information

C Structures in Practice

C Structures in Practice CS 2060 Use of C Structures in Unix/Linux To further illustrate C structures, we will review some uses of struct in system calls. Here is a function from BSD to get the current time (found in sys/time.h):

More information

Chp1 Introduction. Introduction. Objective. Logging In. Shell. Briefly describe services provided by various versions of the UNIX operating system.

Chp1 Introduction. Introduction. Objective. Logging In. Shell. Briefly describe services provided by various versions of the UNIX operating system. Chp1 Objective Briefly describe services provided by various versions of the UNIX operating system. Logging In /etc/passwd local machine or NIS DB root:x:0:1:super-user:/root:/bin/tcsh Login-name, encrypted

More information

CSci 4061 Introduction to Operating Systems. (Advanced Control Signals)

CSci 4061 Introduction to Operating Systems. (Advanced Control Signals) CSci 4061 Introduction to Operating Systems (Advanced Control Signals) What is a Signal? Signals are a form of asynchronous IPC Earlier: Non-blocking I/O and check if it has happened => polling Problem

More information

tag 220 tan[f l] struct { int i; double d; } sa, sb; struct { int i; double d; } s1, s2;

tag 220 tan[f l] struct { int i; double d; } sa, sb; struct { int i; double d; } s1, s2; tag 220 T tag The identifier that may optionally follow the keyword struct, union, or enum in a structure, union, or enumerated type definition, respectively. The tag is used later to refer to that particular

More information

CITS2002 Systems Programming. Identifying related data. 1 next CITS2002 CITS2002 schedule. Let's consider the st project for CITS1002.

CITS2002 Systems Programming. Identifying related data. 1 next CITS2002 CITS2002 schedule. Let's consider the st project for CITS1002. 1 next CITS2002 CITS2002 schedule Identifying related data Let's consider the 2012 1st project for CITS1002. The goal of the project was to manage the statistics of AFL teams throughout the season, calculating

More information

QPM Ethernet Protocol

QPM Ethernet Protocol QPM Ethernet Protocol 2002 The Stanley Works, All Rights Reserved Page 1 of 16 General For this document, the term Sigma refers to all Stanley QPM Sigma based systems including the Gamma controller. The

More information

Program Execution Time Measurements

Program Execution Time Measurements / Notes on Program Execution Time Measurements on Linux/Unix/Solaris Intended audience: Those who would like to learn more about measuring program execution time in modern computer systems. Used: CPE 631

More information

F28HS Hardware-Software Interface: Systems Programming

F28HS Hardware-Software Interface: Systems Programming F28HS Hardware-Software Interface: Systems Programming Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 2 2016/17 0 No proprietary software has

More information

Lecture 8. Interrupt Handling

Lecture 8. Interrupt Handling F28HS Hardware-Software Interface: Systems Programming Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 2 2016/17 0 No proprietary software has

More information

Signals are a kernel-supported mechanism for reporting events to user code and forcing a response to them. There are actually two sorts of such

Signals are a kernel-supported mechanism for reporting events to user code and forcing a response to them. There are actually two sorts of such Signals are a kernel-supported mechanism for reporting events to user code and forcing a response to them. There are actually two sorts of such events, to which we sometimes refer as exceptions and interrupts.

More information

Market Data Platform Real Time. SNAPSHOT DATA Currency Derivatives Market

Market Data Platform Real Time. SNAPSHOT DATA Currency Derivatives Market TECHNICAL DOCUMENT Market Data Platform Real Time SNAPSHOT DATA Currency Derivatives Market (STANDARD PRODUCT) Version 1.2 22 FEB 2018 DOTEX INTERNATIONAL LIMITED EXCHANGE PLAZA, PLOT NO. C/1, G BLOCK,

More information

Computer Engineering Department. Yarmouk University ABSTRAT

Computer Engineering Department. Yarmouk University ABSTRAT Computer Engineering Department Yarmouk University ABSTRAT Anwar Hamdan Al-assaf Abdel_ ellah noor Al-shabatat Khawla Ali Al-Zou bi 2002971019 2002971009 2002971039 Network synchronization using GPS satellite

More information

Kernel Services CIS 657

Kernel Services CIS 657 Kernel Services CIS 657 System Processes in Traditional Unix Three processes created at startup time init process 1 user-mode administrative tasks (keeps getty running; shutdown) ancestor of all of your

More information

Real Time Operating Systems and Middleware

Real Time Operating Systems and Middleware Real Time Operating Systems and Middleware Real-Time Programming Interfaces Luca Abeni abeni@dit.unitn.it Real Time Operating Systems and Middleware p. 1 Needs for a Real-Time Interface Real-Time applications

More information

Programming Assignment 2 (PA2) - Binary Clock

Programming Assignment 2 (PA2) - Binary Clock Programming Assignment 2 (PA2) - Binary Clock Milestone Due: Final Due: Wednesday, May 2 @ 11:59 pm Wednesday, May 9 @ 11:59 pm Example Input Milestone Functions Unit Testing Extra Credit Detailed Overview

More information

SYSTEM AND LIBRARY CALLS. UNIX Programming 2015 Fall by Euiseong Seo

SYSTEM AND LIBRARY CALLS. UNIX Programming 2015 Fall by Euiseong Seo SYSTEM AND LIBRARY CALLS UNIX Programming 2015 Fall by Euiseong Seo Now, It s Programming Time! System Call and Library Call Who does process the following functions? strcmp() gettimeofday() printf() getc()

More information

THE AUSTRALIAN NATIONAL UNIVERSITY Mid Semester Examination April COMP3320/6464 High Performance Scientific Computing

THE AUSTRALIAN NATIONAL UNIVERSITY Mid Semester Examination April COMP3320/6464 High Performance Scientific Computing THE AUSTRALIAN NATIONAL UNIVERSITY Mid Semester Examination April 2012 COMP3320/6464 High Performance Scientific Computing Study Period: 15 minutes Time Allowed: 90 hours Permitted Materials: NONE The

More information

Software Design Abstract Data Types

Software Design Abstract Data Types Software Design Abstract Data Types 1 Software Design top down, bottom up, object-oriented abstract data types 2 Specifying a ClassClock date and time in a C++ program encapsulating C code public and private

More information

Algorithm Analysis CISC4080 CIS, Fordham Univ. Instructor: X. Zhang

Algorithm Analysis CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Algorithm Analysis CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Last class Review some algorithms learned in previous classes idea => pseudocode => implementation Correctness? Three sorting algorithms:

More information

A read or write being atomic means that its effect is as if it happens instantaneously.

A read or write being atomic means that its effect is as if it happens instantaneously. A read or write being atomic means that its effect is as if it happens instantaneously. Signals are a kernel-supported mechanism for reporting events to user code and forcing a response to them. There

More information

CSE 158/258. Web Mining and Recommender Systems. Tools and techniques for data processing and visualization

CSE 158/258. Web Mining and Recommender Systems. Tools and techniques for data processing and visualization CSE 158/258 Web Mining and Recommender Systems Tools and techniques for data processing and visualization Some helpful ideas for Assignment 2... 1. How can we crawl our own datasets from the web? 2. How

More information

COMP 3100 Operating Systems

COMP 3100 Operating Systems Programming Interface» A process is an instance of a running program. COMP 3100 Operating Systems» Functionality that an OS provides to applications» Process Management» Input/Output Week 3 Processes and

More information

Pointer Arithmetic and Lexical Scoping. CS449 Spring 2016

Pointer Arithmetic and Lexical Scoping. CS449 Spring 2016 Pointer Arithmetic and Lexical Scoping CS449 Spring 2016 Review Pitfall 1 from previous lecture void foo(char *s) { s = "World"; int main() { char *str = "Hello"; foo(str); printf("%s\n", str); return

More information

Performance Improvement. The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 7

Performance Improvement. The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 7 Performance Improvement The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 7 1 For Your Amusement Optimization hinders evolution. -- Alan Perlis

More information

I/O Models. Kartik Gopalan

I/O Models. Kartik Gopalan I/O Models Kartik Gopalan Types of Concurrency True Concurrency (multiple processes or threads) Multi-processor machines Child processes/threads execute in parallel. Multi-process (forking) servers If

More information

CSCI-E28 LECTURE 2 SAMPLES PAGE 1

CSCI-E28 LECTURE 2 SAMPLES PAGE 1 CSCI-E28 LECTURE 2 SAMPLES PAGE 1 :::::::::::::: who0.c :::::::::::::: * who version 0 * main outline but no substance main() int fd; for file des of utmp struct utmp current_record; hold info from file

More information

CS242: Object-Oriented Design and Programming

CS242: Object-Oriented Design and Programming CS242: Object-Oriented Design and Programming Program Assignment 5 Part 1 (Linked List Timer Queue) Due Tuesday, March 18 th ; 1997 Part 2 (Heap Timer Queue) Due Tuesday, April 1 st ; 1997) A Timer Queue

More information

CSCI 4500/8506 Operating Systems Some UNIX System Calls, Library, and PThreads Functions

CSCI 4500/8506 Operating Systems Some UNIX System Calls, Library, and PThreads Functions CSCI 4500/8506 Operating Systems Some UNIX System Calls, Library, and PThreads Functions Described below is a subset of UNIX system calls, library functions, and Pthreads (that is, POSIX Threads) functions.

More information

Pebbles Kernel Specification September 26, 2004

Pebbles Kernel Specification September 26, 2004 15-410, Operating System Design & Implementation Pebbles Kernel Specification September 26, 2004 Contents 1 Introduction 2 1.1 Overview...................................... 2 2 User Execution Environment

More information

Any of the descriptors in the set {1, 4} have an exception condition pending

Any of the descriptors in the set {1, 4} have an exception condition pending Page 1 of 6 6.3 select Function This function allows the process to instruct the kernel to wait for any one of multiple events to occur and to wake up the process only when one or more of these events

More information

Linux Device Drivers Interrupt Requests

Linux Device Drivers Interrupt Requests Overview 1 2 3 Installation of an interrupt handler Interface /proc 4 5 6 7 primitive devices can be managed only with I/O regions, most devices require a more complicated approach, devices cooperate with

More information

Isolation and System Calls. Changwoo Min

Isolation and System Calls. Changwoo Min 1 Isolation and System Calls Changwoo Min 2 Summary of last lectures Getting, building, and exploring the Linux kernel git, tig, make, make modules, make modules_install, make install, vim, emacs, LXR,

More information

PROCESS MANAGEMENT. Operating Systems 2015 Spring by Euiseong Seo

PROCESS MANAGEMENT. Operating Systems 2015 Spring by Euiseong Seo PROCESS MANAGEMENT Operating Systems 2015 Spring by Euiseong Seo Today s Topics Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication

More information

Time Measurement. CS 201 Gerson Robboy Portland State University. Topics. Time scales Interval counting Cycle counters K-best measurement scheme

Time Measurement. CS 201 Gerson Robboy Portland State University. Topics. Time scales Interval counting Cycle counters K-best measurement scheme Time Measurement CS 201 Gerson Robboy Portland State University Topics Time scales Interval counting Cycle counters K-best measurement scheme Computer Time Scales Microscopic Time Scale (1 Ghz Machine)

More information

The course that gives CMU its Zip! Time Measurement Oct. 24, 2002

The course that gives CMU its Zip! Time Measurement Oct. 24, 2002 15-213 The course that gives CMU its Zip! Time Measurement Oct. 24, 2002 Topics Time scales Interval counting Cycle counters K-best measurement scheme class18.ppt Computer Time Scales Microscopic Time

More information

19: I/O Devices: Clocks, Power Management

19: I/O Devices: Clocks, Power Management 19: I/O Devices: Clocks, Power Management Mark Handley Clock Hardware: A Programmable Clock Pulses Counter, decremented on each pulse Crystal Oscillator On zero, generate interrupt and reload from holding

More information

Asynchronous Events on Linux

Asynchronous Events on Linux Asynchronous Events on Linux Frederic.Rossi@Ericsson.CA Open System Lab Systems Research June 25, 2002 Ericsson Research Canada Introduction Linux performs well as a general purpose OS but doesn t satisfy

More information

Computer Science & Engineering Department I. I. T. Kharagpur

Computer Science & Engineering Department I. I. T. Kharagpur Computer Science & Engineering Department I. I. T. Kharagpur Operating System: CS33007 3rd Year CSE: 5th Semester (Autumn 2006-2007) Lecture III (Linux System Calls II) Goutam Biswas Date: 1st-7th August,

More information

UNIT I INTRODUCTION TO UNIX & FILE SYSTEM

UNIT I INTRODUCTION TO UNIX & FILE SYSTEM INTRODUCTION TO UNIX & FILE SYSTEM Part A 1. What is UNIX? UNIX(Uniplexed Information Computing System) it is an operating system was developed in Early 1970 at Bell Labs. It was initially a character

More information

Timers 1 / 46. Jiffies. Potent and Evil Magic

Timers 1 / 46. Jiffies. Potent and Evil Magic Timers 1 / 46 Jiffies Each timer tick, a variable called jiffies is incremented It is thus (roughly) the number of HZ since system boot A 32-bit counter incremented at 1000 Hz wraps around in about 50

More information

Lecture 21 Disk Devices and Timers

Lecture 21 Disk Devices and Timers CS 423 Operating Systems Design Lecture 21 Disk Devices and Timers Klara Nahrstedt Fall 2011 Based on slides by YY Zhou and Andrew S. Tanenbaum CS 423 - Fall 2011 Overview Administrative announcements

More information

Introduction to the Linux Kernel. Hao-Ran Liu

Introduction to the Linux Kernel. Hao-Ran Liu Introduction to the Linux Kernel Hao-Ran Liu The history Initially developed by Linus Torvalds in 1991 Source code is released under GNU Public License (GPL) If you modify and release a program protected

More information

SYSTEM CALL IMPLEMENTATION. CS124 Operating Systems Fall , Lecture 14

SYSTEM CALL IMPLEMENTATION. CS124 Operating Systems Fall , Lecture 14 SYSTEM CALL IMPLEMENTATION CS124 Operating Systems Fall 2017-2018, Lecture 14 2 User Processes and System Calls Previously stated that user applications interact with the kernel via system calls Typically

More information

Each terminal window has a process group associated with it this defines the current foreground process group. Keyboard-generated signals are sent to

Each terminal window has a process group associated with it this defines the current foreground process group. Keyboard-generated signals are sent to Each terminal window has a process group associated with it this defines the current foreground process group. Keyboard-generated signals are sent to all processes in the current window s process group.

More information

Computer Systems II. First Two Major Computer System Evolution Steps

Computer Systems II. First Two Major Computer System Evolution Steps Computer Systems II Introduction to Processes 1 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent processes) 2 1 At First (1945 1955) In the beginning,

More information

Computer Time Scales Time Measurement Oct. 24, Measurement Challenge. Time on a Computer System. The course that gives CMU its Zip!

Computer Time Scales Time Measurement Oct. 24, Measurement Challenge. Time on a Computer System. The course that gives CMU its Zip! 5-23 The course that gives CMU its Zip! Computer Time Scales Microscopic Time Scale ( Ghz Machine) Macroscopic class8.ppt Topics Time Measurement Oct. 24, 2002! Time scales! Interval counting! Cycle counters!

More information

Εργαστήριο 9 I/O Multiplexing

Εργαστήριο 9 I/O Multiplexing Εργαστήριο 9 I/O Multiplexing Στοεργαστήριοθαμελετηθούν: Server High Level View I/O Multiplexing Solutions for Concurrency nonblocking I/O Use alarm and signal handler to interrupt slow system calls. Use

More information

LECTURE 7. The Standard Library Part 1: Built-ins, time, sys, and os

LECTURE 7. The Standard Library Part 1: Built-ins, time, sys, and os LECTURE 7 The Standard Library Part 1: Built-ins, time, sys, and os THE PYTHON LANGUAGE Believe it or not, you now have all the Python syntax and structures you need already. At this point, we can turn

More information

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: C and Unix Overview This course is about computer organization, but since most of our programming is

More information

Overview. Over the next four weeks, we will look at these topics: Building Blocks. Advanced Authentication Issues.

Overview. Over the next four weeks, we will look at these topics: Building Blocks. Advanced Authentication Issues. Overview Over the next four weeks, we will look at these topics: Building Blocks Advanced Authentication Issues Security Overview Storage and its abstraction Virtualization and appliances Data Replication

More information

Times and Timers. Chapter 9. ch /5/ page 30

Times and Timers. Chapter 9. ch /5/ page 30 page 30 Chapter 9 Times and Timers Operating systems use timers for purposes such as process scheduling, timeouts for network protocols, and periodic updates of system statistics. Applications access system

More information

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed Process Management CS 537 Lecture 3: Processes Michael Swift This lecture begins a series of topics on processes, threads, and synchronization Today: processes and process management what are the OS units

More information

Process management. What s in a process? What is a process? The OS s process namespace. A process s address space (idealized)

Process management. What s in a process? What is a process? The OS s process namespace. A process s address space (idealized) Process management CSE 451: Operating Systems Spring 2012 Module 4 Processes Ed Lazowska lazowska@cs.washington.edu Allen Center 570 This module begins a series of topics on processes, threads, and synchronization

More information

CSE 451: Operating Systems Winter Module 4 Processes. Mark Zbikowski Allen Center 476

CSE 451: Operating Systems Winter Module 4 Processes. Mark Zbikowski Allen Center 476 CSE 451: Operating Systems Winter 2015 Module 4 Processes Mark Zbikowski mzbik@cs.washington.edu Allen Center 476 2013 Gribble, Lazowska, Levy, Zahorjan Process management This module begins a series of

More information

Fujitsu Technology Solutions

Fujitsu Technology Solutions Fujitsu Technology Solutions CRTE (BS2000) Version V2.7G December 2013 Readme File All rights reserved, including intellectual property rights. Technical data subject to modifications and delivery subject

More information

Performance Tuning VTune Performance Analyzer

Performance Tuning VTune Performance Analyzer Performance Tuning VTune Performance Analyzer Paul Petersen, Intel Sept 9, 2005 Copyright 2005 Intel Corporation Performance Tuning Overview Methodology Benchmarking Timing VTune Counter Monitor Call Graph

More information

2008 Chapter-8 L1: "Embedded Systems - Architecture, Programming and Design", Raj Kamal, Publs.: McGraw-Hill, Inc.

2008 Chapter-8 L1: Embedded Systems - Architecture, Programming and Design, Raj Kamal, Publs.: McGraw-Hill, Inc. REAL TIME OPERATING SYSTEMS Lesson-1: OPERATING SYSTEM SERVICES GOAL, MODES AND STRUCTURE 1 1. OS Services Goal 2 Goal The OS Service Goal Perfection and correctness during a service 3 OS Services Goal

More information

Computer Organization: A Programmer's Perspective

Computer Organization: A Programmer's Perspective Profiling Oren Kapah orenkapah.ac@gmail.com Profiling: Performance Analysis Performance Analysis ( Profiling ) Understanding the run-time behavior of programs What parts are executed, when, for how long

More information

Processes. Process Management Chapter 3. When does a process gets created? When does a process gets terminated?

Processes. Process Management Chapter 3. When does a process gets created? When does a process gets terminated? Processes Process Management Chapter 3 1 A process is a program in a state of execution (created but not terminated) Program is a passive entity one on your disk (survivor.class, kelly.out, ) Process is

More information

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals EECS 3221 Operating System Fundamentals Instructor: Prof. Hui Jiang Email: hj@cse.yorku.ca Web: http://www.eecs.yorku.ca/course/3221 General Info 3 lecture hours each week 2 assignments (2*5%=10%) 1 project

More information

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals General Info EECS 3221 Operating System Fundamentals Instructor: Prof. Hui Jiang Email: hj@cse.yorku.ca Web: http://www.eecs.yorku.ca/course/3221 3 lecture hours each week 2 assignments (2*5%=10%) 1 project

More information

What is an Operating System? A Whirlwind Tour of Operating Systems. How did OS evolve? How did OS evolve?

What is an Operating System? A Whirlwind Tour of Operating Systems. How did OS evolve? How did OS evolve? What is an Operating System? A Whirlwind Tour of Operating Systems Trusted software interposed between the hardware and application/utilities to improve efficiency and usability Most computing systems

More information

Memory Mapped I/O. Michael Jantz. Prasad Kulkarni. EECS 678 Memory Mapped I/O Lab 1

Memory Mapped I/O. Michael Jantz. Prasad Kulkarni. EECS 678 Memory Mapped I/O Lab 1 Memory Mapped I/O Michael Jantz Prasad Kulkarni EECS 678 Memory Mapped I/O Lab 1 Introduction This lab discusses various techniques user level programmers can use to control how their process' logical

More information

OS lpr. www. nfsd gcc emacs ls 9/18/11. Process Management. CS 537 Lecture 4: Processes. The Process. Why Processes? Simplicity + Speed

OS lpr. www. nfsd gcc emacs ls 9/18/11. Process Management. CS 537 Lecture 4: Processes. The Process. Why Processes? Simplicity + Speed Process Management CS 537 Lecture 4: Processes Today: processes and process management what are the OS units of execution? how are they represented inside the OS? how is the CPU scheduled across processes?

More information

Chapter 13 Systems Programming. Systems Programming. Error Handling. Error Handling. Example: File I/O. Example: File I/O

Chapter 13 Systems Programming. Systems Programming. Error Handling. Error Handling. Example: File I/O. Example: File I/O Chapter 13 Systems Programming Graham Glass and King Ables, UNIX for Programmers and Users, Third Edition, Pearson Prentice Hall, 2003. Original Notes by Raj Sunderraman Converted to presentation and updated

More information

This document gives a general overview of the work done by an operating system and gives specific examples from UNIX.

This document gives a general overview of the work done by an operating system and gives specific examples from UNIX. This document gives a general overview of the work done by an operating system and gives specific examples from UNIX. 1 Manages Resources: I/O devices (disk, keyboard, mouse, terminal) Memory Manages Processes:

More information

Computer Science 322 Operating Systems Mount Holyoke College Spring Topic Notes: C and Unix Overview

Computer Science 322 Operating Systems Mount Holyoke College Spring Topic Notes: C and Unix Overview Computer Science 322 Operating Systems Mount Holyoke College Spring 2010 Topic Notes: C and Unix Overview This course is about operating systems, but since most of our upcoming programming is in C on a

More information

1 Introduction. 2 Managing contexts. Green, green threads of home. Johan Montelius HT2018

1 Introduction. 2 Managing contexts. Green, green threads of home. Johan Montelius HT2018 1 Introduction Green, green threads of home Johan Montelius HT2018 This is an assignment where you will implement your own thread library. Instead of using the operating systems threads you will create

More information

Roadmap. Tevfik Ko!ar. CSC Operating Systems Spring Lecture - III Processes. Louisiana State University. Virtual Machines Processes

Roadmap. Tevfik Ko!ar. CSC Operating Systems Spring Lecture - III Processes. Louisiana State University. Virtual Machines Processes CSC 4103 - Operating Systems Spring 2008 Lecture - III Processes Tevfik Ko!ar Louisiana State University January 22 nd, 2008 1 Roadmap Virtual Machines Processes Basic Concepts Context Switching Process

More information

The bigger picture. File systems. User space operations. What s a file. A file system is the user space implementation of persistent storage.

The bigger picture. File systems. User space operations. What s a file. A file system is the user space implementation of persistent storage. The bigger picture File systems Johan Montelius KTH 2017 A file system is the user space implementation of persistent storage. a file is persistent i.e. it survives the termination of a process a file

More information

ChorusOS man pages section 3STDC: Standard C Library Functions. Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA U.S.A.

ChorusOS man pages section 3STDC: Standard C Library Functions. Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA U.S.A. ChorusOS man pages section 3STDC: Standard C Library Functions Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 U.S.A. Part No: 806-3335 December 10, 1999 Copyright 1999 Sun Microsystems,

More information

CS 33. Architecture and the OS. CS33 Intro to Computer Systems XIX 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

CS 33. Architecture and the OS. CS33 Intro to Computer Systems XIX 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. CS 33 Architecture and the OS CS33 Intro to Computer Systems XIX 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. The Operating System My Program Mary s Program Bob s Program OS CS33 Intro to

More information

CS399 New Beginnings. Jonathan Walpole

CS399 New Beginnings. Jonathan Walpole CS399 New Beginnings Jonathan Walpole OS-Related Hardware & Software The Process Concept 2 Lecture 2 Overview OS-Related Hardware & Software - complications in real systems - brief introduction to memory

More information

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process. Zhi Wang Florida State University

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process. Zhi Wang Florida State University COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process Zhi Wang Florida State University Contents Process concept Process scheduling Operations on processes Inter-process communication

More information