Outline. Overview. Linux-specific, since kernel 2.6.0
|
|
- Kathlyn Crawford
- 1 years ago
- Views:
Transcription
1 Outline 25 Alternative I/O Models Overview Signal-driven I/O I/O multiplexing: poll() Problems with poll() and select() The epoll API epoll events epoll: further API details Appendix: I/O multiplexing with select() Overview Like select() and poll(), epoll can monitor multiple FDs epoll returns readiness information in similar manner to poll() Two main advantages: epoll provides much better performance when monitoring large numbers of FDs epoll provides two notification modes: level-triggered and edge-triggered Default is level-triggered notification select() and poll() provide only level-triggered notification (Signal-driven I/O provides only edge-triggered notification) Linux-specific, since kernel [TLPI 63.4] Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
2 epoll instances Central data structure of epoll API is an epoll instance Persistent data structure maintained in kernel space Referred to in user space via file descriptor Container for two information lists: Interest list: a list of FDs that a process is interested in monitoring Ready list: a list of FDs that are ready for I/O Membership of ready list is a (dynamic) subset of interest list Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models epoll APIs The key epoll APIs are: epoll_create(): create epoll instance and return FD referring to instance FD is used in the calls below epoll_ctl(): modify interest list of epoll instance Add FDs to/remove FDs from interest list Modify events mask for FDs currently in interest list epoll_wait(): return items from ready list of epoll instance Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
3 epoll kernel data structures and APIs User space File descriptor from epoll_create() refers to Populated/modified by calls to epoll_ctl() Kernel space epoll instance Interest list FD events data Populated by kernel based on interest list and I/O events Returned by calls to epoll_wait() Ready list FD events data Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models Creating an epoll instance: epoll_create() # include <sys / epoll.h> int epoll_create ( int size ); Creates an epoll instance; returns FD referring to instance size: Since Linux 2.6.8: serves no purpose, but must be > 0 Before Linux 2.6.8: an estimate of number of FDs to be monitored via this epoll instance Returns file descriptor on success, or -1 on error When FD is no longer required it should be closed via close() Since Linux , there is an improved API, epoll_create1() See the man page [TLPI ] Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
4 Modifying the epoll interest list: epoll_ctl() # include <sys / epoll.h> int epoll_ctl ( int epfd, int op, int fd, struct epoll_event * ev ); Modifies the interest list associated with epoll FD, epfd fd: identifies which FD in interest list is to have its settings modified E.g., FD for pipe, FIFO, terminal, socket, POSIX MQ, or even another epoll FD (Can t be FD for a regular file or directory) op: operation to perform on interest list ev: (Later) Returns 0 on success, or -1 on error [TLPI ] Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models epoll_ctl() op argument The epoll_ctl() op argument is one of: EPOLL_CTL_ADD: add fd to interest list of epfd ev specifies events to be monitored for fd If fd is already in interest list EEXIST EPOLL_CTL_MOD: modify settings of fd in interest list of epfd ev specifies new settings to be associated with fd If fd is not in interest list ENOENT EPOLL_CTL_DEL: remove fd from interest list of epfd ev is ignored If fd is not in interest list ENOENT Closing an FD automatically removes it from all epoll interest lists Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
5 The epoll_event structure epoll_ctl() ev argument is pointer to an epoll_event structure: struct epoll_event { uint32_t events ; /* epoll events ( bit mask ) */ epoll_data_t data ; /* User data */ }; typedef union epoll_data { void * ptr ; /* Pointer to user - defined data */ int fd; /* File descriptor */ uint32_t u32 ; /* 32 - bit integer */ uint64_t u64 ; /* 64 - bit integer */ } epoll_data_t ; ev.events: bit mask of events to monitor for fd (Similar to events mask given to poll()) data: info to be passed back to caller of epoll_wait() when fd later becomes ready Union field: value is specified in one of the members Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models Example: using epoll_create() and epoll_ctl() int epfd ; struct epoll_event ev; epfd = epoll_create (5); ev. data.fd = fd; ev. events = EPOLLIN ; /* Monitor for input available */ epoll_ctl ( epfd, EPOLL_CTL_ADD, fd, & ev ); Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
6 Outline 25 Alternative I/O Models Overview Signal-driven I/O I/O multiplexing: poll() Problems with poll() and select() The epoll API epoll events epoll: further API details Appendix: I/O multiplexing with select() Waiting for events: epoll_wait() # include <sys / epoll.h> int epoll_wait ( int epfd, struct epoll_event * evlist, int maxevents, int timeout ); Returns info about ready FDs in interest list of epoll instance of epfd Info about ready FDs is returned in array evlist (Caller allocates this array) maxevents: size of the evlist array If > maxevents events are available, successive epoll_wait() calls round-robin through events [TLPI ] Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
7 Waiting for events: epoll_wait() # include <sys / epoll.h> int epoll_wait ( int epfd, struct epoll_event * evlist, int maxevents, int timeout ); timeout specifies a timeout for call: -1: block until an FD in interest list becomes ready 0: perform a nonblocking poll to see if any FDs in interest list are ready > 0: block for up to timeout milliseconds or until an FD in interest list becomes ready Return value: > 0: number of items placed in evlist 0: no FDs became ready within interval specified by timeout -1: an error occurred [TLPI ] Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models Waiting for events: epoll_wait() # include <sys / epoll.h> int epoll_wait ( int epfd, struct epoll_event * evlist, int maxevents, int timeout ); Info about multiple FDs can be returned in the array evlist Each element of evlist returns info about one file descriptor: events is a bit mask of events that have occurred for FD data is the ev.data value specified when the FD was registered with epoll_ctl() NB: the FD itself is not returned! Instead, we put FD into ev.data.fd when calling epoll_ctl(), so that it is returned via epoll_wait() (Or, put FD into a structure pointed to by ev.data.ptr) Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
8 epoll events ev.events value given to epoll_ctl() and evlist[].events fields returned by epoll_wait() are bit masks of events Input to Returned by Bit Description epoll_ctl()? epoll_wait()? EPOLLIN Normal-priority data can be read EPOLLPRI High-priority data can be read EPOLLRDHUP Shutdown on peer socket EPOLLOUT Data can be written EPOLLONESHOT Disable monitoring after event notification EPOLLET Employ edge-triggered notification EPOLLERR An error has occurred EPOLLHUP A hangup occurred With the exception of EPOLLOUT and EPOLLET, these bit flags have the same meaning as the similarly named poll() bit flags [TLPI ] Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models Example: altio/epoll_input.c./ epoll_input file... Monitors one or more files using epoll API to see if input is possible Suitable files to give as arguments are: FIFOs Terminal device names (May need to run sleep command in FG on the other terminal, to prevent shell stealing input) Standard input /dev/stdin Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
9 Example: altio/epoll_input.c (1) 1 # define MAX_BUF 1000 /* Max. bytes for read () */ 2 # define MAX_EVENTS 5 3 /* Max. number of events to be returned from 4 a single epoll_wait () call */ 5 6 int epfd, ready, fd, s, j, numopenfds ; 7 struct epoll_event ev; 8 struct epoll_event evlist[ MAX_EVENTS ]; 9 char buf [ MAX_BUF ]; epfd = epoll_create(argc - 1); Declarations for various variables Create an epoll instance, obtaining epoll FD Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models Example: altio/epoll_input.c (2) 1 for ( j = 1; j < argc ; j ++) { 2 fd = open( argv [j], O_RDONLY ); 3 printf (" Opened \"% s\" on fd %d\n", argv [j ], fd ); 4 5 ev. events = EPOLLIN; 6 ev.data.fd = fd; 7 epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &ev); 8 } 9 10 numopenfds = argc - 1; Open each of the files named on command line Each file is monitored for input (EPOLLIN) fd placed in ev.data, so it is returned by epoll_wait() Add the FD to epoll interest list (epoll_ctl()) Track the number of open FDs Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
10 Example: altio/epoll_input.c (3) 1 while (numopenfds > 0) { 2 printf (" About to epoll_wait ()\ n"); 3 ready = epoll_wait( epfd, evlist, MAX_EVENTS, -1); 4 if ( ready == -1) { 5 if ( errno == EINTR ) 6 continue ; /* Restart if interrupted 7 by signal */ 8 else 9 errexit (" epoll_wait "); 10 } 11 printf (" Ready : %d\n", ready ); Loop, fetching epoll events and analyzing results Loop terminates when all FDs has been closed epoll_wait() call places up to MAX_EVENTS events in evlist timeout == -1 infinite timeout Return value of epoll_wait() is number of ready FDs Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models Example: altio/epoll_input.c (4) 1 for ( j = 0; j < ready; j ++) { 2 printf (" fd =%d; events : %s%s%s\n", evlist [j]. data.fd, 3 ( evlist [j]. events & EPOLLIN )? " EPOLLIN " : "", 4 ( evlist [j]. events & EPOLLHUP )? " EPOLLHUP " : "", 5 ( evlist [j]. events & EPOLLERR )? " EPOLLERR " : ""); 6 if ( evlist [j]. events & EPOLLIN) { 7 s = read( evlist [j]. data.fd, buf, MAX_BUF ); 8 printf (" read %d bytes : %.* s\n", s, s, buf ); 9 } else if ( evlist [ j]. events & ( EPOLLHUP EPOLLERR )) { 10 printf (" closing fd %d\n", evlist [j]. data.fd ); 11 close(evlist[j].data.fd); 12 numopenfds--; 13 } 14 } 15 } Scan up to ready items in evlist Display events bits If EPOLLIN event occurred read some input and display it on stdout Otherwise, if error or hangup, close FD and decrements FD count Code correctly handles case where both EPOLLIN and EPOLLHUP are set in evlist[j].events Linux/UNIX System Programming c 2015, Michael Kerrisk Alternative I/O Models
Like select() and poll(), epoll can monitor multiple FDs epoll returns readiness information in similar manner to poll() Two main advantages:
Outline 22 Alternative I/O Models 22-1 22.1 Overview 22-3 22.2 Nonblocking I/O 22-5 22.3 Signal-driven I/O 22-11 22.4 I/O multiplexing: poll() 22-14 22.5 Problems with poll() and select() 22-31 22.6 The
Like select() and poll(), epoll can monitor multiple FDs epoll returns readiness information in similar manner to poll() Two main advantages:
Outline 23 Alternative I/O Models 23-1 23.1 Overview 23-3 23.2 Nonblocking I/O 23-5 23.3 Signal-driven I/O 23-11 23.4 I/O multiplexing: poll() 23-14 23.5 Problems with poll() and select() 23-31 23.6 The
POSIX Shared Memory. Linux/UNIX IPC Programming. Outline. Michael Kerrisk, man7.org c 2017 November 2017
Linux/UNIX IPC Programming POSIX Shared Memory Michael Kerrisk, man7.org c 2017 mtk@man7.org November 2017 Outline 10 POSIX Shared Memory 10-1 10.1 Overview 10-3 10.2 Creating and opening shared memory
Outline. Relationship between file descriptors and open files
Outline 3 File I/O 3-1 3.1 File I/O overview 3-3 3.2 open(), read(), write(), and close() 3-7 3.3 The file offset and lseek() 3-21 3.4 Atomicity 3-30 3.5 Relationship between file descriptors and open
Topics. Lecture 8: Other IPC Mechanisms. Socket IPC. Unix Communication
Topics Lecture 8: Other IPC Mechanisms CSC 469H1F Fall 2006 Angela Demke Brown Messages through sockets / pipes Receiving notification of activity Generalizing the event notification mechanism Kqueue Semaphores
A process. the stack
A process Processes Johan Montelius What is a process?... a computation KTH 2017 a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other processes
I/O Management! Goals of this Lecture!
I/O Management! 1 Goals of this Lecture! Help you to learn about:" The Unix stream concept" Standard C I/O functions" Unix system-level functions for I/O" How the standard C I/O functions use the Unix
Programmation Système Cours 4 IPC: FIFO
Programmation Système Cours 4 IPC: FIFO Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2014 2015 URL http://upsilon.cc/zack/teaching/1415/progsyst/ Copyright
CSC209H Lecture 10. Dan Zingaro. March 18, 2015
CSC209H Lecture 10 Dan Zingaro March 18, 2015 Creating a Client To create a client that can connect to a server, call the following, in order: socket: create a communication endpoint This is the same as
ECE 650 Systems Programming & Engineering. Spring 2018
ECE 650 Systems Programming & Engineering Spring 2018 Inter-process Communication (IPC) Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Recall Process vs. Thread A process is
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
Recitation 8: Tshlab + VM
Recitation 8: Tshlab + VM Instructor: TAs 1 Outline Labs Signals IO Virtual Memory 2 TshLab and MallocLab TshLab due Tuesday MallocLab is released immediately after Start early Do the checkpoint first,
UNIT III - APPLICATION DEVELOPMENT. TCP Echo Server
UNIT III - APPLICATION DEVELOPMENT TCP Echo Server TCP Echo Client Posix Signal handling Server with multiple clients boundary conditions: Server process Crashes, Server host Crashes, Server Crashes and
Windows architecture. user. mode. Env. subsystems. Executive. Device drivers Kernel. kernel. mode HAL. Hardware. Process B. Process C.
Structure Unix architecture users Functions of the System tools (shell, editors, compilers, ) standard library System call Standard library (printf, fork, ) OS kernel: processes, memory management, file
Outline. Basic features of BPF virtual machine
Outline 10 Seccomp 10-1 10.1 Introduction and history 10-3 10.2 Seccomp filtering and BPF 10-11 10.3 Constructing seccomp filters 10-16 10.4 BPF programs 10-30 10.5 Further details on seccomp filters 10-47
PRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
Creating a Shell or Command Interperter Program CSCI411 Lab
Creating a Shell or Command Interperter Program CSCI411 Lab Adapted from Linux Kernel Projects by Gary Nutt and Operating Systems by Tannenbaum Exercise Goal: You will learn how to write a LINUX shell
UNIX input and output
UNIX input and output Disk files In UNIX a disk file is a finite sequence of bytes, usually stored on some nonvolatile medium. Disk files have names, which are called paths. We won t discuss file naming
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
File I/O. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
File I/O Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Unix Files A Unix file is a sequence of m bytes: B 0, B 1,..., B k,..., B m-1 All I/O devices
Introduction to OS Processes in Unix, Linux, and Windows MOS 2.1 Mahmoud El-Gayyar
Introduction to OS Processes in Unix, Linux, and Windows MOS 2.1 Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Mahmoud El-Gayyar / Introduction to OS 1 Processes in Unix, Linux, and Windows Unix pre-empted
Exception-Less System Calls for Event-Driven Servers
Exception-Less System Calls for Event-Driven Servers Livio Soares and Michael Stumm University of Toronto Talk overview At OSDI'10: exception-less system calls Technique targeted at highly threaded servers
Reading Assignment 4. n Chapter 4 Threads, due 2/7. 1/31/13 CSE325 - Processes 1
Reading Assignment 4 Chapter 4 Threads, due 2/7 1/31/13 CSE325 - Processes 1 What s Next? 1. Process Concept 2. Process Manager Responsibilities 3. Operations on Processes 4. Process Scheduling 5. Cooperating
Outline. OS Interface to Devices. System Input/Output. CSCI 4061 Introduction to Operating Systems. System I/O and Files. Instructor: Abhishek Chandra
Outline CSCI 6 Introduction to Operating Systems System I/O and Files File I/O operations File Descriptors and redirection Pipes and FIFOs Instructor: Abhishek Chandra 2 System Input/Output Hardware devices:
Overview. Last Lecture. This Lecture. Daemon processes and advanced I/O functions
Overview Last Lecture Daemon processes and advanced I/O functions This Lecture Unix domain protocols and non-blocking I/O Source: Chapters 15&16&17 of Stevens book Unix domain sockets A way of performing
libnetfilter_log Reference Manual
libnetfilter_log Reference Manual x.y Generated by Doxygen 1.4.6 Tue Mar 21 13:47:12 2006 CONTENTS 1 Contents 1 libnetfilter_log File Index 1 2 libnetfilter_log File Documentation 1 1 libnetfilter_log
Memory. What is memory? How is memory organized? Storage for variables, data, code etc. Text (Code) Data (Constants) BSS (Global and static variables)
Memory Allocation Memory What is memory? Storage for variables, data, code etc. How is memory organized? Text (Code) Data (Constants) BSS (Global and static variables) Text Data BSS Heap Stack (Local variables)
Operating Systems CS 217. Provides each process with a virtual machine. Promises each program the illusion of having whole machine to itself
Operating Systems CS 217 Operating System (OS) Provides each process with a virtual machine Promises each program the illusion of having whole machine to itself Process Process Process Process OS Kernel
Operating Systems. Lecture 06. System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line
Operating Systems Lecture 06 System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line March 04, 2013 exec() Typically the exec system call is
Signal Example 1. Signal Example 2
Signal Example 1 #include #include void ctrl_c_handler(int tmp) { printf("you typed CTL-C, but I don't want to die!\n"); int main(int argc, char* argv[]) { long i; signal(sigint, ctrl_c_handler);
CSE 509: Computer Security
CSE 509: Computer Security Date: 2.16.2009 BUFFER OVERFLOWS: input data Server running a daemon Attacker Code The attacker sends data to the daemon process running at the server side and could thus trigger
Interprocess Communication. Originally multiple approaches Today more standard some differences between distributions still exist
Interprocess Communication Originally multiple approaches Today more standard some differences between distributions still exist Pipes Oldest form of IPC provided by all distros Limitations Historically
Radix Tree, IDR APIs and their test suite. Rehas Sachdeva & Sandhya Bankar
Radix Tree, IDR APIs and their test suite Rehas Sachdeva & Sandhya Bankar Introduction Outreachy intern Dec 2016-March 2017 for Linux kernel, mentored by Rik van Riel and Matthew Wilcox. 4th year undergrad
OS COMPONENTS OVERVIEW OF UNIX FILE I/O. CS124 Operating Systems Fall , Lecture 2
OS COMPONENTS OVERVIEW OF UNIX FILE I/O CS124 Operating Systems Fall 2017-2018, Lecture 2 2 Operating System Components (1) Common components of operating systems: Users: Want to solve problems by using
EL2310 Scientific Programming
Lecture 12: Memory, Files and Bitoperations (pronobis@kth.se) Overview Overview Lecture 12: Memory, Files and Bit operations Wrap Up Main function; reading and writing Bitwise Operations Wrap Up Lecture
Maria Hybinette, UGA. ! One easy way to communicate is to use files. ! File descriptors. 3 Maria Hybinette, UGA. ! Simple example: who sort
Two Communicating Processes Hello Gunnar CSCI 6730/ 4730 Operating Systems Process Chat Maria A Hi Nice to Hear from you Process Chat Gunnar B Dup & Concept that we want to implement 2 On the path to communication
File I/O. Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University Embedded Software Lab.
1 File I/O Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University http://nyx.skku.ac.kr Unix files 2 A Unix file is a sequence of m bytes: B 0, B 1,..., B k,..., B m-1 All I/O devices are represented
Contents. IPC (Inter-Process Communication) Representation of open files in kernel I/O redirection Anonymous Pipe Named Pipe (FIFO)
Pipes and FIFOs Prof. Jin-Soo Kim( jinsookim@skku.edu) TA JinHong Kim( jinhong.kim@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Contents IPC (Inter-Process Communication)
ECE 435 Network Engineering Lecture 2
ECE 435 Network Engineering Lecture 2 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 31 August 2017 Announcements Homework 1 will be posted. Will be on website, will announce
Programming in C. Pointers and Arrays
Programming in C Pointers and Arrays NEXT SET OF SLIDES FROM DENNIS FREY S FALL 2011 CMSC313 http://www.csee.umbc.edu/courses/undergraduate/313/fall11/" Pointers and Arrays In C, there is a strong relationship
Week 2 Intro to the Shell with Fork, Exec, Wait. Sarah Diesburg Operating Systems CS 3430
Week 2 Intro to the Shell with Fork, Exec, Wait Sarah Diesburg Operating Systems CS 3430 1 Why is the Shell Important? Shells provide us with a way to interact with the core system Executes programs on
UNIX System Programming. Overview. 1. A UNIX System. 2. Processes (review) 2.1. Context. Pipes/FIFOs
UNIX System Programming Pipes/FIFOs Overview 1. A UNIX System (review) 2. Processes (review) Objectives Look at UNIX support for interprocess communication (IPC) on a single machine Review processes pipes,
Killing Zombies, Working, Sleeping, and Spawning Children
Killing Zombies, Working, Sleeping, and Spawning Children CS 333 Prof. Karavanic (c) 2015 Karen L. Karavanic 1 The Process Model The OS loads program code and starts each job. Then it cleans up afterwards,
Inter-process communication (IPC)
Inter-process communication (IPC) Operating Systems Kartik Gopalan References Chapter 5 of OSTEP book. Unix man pages Advanced Programming in Unix Environment by Richard Stevens http://www.kohala.com/start/apue.html
File I/O. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University
File I/O Woo-Yeong Jeong (wooyeong@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Unix Files A Unix file is a sequence of m bytes: B 0, B 1,..., B k,..., B m-1 All
Motivation of VPN! Overview! VPN addressing and routing! Two basic techniques for VPN! ! How to guarantee privacy of network traffic?!
Overview!! Last Lecture!! Daemon processes and advanced I/O functions!! This Lecture!! VPN, NAT, DHCP!! Source: Chapters 19&22 of Comer s book!! Unix domain protocols and non-blocking I/O!! Source: Chapters
Chapter 8: I/O functions & socket options
Chapter 8: I/O functions & socket options 8.1 Introduction I/O Models In general, there are normally two phases for an input operation: 1) Waiting for the data to arrive on the network. When the packet
Ethernet Industrial I/O Modules API and Programming Guide Model 24xx Family Rev.A August 2010
Ethernet Industrial I/O Modules API and Programming Guide Model 24xx Family Rev.A August 2010 Designed and manufactured in the U.S.A. SENSORAY p. 503.684.8005 email: info@sensoray.com www.sensoray.com
My malloc: mylloc and mhysa. Johan Montelius HT2016
1 Introduction My malloc: mylloc and mhysa Johan Montelius HT2016 So this is an experiment where we will implement our own malloc. We will not implement the world s fastest allocator, but it will work
All the scoring jobs will be done by script
File I/O Prof. Jin-Soo Kim( jinsookim@skku.edu) TA Sanghoon Han(sanghoon.han@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Announcement (1) All the scoring jobs
Input and Output System Calls
Chapter 2 Input and Output System Calls Internal UNIX System Calls & Libraries Using C --- 1011 OBJECTIVES Upon completion of this unit, you will be able to: Describe the characteristics of a file Open
COMP 2355 Introduction to Systems Programming
COMP 2355 Introduction to Systems Programming Christian Grothoff christian@grothoff.org http://grothoff.org/christian/ 1 Processes A process is an instance of a running program. Programs do not have to
IC221: Systems Programming 12-Week Written Exam [SOLUTIONS]
IC221: Systems Programming 12-Week Written Exam [SOLUTIONS] April 2, 2014 Answer the questions in the spaces provided on the question sheets. If you run out of room for an answer, continue on the back
CS 351 Week 15. Course Review
CS 351 Week 15 Course Review Objectives: 1. To review the contents from different weeks. 2. To have a complete understanding of important concepts from different weeks. Concepts: 1. Important Concepts
COMP/ELEC 429/556 Introduction to Computer Networks
COMP/ELEC 429/556 Introduction to Computer Networks Creating a Network Application Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang 1 How to Programmatically
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
Device-Functionality Progression
Chapter 12: I/O Systems I/O Hardware I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations Incredible variety of I/O devices Common concepts Port
Chapter 12: I/O Systems. I/O Hardware
Chapter 12: I/O Systems I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations I/O Hardware Incredible variety of I/O devices Common concepts Port
Prepared by Prof. Hui Jiang Process. Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University
EECS3221.3 Operating System Fundamentals No.2 Process Prof. Hui Jiang Dept of Electrical Engineering and Computer Science, York University How OS manages CPU usage? How CPU is used? Users use CPU to run
Today s class. Finish review of C Process description and control. Informationsteknologi. Tuesday, September 18, 2007
Today s class Finish review of C Process description and control Computer Systems/Operating Systems - Class 6 1 Finish review of C Review in class exercise 3 #1: game cptr is 5004 #2: The value of c is
Preview. Interprocess Communication with Pipe. Pipe from the Parent to the child Pipe from the child to the parent FIFO popen() with r Popen() with w
Preview Interprocess Communication with Pipe Pipe from the Parent to the child Pipe from the child to the parent FIFO popen() with r Popen() with w COCS 350 System Software, Fall 2015 1 Interprocess Communication
Quiz: Address Translation
Quiz: Address Translation 8 bits 1 st level 8 bits 8 bits 2 nd level offset Virtual address format (24bits) 4 bits 3 Frame # Unused 1 V Page table entry (8bit) Vaddr: 0x0703FE Paddr: 0x3FE Vaddr: 0x072370
Functions (API) Setup Functions
Functions (API) Some of the functions in the WiringPi library are designed to mimic those in the Arduino Wiring system. There are relatively easy to use and should present no problems for anyone used to
Procedures, Parameters, Values and Variables. Steven R. Bagley
Procedures, Parameters, Values and Variables Steven R. Bagley Recap A Program is a sequence of statements (instructions) Statements executed one-by-one in order Unless it is changed by the programmer e.g.
ECE 264 Exam 2. 6:30-7:30PM, March 9, You must sign here. Otherwise you will receive a 1-point penalty.
ECE 264 Exam 2 6:30-7:30PM, March 9, 2011 I certify that I will not receive nor provide aid to any other student for this exam. Signature: You must sign here. Otherwise you will receive a 1-point penalty.
Concurrent Programming. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Concurrent Programming Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Echo Server Revisited int main (int argc, char *argv[]) {... listenfd = socket(af_inet,
Basic OS Progamming Abstrac2ons
Basic OS Progamming Abstrac2ons Don Porter Recap We ve introduced the idea of a process as a container for a running program And we ve discussed the hardware- level mechanisms to transi2on between the
ECEN 449 Microprocessor System Design. Review of C Programming. Texas A&M University
ECEN 449 Microprocessor System Design Review of C Programming 1 Objectives of this Lecture Unit Review C programming basics Refresh programming skills 2 Basic C program structure # include main()
Signals. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Signals Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Multitasking (1) Programmer s model of multitasking fork() spawns new process Called once,
More on C programming
Applied mechatronics More on C programming Sven Gestegård Robertz sven.robertz@cs.lth.se Department of Computer Science, Lund University 2017 Outline 1 Pointers and structs 2 On number representation Hexadecimal
CSE 333 SECTION 8. Sockets, Network Programming
CSE 333 SECTION 8 Sockets, Network Programming Overview Domain Name Service (DNS) Client side network programming steps and calls Server side network programming steps and calls dig and ncat tools Network
Shared Memory Memory mapped files
Shared Memory Memory mapped files 1 Shared Memory Introduction Creating a Shared Memory Segment Shared Memory Control Shared Memory Operations Using a File as Shared Memory 2 Introduction Shared memory
Bit Manipulation in C
Bit Manipulation in C Bit Manipulation in C C provides six bitwise operators for bit manipulation. These operators act on integral operands (char, short, int and long) represented as a string of binary
Inter-Process Communication. Disclaimer: some slides are adopted from the book authors slides with permission 1
Inter-Process Communication Disclaimer: some slides are adopted from the book authors slides with permission 1 Today Inter-Process Communication (IPC) What is it? What IPC mechanisms are available? 2 Inter-Process
Discussion of Assignments 2. Line buffered vs. full buffered I/O. Some often encountered issues in the submissions.
3 4 Discussion of Assignment 1 Discussion of Assignments 1 and 2 Accompanying Tutorial to Operating Systems Course Alexander Holupirek, Stefan Klinger Database and Information Systems Group Department
Contents. Programming Assignment 0 review & NOTICE. File IO & File IO exercise. What will be next project?
File I/O Prof. Jin-Soo Kim(jinsookim@skku.edu) TA - Dong-Yun Lee(dylee@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Contents Programming Assignment 0 review & NOTICE
TIP675-SW-82. Linux Device Driver. 48 TTL I/O Lines with Interrupts Version 1.2.x. User Manual. Issue November 2013
The Embedded I/O Company TIP675-SW-82 Linux Device Driver 48 TTL I/O Lines with Interrupts Version 1.2.x User Manual Issue 1.2.5 November 2013 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany
Processes often need to communicate. CSCB09: Software Tools and Systems Programming. Solution: Pipes. Recall: I/O mechanisms in C
2017-03-06 Processes often need to communicate CSCB09: Software Tools and Systems Programming E.g. consider a shell pipeline: ps wc l ps needs to send its output to wc E.g. the different worker processes
How do we define pointers? Memory allocation. Syntax. Notes. Pointers to variables. Pointers to structures. Pointers to functions. Notes.
, 1 / 33, Summer 2010 Department of Computer Science and Engineering York University Toronto June 15, 2010 Table of contents, 2 / 33 1 2 3 Exam, 4 / 33 You did well Standard input processing Testing Debugging
PROGRAMMAZIONE I A.A. 2017/2018
PROGRAMMAZIONE I A.A. 2017/2018 FUNCTIONS INTRODUCTION AND MAIN All the instructions of a C program are contained in functions. üc is a procedural language üeach function performs a certain task A special
OPTO32A 24 Input Bit, 8 Output Bit Optical Isolator Board
OPTO32A 24 Input Bit, 8 Output Bit Optical Isolator Board PMC-OPTO32A Linux Device Driver User Manual Manual Revision: July 15, 2005 General Standards Corporation 8302A Whitesburg Drive Huntsville, AL
Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems
Programs CSCI 4061 Introduction to Operating Systems C Program Structure Libraries and header files Compiling and building programs Executing and debugging Instructor: Abhishek Chandra Assume familiarity
Signals, Synchronization. CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han
, Synchronization CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han Announcements Program Assignment #1 due Tuesday Feb. 15 at 11:55 pm TA will explain parts b-d in recitation Read chapters 7 and
Data Communication and Synchronization
Software Development Kit for Multicore Acceleration Version 3.0 Data Communication and Synchronization for Cell Programmer s Guide and API Reference Version 1.0 DRAFT SC33-8407-00 Software Development
COSC Operating Systems Design, Fall Lecture Note: Unnamed Pipe and Shared Memory. Unnamed Pipes
COSC4740-01 Operating Systems Design, Fall 2001 Lecture Note: Unnamed Pipe and Shared Memory Unnamed Pipes Pipes are a form of Inter-Process Communication (IPC) implemented on Unix and Linux variants.
Announcement (1) Due date for PA3 is changed (~ next week) PA4 will also be started in the next class. Not submitted. Not scored
Announcement (1) Due date for PA3 is changed (~ next week) PA4 will also be started in the next class Not submitted Not scored 1 Concurrent Programming Prof. Jin-Soo Kim( jinsookim@skku.edu) TA Sanghoon
CSci 4061 Introduction to Operating Systems. IPC: Basics, Pipes
CSci 4061 Introduction to Operating Systems IPC: Basics, Pipes Communication IPC in Unix Pipes: most basic form of IPC in Unix process-process ps u jon grep tcsh // what happens? Pipe has a read-end (receive)
PLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science
PLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science AUGUST 2011 EXAMINATIONS CSC 209H1Y Instructor: Daniel Zingaro Duration three hours PLEASE HAND IN Examination Aids: one two-sided 8.5x11
Naked C Lecture 6. File Operations and System Calls
Naked C Lecture 6 File Operations and System Calls 20 August 2012 Libc and Linking Libc is the standard C library Provides most of the basic functionality that we've been using String functions, fork,
Operating Systems 2230
Operating Systems 2230 Computer Science & Software Engineering Lecture 4: Operating System Services All operating systems provide service points through which a general application program may request
Effec%ve So*ware. Lecture 6: Non-blocking I/O, C10K, efficient networking. David Šišlák
Effec%ve So*ware Lecture 6: Non-blocking I/O, C10K, efficient networking David Šišlák david.sislak@fel.cvut.cz Network Communica%on OSI Model 10 th April 2017 ESW Lecture 6 2 Network Communica%on HTTP
Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto
Ricardo Rocha Department of Computer Science Faculty of Sciences University of Porto Adapted from the slides Revisões sobre Programação em C, Sérgio Crisóstomo Compilation #include int main()
Lecture 5 Overview! Last Lecture! This Lecture! Next Lecture! I/O multiplexing! Source: Chapter 6 of Stevens book!
Lecture 5 Overview! Last Lecture! I/O multiplexing! Source: Chapter 6 of Stevens book! This Lecture! Socket options! Source: Chapter 7 of Stevens book! Elementary UDP sockets! Source: Chapter 8 of Stevens
Processes (Intro) Yannis Smaragdakis, U. Athens
Processes (Intro) Yannis Smaragdakis, U. Athens Process: CPU Virtualization Process = Program, instantiated has memory, code, current state What kind of memory do we have? registers + address space Let's
Project 1 System Calls
Project 1 System Calls Introduction In this project, you will become familiar with: 1. Using the xv6 Makefile 2. Using conditional compilation. 3. The xv6 system call invocation path. 4. Implementing a
System Programming. Introduction to Unix
Content : by Dr. B. Boufama School of Computer Science University of Windsor Instructor: Dr. A. Habed adlane@cs.uwindsor.ca http://cs.uwindsor.ca/ adlane/60-256 Content Content 1 Introduction 2 3 Introduction
Secure Software Programming and Vulnerability Analysis
Secure Software Programming and Vulnerability Analysis Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Heap Buffer Overflows and Format String Vulnerabilities Secure Software
CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, FALL 2012
CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, FALL 2012 TOPICS TODAY Project 5 Pointer Basics Pointers and Arrays Pointers and Strings POINTER BASICS Java Reference In Java,
Lesson #8. Structures Linked Lists Command Line Arguments
Lesson #8 Structures Linked Lists Command Line Arguments Introduction to Structures Suppose we want to represent an atomic element. It contains multiple features that are of different types. So a single