Signal Example 1. Signal Example 2
|
|
- Kory Horn
- 6 years ago
- Views:
Transcription
1 Signal Example 1 #include <stdio.h> #include <signal.h> 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); for(i = 0; i < ; i++); [fgsong@pegasus signal]$./signal_1 *The function pointer can be a constant: SIGIGN: process ignores the signal Note: SIGKILL cannot be ignored! SIGDFL: process switches to the default signal handler. typedef void (*sighandler_t)(int); 19 Signal Example 2 #include <stdio.h> #include <stdlib.h> #include <signal.h> long i; void ctrl_c_handler(int tmp) { printf("you typed CTL-C, i = %ld\n", i); void ctrl_slash_handler(int tmp) { printf("you typed CTL-\\, i = %ld\n", i); [fgsong@pegasus signal]$./signal_2 ^CYou typed CTL-C, i = ^\You typed CTL-\, i = ^CYou typed CTL-C, i = ^\You typed CTL-\, i = ^CYou typed CTL-C, i = ^\You typed CTL-\, i = int main(int argc, char* argv[]) { signal(sigint, ctrl_c_handler); signal(sigquit, ctrl_slash_handler); for(i = 0; i < ; i++); exit(0); 20 1
2 alarm unsigned int alarm (unsigned int seconds); It arranges a SIGALRM signal to be delivered to the calling process in seconds seconds. If = 0 second? No new alarm is scheduled. Suppose you can provide an alarm signal handler, you can catch the signal, and do whatever you want to do. Q: If you don t provide an alarm signal handler, what would happen? 21 Example of using alarm() #include <stdio.h> #include <signal.h> #include <unistd.h> int seconds; void alarm_handler(int dummy) { ++seconds; printf("%d seconds has passed\n", seconds); alarm(1); int main(int argc, char* argv[]) { int i; signal(sigalrm, alarm_handler); alarm(1); for(i = 0; i < ; i++); return 0; [fgsong@pegasus signal]$./alarm 1 seconds has passed 2 seconds has passed 3 seconds has passed 4 seconds has passed 5 seconds has passed 6 seconds has passed 7 seconds has passed 8 seconds has passed 9 seconds has passed Q1: what would happen if removing alarm()? Q2: add while(1) after alarm(1), what would happen? Why? Q3: add your own signal handler to SIGINT, can CTRL-C be handled? 22 2
3 Discussions on Signal (a lot of info) On some systems, when you are inside a signal handler, you cannot process that same signal again until the handler returns. On other systems, maybe you can. On Linux, we cannot process the same signal again. e.g., Alarm handler, CTRL-C handler. But, you can handle signals B, C, and D if you are still in A s signal handler. Signals are generated from difference places: From keyboard stroke, e.g., CTRL-C From hardware conditions, e.g., div by 0 From processes. e.g., the kill function (one process sends a signal to another process if privileged) int kill(pid_t pid, int sig) From software conditions like SIGPIPE and SIGALARM Execvp() will reset signal handlers to the default behavior When a signal arrives: the running process is interrupted, the current registers are saved, the signal handler is invoked. When a child dies, it sends a SIGCHLD signal to its parent. Parent can use wait() to check its status. signal (SIGCHLD, SIG_IGN); // ignore the signal (already by default) 23 Shared Memory (shm) Shared Memory is the fastest IPC method We talked about the message passing model Pro: After a shared memory region is set up, there is no kernel overhead. no system call overhead! no context switch (user<->kernel<->user)! Processes will communicate by reading or writing data from/to the shared memory region. Users must make sure they do not write to the same address at the same time. Nevertheless, 1st thing to do is to establish the shared memory. 24 3
4 How Shared Memory Works? Each process has its own address space. It is a virtual space, separated from other processes The virtual space will be mapped to the physical memory by the OS. Process 1 address space: 0 x 1M Bytes Block Process 2 AS: 0 n Physical Memory y n-1 1M Bytes Block 25 System V Shared Memory int shmget(key_t key, size_t size, int shmflg); //see next slide Get or create a new shared memory, with size equal to size round up to a multiple of PAGE_SIZE. Return value: ID of the shared memory associated with key. void* shmat(int shmid, const void* shmaddr, int shmflg); Attach the shared memory segment (i.e., shmid) to the address space of the calling process. If shmaddr == NULL, the OS will choose an unused address to attach the memory segment (preferred, portable) You may specify a suitable address yourself (not portable!). Return value: Address of the attached memory on success; OR -1 on errors. void* shmdt(const void* shmaddr); //detach shm from the calling process int shmctl(int shmid, int cmd, struct shmid_ds *buf) //mark to delete! To delete a shared memory segment (cmd = IPC_RMID). Will wait until the last process detaches from the shm. Warning: the shared memory segment may be attached at distinct addresses in different processes. 26 4
5 int shmget(key_t key, size_t size, int shmflg); shmget() returns the ID of the shared memory segment associated with the value of the argument key. A new shared memory segment, with size equal to the value of size rounded up to a multiple of PAGE_SIZE, is created Using the flag of IPC_CREAT: To create a new segment. If this flag is not used, then shmget() will find the segment associated with key and check to see if the user has permission to access the segment. 27 Shared Memory Example Look at the code: shm.c Parent writes a message to a common area Child reads the message from the common area 28 5
6 POSIX Shared Memory Typical operations: Process A first creates a shm object shm_fd = shm_open(name, O_CREAT O_RDWR, 0666); Also can open an existing segment //just like open a file Set the size of the shm object ftruncate(shm_fd, 4096); Memory map the shm object into the address space of the current process ptr = mmap(null, 4096, PROT_WRITE, MAP_SHARED, shm_fd, 0); Now the process could write to the shared memory sprintf(ptr, "Writing to shared memory"); Note: Take a look at the example in the textbook (Chapter 3). 6
7 POSIX Memory Mapping #include <sys/mman.h> void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off); Memory map a file Establish a mapping between the address space of the process to the memory object represented by the file descriptor off len File fd Memory addr 3 1 Unix Domain Sockets A socket is a two-way communication pipe. It has two end points. We use Unix Domain Sockets to do IPC for processes on the same system. You should have used Internet sockets Socket = IP address + port# Internally it is implemented as a special file in the file system. How to use it? Create a server and a client Server: Listens to incoming connections from all clients 32 7
8 How to Become a Server 1) Call socket(): int s = socket(af_unix, SOCK_STREAM, 0); //create a new endpoint intended for communication 2) Call bind(): struct sockaddr_un local_addr; local_addr.sun_family = AF_UNIX; strcpy(local_addr.sun_path, /home/fgsong/tmp_socket ); unlink(local_addr.sun_path); bind(s, (struct sockaddr*) &local_addr, sizeof(local_addr); //bind a name to the socket 3) Call listen(): listen(s, 8); //server socket. 4) Call accept() struct sockaddr_unremote_addr; int length = sizeof(remote_addr); Extracts the first connection request on the queue of pending connections for the listening socket, s, creates a new connected socket, and returns a new file descriptor referring to that socket. The newly created socket is not in the listening state. The original socket s is unaffected by this call. int s2 = accept(s, &remote_addr, &length); Note: s2 is a new socket and is ready to send and receive. 5) A while loop to call recv() and send() via new socket s2 while (!done) { recv(s2, &buf, len, 0); send(s2, &buf, len, 0); 33 1) Call socket() How to Become a Client int s = socket(af_unix, SOCK_STREAM, 0); 2) Call connect() sockaddr_un server_addr; server_addr.sun_family = AF_UNIX; strcpy(server_addr.sun_path, /home/fgsong/tmp_socket ); connect(s, (struct sockaddr*) &server_addr, sizeof(server_addr)); 3) A loop to call send() and receive() while (!done) { recv(s, &buf, len, 0); send(s, &buf, len, 0); 34 8
9 Revisit: Pipes (1/2) Pipe acts as a channel that allows two processes to communicate You have been using it in Lab 2 Questions: Is communication unidirectional or bidirectional? Is it half- or full-duplex? Does it require a relationship between the communicating processes? Can the pipes be used over a network? Revisit: Pipes (2/2) Allow communication in standard producer-consumer style. Producer writes to one end (i.e., the write-end of the pipe) Consumer reads from the other end (i.e., the read-end of the pipe) Require parent-child relationship between communicating processes It is also called unnamed pipes. Reading end Writing end 9
10 Also known as FIFO. Named Pipes More powerful than ordinary pipes Communication can be bidirectional No parent-child relationship is necessary between the communicating processes Multiple processes can use the named pipe for communication Provided on both UNIX and Windows systems e.g., $mkfifo named_pipe $ls -l >> named_pipe $cat < named_pipe //run the command in another terminal Remote Procedure Call (RPC) RPC provides a way to offer procedure-call mechanism between processes on a network A client invokes a procedure on a server, just like it invokes a local procedure. Supported by stubs The Client Stub locates the server, marshalls the parameters, send them to server, wait, unmarshall the replies. (auto generated code) The Server Stub receives this message, unmarshalls parameters, and performs the procedure on the server. (auto generated code) Remote communication may fail Local procedure calls never fails. RPC can be retried multiple times! OS typically provides a matchmaker service to connect client and server 38 10
11 39 Summary Two IPC Models Five IPC mechanisms: Signal, Shm, Unix Domain Socket, Pipe, and RPC Run the code yourself Lab 3 will need Unix Socket and Shm Next lecture: Start to investigate Threads 41 11
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
More informationCOSC 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.
More informationOS Lab Tutorial 1. Spawning processes Shared memory
OS Lab Tutorial 1 Spawning processes Shared memory The Spawn exec() family fork() The exec() Functions: Out with the old, in with the new The exec() functions all replace the current program running within
More informationInter-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
More informationShared Memory. By Oren Kalinsky
Shared Memory By Oren Kalinsky 1 Overview Shared memory (SHM) - two or more processes can share a given region of memory A form of Inter Process Communication (IPC) Other IPC methods pipes, message queues
More information경희대학교컴퓨터공학과 조진성. UNIX System Programming
Inter-Process Communication 경희대학교컴퓨터공학과 조진성 UNIX System Programming Inter-Process Communication n Mechanisms for processes to communicate with each other n UNIX IPC ü pipes ü FIFOs ü message queue ü shared
More informationProcesses. 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 informationCS 345 Operating Systems. Tutorial 2: Treasure Room Simulation Threads, Shared Memory, Synchronization
CS 345 Operating Systems Tutorial 2: Treasure Room Simulation Threads, Shared Memory, Synchronization Assignment 2 We have a treasure room, Team A and Team B. Treasure room has N coins inside. Each team
More informationECE 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
More informationOperating Systems. No. 5 ศร ณย อ นทโกส ม Sarun Intakosum
Operating Systems No. 5 ศร ณย อ นทโกส ม Sarun Intakosum 1 Interprocess Communication (IPC) 2 Interprocess Communication Processes within a system may be independent or cooperating Cooperating process can
More informationW4118 Operating Systems. Junfeng Yang
W4118 Operating Systems Junfeng Yang What is a process? Outline Process dispatching Common process operations Inter-process Communication What is a process Program in execution virtual CPU Process: an
More informationProcesses and Threads
Process Processes and Threads A process is an abstraction that represent an executing program A program in execution An instance of a program running on a computer The entity that can be assigned to and
More informationCS 550 Operating Systems Spring Inter Process Communication
CS 550 Operating Systems Spring 2019 Inter Process Communication 1 Question? How processes communicate with each other? 2 Some simple forms of IPC Parent-child Command-line arguments, wait( ), waitpid(
More informationCSCI 4061: Virtual Memory
1 CSCI 4061: Virtual Memory Chris Kauffman Last Updated: Thu Dec 7 12:52:03 CST 2017 2 Logistics: End Game Date Lecture Outside Mon 12/04 Lab 13: Sockets Tue 12/05 Sockets Thu 12/07 Virtual Memory Mon
More informationStart of Lecture on January 20, Chapter 3: Processes
Start of Lecture on January 20, 2014 1 Reminders Exercise 1 is due in the morning before class on Wed Don t forget about Assignment 1 What are your questions or comments? 2 Shared memory versus Message
More informationSystem Programming. Signals I
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 Signals
More informationWorkshop on Inter Process Communication Solutions
Solutions 1 Background Threads can share information with each other quite easily (if they belong to the same process), since they share the same memory space. But processes have totally isolated memory
More informationProcesses COMPSCI 386
Processes COMPSCI 386 Elements of a Process A process is a program in execution. Distinct processes may be created from the same program, but they are separate execution sequences. call stack heap STACK
More informationMemory management. Single process. Multiple processes. How to: All memory assigned to the process Addresses defined at compile time
Memory management Single process All memory assigned to the process Addresses defined at compile time Multiple processes. How to: assign memory manage addresses? manage relocation? manage program grow?
More informationOperating systems. Lecture 9
Operating systems. Lecture 9 Michał Goliński 2018-11-27 Introduction Recall Reading and writing wiles in the C/C++ standard libraries System calls managing processes (fork, exec etc.) Plan for today fork
More informationInterprocess Communication Mechanisms
Interprocess Communication 1 Interprocess Communication Mechanisms shared storage shared virtual memory shared files message-based sockets pipes signals Interprocess Communication 2 Message Passing Indirect
More informationInterprocess Communication Mechanisms
Interprocess Communication 1 Interprocess Communication Mechanisms shared storage shared virtual memory shared files message-based sockets pipes signals... Interprocess Communication 2 Message Passing
More informationFile Descriptors and Piping
File Descriptors and Piping CSC209: Software Tools and Systems Programming Furkan Alaca & Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Week 8 Today s topics File Descriptors
More informationPrinceton University. Computer Science 217: Introduction to Programming Systems. Signals
Princeton University Computer Science 217: Introduction to Programming Systems Signals 1 Goals of this Lecture Help you learn about: Sending signals Handling signals and thereby How the OS exposes the
More informationInter Process Communication
Inter Process Communication, Modified by M.Rebaudengo - 2013 Silberschatz, Galvin and Gagne 2009 Independent vs. cooperating processes A process is independent if it cannot be affected by the other processes
More informationPrepared by Prof. Hui Jiang (COSC3221) 2/9/2007
1 * * ' &% $ # " "! 4 ' Prepared by Prof Hui Jiang COSC1 /9/007 / 0 How CPU is used? Users run programs in CPU In a multiprogramming system a CPU always has several jobs to run How to define a CPU job?
More informationSignals. 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 informationCSci 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 informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2019 Lecture 6 Processes Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Fork( ) causes a branch
More informationInter-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
More informationInterprocess Communication
Interprocess Communication Reading: Silberschatz chapter 4 Additional Reading: Stallings chapter 6 EEL 358 1 Outline Introduction Shared memory systems POSIX shared memory Message passing systems Direct
More informationInterprocess 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
More informationSignals. Goals of this Lecture. Help you learn about: Sending signals Handling signals
Signals 1 Goals of this Lecture Help you learn about: Sending signals Handling signals and thereby How the OS exposes the occurrence of some exceptions to application processes How application processes
More informationCSE 333 SECTION 3. POSIX I/O Functions
CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight Exercise 7 due Monday (out later today) POSIX Portable Operating System Interface Family of standards specified by the
More informationCS240: Programming in C
CS240: Programming in C Lecture 17: Processes, Pipes, and Signals Cristina Nita-Rotaru Lecture 17/ Fall 2013 1 Processes in UNIX UNIX identifies processes via a unique Process ID Each process also knows
More informationSignals, 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
More informationCOMP 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
More informationINTER-PROCESS COMMUNICATION. UNIX Programming 2015 Fall by Euiseong Seo
INTER-PROCESS COMMUNICATION UNIX Programming 2015 Fall by Euiseong Seo Named Pipes Anonymous pipes can be used only between related processes Processes not from the same ancestor sometimes need to communicate
More informationOperating Systems. VI. Threads. Eurecom. Processes and Threads Multithreading Models
Operating Systems VI. Threads Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline 2/36 Fall 2017 Institut Mines-Telecom Operating Systems
More informationCOMP 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 informationShell and Signals. Computer Organization 3/17/2015. CSC252 - Spring The World of Multiprogramming or Multitasking. Unix Process Hierarchy
Shell and Signals Kai Shen The World of Multiprogramming or Multitasking System runs many processes concurrently Process: executing program State includes memory image + register values + program counter
More informationProcess. Signal #8. Signals are software interrupts from unexpected events. a power failure. an alarm clock. the death of a child process
Linux/UNIX Programming 문양세강원대학교 IT특성화대학컴퓨터과학전공 Signals Signals are software interrupts from unexpected events an illegal operation (e.g., divide by 0) a power failure an alarm clock the death of a child
More informationDept. of CS, York Univ. 1
!#"$%&%!'()(* +-,/.)0 132547698;:9: =@?A#B;C5DCFEHGFIKJMLHNPOIQCFERG5S How CPU is used? Users run programs in CPU In a multiprogramming system, a CPU always has several jobs running together. How to
More informationChapter 3: Processes
Operating Systems Chapter 3: Processes Silberschatz, Galvin and Gagne 2009 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication (IPC) Examples of IPC
More informationInterprocess Communication Mechanisms
Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name
More informationCSI Module 2: Processes
CSI3131 - Module 2: es Reading: Chapter 3 (Silberchatz) Objective: To understand the nature of processes including the following concepts: states, the PCB (process control block), and process switching.
More informationInterprocess Communication Mechanisms
Interprocess Communication 1 Interprocess Communication Mechanisms ffl shared storage These mechanisms have already been covered. examples: Λ shared virtual memory Λ shared files processes must agree on
More informationIMPLEMENTATION OF SIGNAL HANDLING. CS124 Operating Systems Fall , Lecture 15
IMPLEMENTATION OF SIGNAL HANDLING CS124 Operating Systems Fall 2017-2018, Lecture 15 2 Signal Handling UNIX operating systems allow es to register for and handle signals Provides exceptional control flow
More informationSystem Calls & Signals. CS449 Spring 2016
System Calls & Signals CS449 Spring 2016 Operating system OS a layer of software interposed between the application program and the hardware Application programs Operating system Processor Main memory
More informationProcesses & Signals. System Runs Many Processes Concurrently. State consists of memory image + register values + program counter
Processes & Signals Topics Process Hierarchy Shells Signals The World of Multitasking System Runs Many Processes Concurrently Process: executing program State consists of memory image + register values
More informationInterprocess Communication Mechanisms
Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name
More informationshared storage These mechanisms have already been covered. examples: shared virtual memory message based signals
Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name
More informationCS213. Exceptional Control Flow Part II. Topics Process Hierarchy Signals
CS213 Exceptional Control Flow Part II Topics Process Hierarchy Signals ECF Exists at All Levels of a System Exceptions Hardware and operating system kernel software Concurrent processes Hardware timer
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2019 Lecture 5 Processes Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Where does the parent process
More informationKilling 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,
More informationOperating Systems 2010/2011
Operating Systems 2010/2011 Signals Johan Lukkien 1 Signals A signal is a software generated event notification of state change encapsulation of physical event usually: sent from a process to a process
More informationCS345 Opera,ng Systems. Φροντιστήριο Άσκησης 2
CS345 Opera,ng Systems Φροντιστήριο Άσκησης 2 Inter- process communica0on Exchange data among processes Methods Signals Pipes Sockets Shared Memory Sockets Endpoint of communica,on link between two programs
More informationChapter 3: Processes. Operating System Concepts Essentials 8 th Edition
Chapter 3: Processes Silberschatz, Galvin and Gagne 2011 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication
More informationSystem Programming. Signals II
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 Suspending a process 2
More informationCSE 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 informationProcess. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University
Operating Systems (Fall/Winter 2018) Process Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review System calls implementation
More informationGoals of this Lecture
Signals 1 Goals of this Lecture Help you learn about: Sending signals Handling signals and thereby How the OS exposes the occurrence of some exceptions to application processes How application processes
More informationMemory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length)
File Systems 38 Memory-Mapped Files generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length) mmap call returns the virtual address to which the file is mapped munmap call unmaps
More informationLab 09 - Virtual Memory
Lab 09 - Virtual Memory Due: November 19, 2017 at 4:00pm 1 mmapcopy 1 1.1 Introduction 1 1.1.1 A door predicament 1 1.1.2 Concepts and Functions 2 1.2 Assignment 3 1.2.1 mmap copy 3 1.2.2 Tips 3 1.2.3
More informationMultitasking. Programmer s model of multitasking. fork() spawns new process. exit() terminates own process
Signals Prof. Jin-Soo Kim( jinsookim@skku.edu) TA JinHong Kim( jinhong.kim@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Multitasking Programmer s model of multitasking
More informationOperating Systems. Processes. Eno Thereska
Operating Systems Processes Eno Thereska e.thereska@imperial.ac.uk http://www.imperial.ac.uk/computing/current-students/courses/211/ Partly based on slides from Julie McCann and Cristian Cadar Administrativia
More informationSignals. Joseph Cordina
1 Signals Signals are software interrupts that give us a way to handle asynchronous events. Signals can be received by or sent to any existing process. It provides a flexible way to stop execution of a
More informationInter Process Communication (IPC) Giorgio Richelli
Inter Process Communication (IPC) Contents Introduction Universal IPC Facilities System V IPC Introduction The purposes of IPC: Data transfer Sharing data Event notification Resource sharing Process control
More informationSystem Calls and Signals: Communication with the OS. System Call. strace./hello. Kernel. Context Switch
System Calls and Signals: Communication with the OS Jonathan Misurda jmisurda@cs.pitt.edu System Call An operation (function) that an OS provides for running applications to use CS 1550 2077 strace./hello
More informationLesson 3. The func procedure allows a user to choose the action upon receipt of a signal.
Lesson 3 Signals: When a process terminates abnormally, it usually tries to send a signal indicating what went wrong. C programs can trap these for diagnostics. Software interrupts: Stop executing the
More informationMMAP AND PIPE. UNIX Programming 2015 Fall by Euiseong Seo
MMAP AND PIPE UNIX Programming 2015 Fall by Euiseong Seo Memory Mapping mmap(2) system call allows mapping of a file into process address space Instead of using read() and write(), just write to memory
More informationCOP 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 informationCOP 4610: Introduction to Operating Systems (Spring 2014) Chapter 3: Process. Zhi Wang Florida State University
COP 4610: Introduction to Operating Systems (Spring 2014) Chapter 3: Process Zhi Wang Florida State University Contents Process concept Process scheduling Operations on processes Inter-process communication
More informationLecture 24: Multitasking and Signals
CSCI-UA.0201-003 Computer Systems Organization Lecture 24: Multitasking and Signals Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com Some slides adapted (and slightly modified) from: Clark
More informationLight-Weight Processes: Dissecting Linux Threads
Operating Systems (Fall/Winter 2018) Light-Weight Processes: Dissecting Linux Threads Yajin Zhou (http://yajin.org) Zhejiang University source: https://opensourceforu.com/2011/08/light-weight-processes-dissecting-linux-threads/
More informationComputer Systems Assignment 2: Fork and Threads Package
Autumn Term 2018 Distributed Computing Computer Systems Assignment 2: Fork and Threads Package Assigned on: October 5, 2018 Due by: October 12, 2018 1 Understanding fork() and exec() Creating new processes
More informationInter-Process Communication: Message Passing. Thomas Plagemann. Big Picture. message passing communication?
Inter-Process Communication: Message Passing Thomas Plagemann With slides from Pål Halvorsen, Kai Li, and Andrew S. Tanenbaum monitors sleep and wakeup critical regions Big Picture race conditions shared
More informationOperating 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
More informationContents. 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)
More informationPart II Processes and Threads Process Basics
Part II Processes and Threads Process Basics Fall 2017 Program testing can be used to show the presence of bugs, but never to show their absence 1 Edsger W. Dijkstra From Compilation to Execution A compiler
More informationOperating Systems 2010/2011
Operating Systems 2010/2011 Processes Johan Lukkien 1 Agenda Processes, threads API for creation and termination POSIX Processes Implementation aspects Communication and Synchronization Shared Memory Message
More informationPROCESS CONCEPTS. Process Concept Relationship to a Program What is a Process? Process Lifecycle Process Management Inter-Process Communication 2.
[03] PROCESSES 1. 1 OUTLINE Process Concept Relationship to a Program What is a Process? Process Lifecycle Creation Termination Blocking Process Management Process Control Blocks Context Switching Threads
More informationNETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science
NETWORK PROGRAMMING CSC- 341 25 Instructor: Junaid Tariq, Lecturer, Department of Computer Science 26 9 Lecture Sockets as means for inter-process communication (IPC) application layer Client Process Socket
More informationCSE 333 SECTION 3. POSIX I/O Functions
CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight HW2 Due Thursday, July 19 th Midterm on Monday, July 23 th 10:50-11:50 in TBD (And regular exercises in between) POSIX
More informationCSE 410: Computer Systems Spring Processes. John Zahorjan Allen Center 534
CSE 410: Computer Systems Spring 2018 Processes John Zahorjan zahorjan@cs.washington.edu Allen Center 534 1. What is a process? Processes 2. What's the process namespace? 3. How are processes represented
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 18
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2018 Lecture 18 LAST TIME: OVERVIEW Expanded on our process abstraction A special control process manages all other processes Uses the same process abstraction
More informationLab 5: Inter-Process Communication
1. Objective Lab 5: Inter-Process Communication Study the inter-process communication 2. Syllabus Understanding the concepts and principle of inter-process communication Implementing the inter-process
More information#include <sys/types.h> #include <sys/wait.h> pid_t wait(int *stat_loc); pid_t waitpid(pid_t pid, int *stat_loc, int options);
pid_t fork(void); #include pid_t wait(int *stat_loc); pid_t waitpid(pid_t pid, int *stat_loc, int options); char **environ; int execl(const char *path, const char *arg0,..., (char *)0); int
More informationChapter 3: Processes. Operating System Concepts 8 th Edition,
Chapter 3: Processes, Silberschatz, Galvin and Gagne 2009 Outline Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication in Client-Server
More informationPrepared 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
More informationKING FAHD UNIVERSITY OF PETROLEUM AND MINERALS Information and Computer Science Department ICS 431 Operating Systems Lab # 6
Objective: KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS Information and Computer Science Department ICS 431 Operating Systems Lab # 6 Inter-Process Communication (IPC) using Signals Now that we know
More informationProcess. Prepared by Prof. Hui Jiang Dept. of EECS, York Univ. 1. Process in Memory (I) PROCESS. Process. How OS manages CPU usage? No.
EECS3221.3 Operating System Fundamentals No.2 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 programs
More informationShared Memory (8A) Shared Memory
Shared Memory (8A) Shared Memory Copyright (c) 2012 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationProgramming Assignments will be.. All the PAs are continuous 3 major factors that you should consider
Signals Prof. Jin-Soo Kim( jinsookim@skku.edu) TA - Dong-Yun Lee (dylee@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu NOTICE Programming Assignments will be.. All
More informationConcurrent Processes. CS 475, Spring 2018 Concurrent & Distributed Systems
Concurrent Processes CS 475, Spring 2018 Concurrent & Distributed Systems Review: Process Representation A process has some mapping into the physical machine (machine state) Provide two key abstractions
More informationIntroduction. Interprocess communication. Terminology. Shared Memory versus Message Passing
Introduction Interprocess communication Cooperating processes need to exchange information, as well as synchronize with each other, to perform their collective task(s). The primitives discussed earlier
More informationLecture 8: Inter-process Communication. Lecturer: Prof. Zichen Xu
Lecture 8: Inter-process Communication Lecturer: Prof. Zichen Xu 1 Outline Unix IPC and Synchronization Pipe Message Semaphore Shared Memory Signals 2 Pipes and FIFOs Pipe: a circular buffer of fixed size
More informationOperating Systemss and Multicore Programming (1DT089)
Operating Systemss and Multicore Programming (1DT089) Problem Set 1 - Tutorial January 2013 Uppsala University karl.marklund@it.uu.se pointers.c Programming with pointers The init() functions is similar
More informationComputer Science 330 Operating Systems Siena College Spring Lab 5: Unix Systems Programming Due: 4:00 PM, Wednesday, February 29, 2012
Computer Science 330 Operating Systems Siena College Spring 2012 Lab 5: Unix Systems Programming Due: 4:00 PM, Wednesday, February 29, 2012 Quote: UNIX system calls, reading about those can be about as
More informationOperating Systems 9/6/ SIGINT Terminate Interrupt from keyboard (ctl-c) 9 SIGKILL Terminate Kill program (cannot override or ignore)
Recap of the Last Class System Calls, Kernel Mode, and Process Implementation CS 256/456 Dept. of Computer Science, University of Rochester Processes Process concept Operations on processes Signals User-level
More information