2. Unix (signals) .. ", - (disk driver),.! - (signal),. #,, "" "". $ (pipes), $. % - : -. &, '& (SIGCHLD) -,
|
|
- Dwain Terence Rodgers
- 8 years ago
- Views:
Transcription
1 1! " - (disk driver)! - (signal) # "" "" $ (pipes) 2 Unix 21 (signals) $ % - : wait(&status); - & '& (SIGCHLD) - # ( <CTRL>+) <CTRL>+C SIGTSTP SIGTERM ( UNIX " # & <signalh> " # " & " # : / 1 SIGHUP Exit * 2 SIGINT Exit * ( DEL) 3 SIGQUIT Core + (
2 <CTRL>\) 4 SIGILL Core + (illegal instruction) 5 SIGTRAP Core + 6 SIGABRT Core * 7 SIGEMT Core + 8 SIGFPE Core ' 9 SIGKILL Exit 10 SIGBUS Core - 11 SIGSEGV Core + 12 SIGSYS Core 13 SIGPIPE Exit + 14 SIGALR M Exit ' 15 SIGTER Exit # ( <CTRL>C) M 16 SIGUSR1 Exit & ( 1) 17 SIGUSR2 Exit & ( 2) 18 SIGCHL Ignore # - D 19 SIGPWR Ignore 20 SIGWINC Ignore H 21 SIGURG Ignore / socket 22 SIGIO Exit E /// 23 SIGSTOP Stop 24 SIGTSTP Stop ( <CTRL>)) 25 SIGCON T Ignore & C : #include <signalh> + kill(): #include <sys/typesh> #include <signalh> int kill(pid_t pid int sig); pid sig " & kill()
3 : 0 kill(pid SIGSTOP); pid 0 kill() : #include <unistdh> int pause(void);! pause() " " C! " " 0 : (i) (ii) ( :! : int sigtype; int (*previous)() handler(); previous = signal(sigtype handler); handler sigtype 0 previous signal() ( restore) & <signalh> " : SIG_IGN (ignore) SIG_DFL / (default) & 4 : #0-12 Exit: 0 #0-12 Core: 0 core (
4 ) # core debugger adb UNIX #0-12 Stop: 0 #0-12 Ignore: # : 0 : signal(sigterm SIG_IGN); SIGTERM <CTRL>C : int (* oldterm)() onintr(); : oldterm = signal(sigterm onintr); : onintr() unlink(tempfile); exit(1); onintr SIGTERM & <CTRL>C onintr ( " tempfile unlink()) exit() # SIGKILL SIGSTOP * # $ : kill " - : #include <unistdh> unsigned alarm(unsigned sec); SIGALRM sec & + ()
5 & timeout # timeout ( ) # - SIGKILL alarm() + : timeout myprog file1 &! myprog file1 : /* timeout: */ #include <stdioh> #include <signalh> int pid; /* - */ main( int argc char *argv[] ) int sec=10 status onalarm(); /* */ if ( argc > 1 ) && (argv[1][0]== - ) sec = atoi(&argv[1][1]); argc-- argv++; if ( argc < 2 ) error( Usage: %s [-10] command argv[0]); /* - */ if ( (pid=fork()) == 0 ) /* - */ execv(argv[1] &argv[1]); error( execv %s failed argv[1]); /* SIGALRM onalarm */ signal(sigalrm onalarm);
6 /*! sec */ alarm(sec); /* " ( # ) *! # */ if ( wait(&status)==-1 (status & 0xFF)!=0 ) error( %s killed argv[1]); onalarm() /*! SIGALRM */ kill(pid SIGKILL); 22! UNIX Dijkstra + pause() 1 kill() V 3! 0 + " UNIX " 0 " 4 signal() pause() & / wait -1 - SIGCHLD 0 wait() 0 : 4 ( ) pause() " 0 : :
7 kill(pid ); pause(); : pause() 5 ( : previous = signal( onintr); if ( fork() == 0 ) else pause(); signal( previous); kill(pid ); wait(&status); : onintr() exit(1); & - UNIX ( ) 0 " UNIX " 23 " (pipes) standard UNIX (pipes) 0 - : ls wc ls wc standard (stdout) ls standard (stdin) wc 0! / # ( ) "
8 # " FIFO - : #include <unistdh> int pipe(int pd[2]); 0 pipe() pd[0] pd[1] pd pd[1] # pd[0] & pipe() - " fork() % ( 511) -! " write(pd[1] ) - A read(pd[0] ) " & & 11 " & 11 &" # 4096 bytes ( 5120 bytes) / write() 0 read() ( ) read() # # ( clse(pd[1])) End-offile (EOF) write() # SIGPIPE ( 531) : & main pd N - - ( ) () " standard " + - pd[0] pd[1] $ # " close() close(pd[1]) ; (: 6 ;) #define BUFSIZ 100 #define $ 10 /* # */
9 int pd[2]; main() int i n; char buf[bufsiz]; if ( pipe(pd) < 0 ) error( can t open pipe ); for (i=1; i<=n; i++) if ( fork() == 0 ) child(i); /* # */ close(pd[1]); /* % & */ printf( FATHER: I receied from children:\n\n ); while ( (n=read(pd[0] buf BUFSIZ)) > 0 ) write(1 buf n); /* 1=stdout */ close(pd[0]); child(int i) char buf[bufsiz]; close(pd[0]); /* % */ sprintf(buf 'ello from child %2d (pid=%5d)\n i getpid()); write(pd[1] buf strlen(buf)+1); close(pd[1]); exit(0); &( " : 0 - pipe() fork() - - M read() write()
10 ( ( pipe() * UNIX standard ( ) # 42 BSD sockets [BROW94] UNIX
11 3 Windows 31 $ (events) - 4 : # (synchronization events) (notification events) & mutexes - '& " 0 CreateEvent(): HANDLE CreateEvent( ); LPSECURITY_ATTRIBUTES lpeventattributes BOOL bmanualreset BOOL binitialstate LPCTSTR lpname 0 bmanualreset (TRUE FALSE ) 0 binitialstate # lpname handle GetLastError() ERROR_ALREADY_EXISTS 0 7 handle OpenEvent() lpname HANDLE OpenEvent( ); DWORD dwdesiredaccess BOOL binherithandle LPCTSTR lpname $ WaitForSingleObjec() # ( ( )
12 " 0 SetEvent() PulseEvent(): BOOL SetEvent(HANDLE hevent); BOOL PulseEvent(HANDLE hevent); 0 ( : $ # $! # $ # $! # & # # & 0 0 % SetEvent $ % % PulseEvent $ % - ResetEvent(): BOOL ResetEvent(HANDLE hevent); % CloseHandle() & #include <windowsh> #include <stdioh> HANDLE hevent; DWORD MyRoutine(int nthread)
13 int I; // ( 50 & for (I=0; I<50; I++) // hevent WaitForSingleObject(hEvent INFINITE); // printf("%d" nthread); //! hevent SetEvent(hEvent); return 0; main(void) HANDLE hthreads[5]; DWORD dwthreadid dwerror; int I; // hevent = CreateEvent(NULL FALSE TRUE NULL); // ) if (NULL == hevent) fprintf(stderr "Cannot create event Error %ld\n" (long)getlasterror()); exit(1); // 4 MyRoutine // *+1 for (I=0; I<sizeof(hThreads)/sizeof(HANDLE); I++) hthreads[i] = CreateThread(NULL 0 (LPTHREAD_START_ROUTINE)MyRoutine (LPVOID)(I+1) 0 &dwthreadid); //! if (NULL == hthreads[i])
14 dwerror = GetLastError(); fprintf(stderr "Error %ld creating thread\n" (long)dwerror); return 1; // MyRoutine 0 MyRoutine(0); // Handle // hthreads WaitForMultipleObjects(sizeof(hThreads)/sizeof(HANDLE) hthreads TRUE INFINITE); // % Handle hthreads for (I=0; I<sizeof(hThreads)/sizeof(HANDLE); I++) CloseHandle(hThreads[I]); // % CloseHandle(hEvent); return 0; & : (Pipes) * ' :! CreatePipe BOOL CreatePipe( PHANDLE hreadpipe PHANDLE hwritepipe
15 ); LPSECURITY_ATTRIBUTES lppipeattributes DWORD nsize " 0 ( NULL) buffers nsize==0 & handle ReadFile WriteFile (" ) % CloseHandle! ( ) - buffers 0 / + CreateNamedPipe CreateFile ConnectNamedPipe WaitNamedPipe ReadFile/WriteFile ReadFile/WriteFile DisconnectNamedPipe CloseHandle CloseHandle CreateNamedPipe - CreateNamedPipe 0 HANDLE CreateNamedPipe( LPCTSTR lpname DWORD dwopenmode DWORD dwpipemode DWORD nmaxinstances DWORD noutbuffersize DWORD ninbuffersize
16 ); DWORD ndefaulttimeout LPSECURITY_ATTRIBUTES lpsecurityattributes : lpname: # $ \\\pipe\%-& # «%-&» case insensitive dwopenmode: PIPE_ACCESS_DUPLEX ( ) PIPE_ACCESS_INBOUND ( ) PIPE_ACCESS_OUTBOUND ( ) dwpipemode: # ( / " bytes ) + CreateNamedPipe nmaxinstances: # + CreateNamedPipe noutbuffersize ninbuffersize: # buffers ndefaulttimeout: WaitNamedPipe + CreateNamedPipe lpsecurityattributes: 8 NULL handle ConnectNamedPipe $ ConnectNamedPipe BOOL ConnectNamedPipe( ); HANDLE hnamedpipe LPOVERLAPPED lpoverlapped & hnamedpipe handle ( CreateNamedPipe 0 lpoverlapped ConnectNamedPipe ( lpoverlapped NULL CreateFile CallNamedPipe ( ConnectNamedPipe ( CreateNamedPipe ) ConnectNamedPipe
17 ReadFile WriteFile DisconnectNamedPipe % DisconnectNamedPipe! ConnectNamedPipe BOOL DisconnectNamedPipe(HANDLE hnamedpipe); " - - CreateFile HANDLE CreateFile( ); LPCTSTR lpfilename DWORD dwdesiredaccess DWORD dwsharemode LPSECURITY_ATTRIBUTES lpsecurityattributes DWORD dwcreationdistribution DWORD dwflagsandattributes HANDLE htemplatefile & lpfilename \\%-4\pipe\%-& «%- 4» #! &! H CreateFile ConnectNamedPipe & ( INVALID_HANDLE_VALUE WaitNamedPipe BOOL WaitNamedPipe(LPCTSTR lpnamedpipename DWORD ntimeout); & ( CreateFile) ms % WaitNamedPipe : - NMPWAIT_USE_DEFAULT_WAIT: ( ndefaulttimeout CreateNamedPipe) - NMPWAIT_WAIT_FOREVER: # " ReadFile WriteFile % handle CloseHandle
18 # 10 (tick count) ( /* Make with cl pipes1c user32lib */ #include <windowsh> #include <stdioh> main(int argc char *argv[]) char *szpipename = "TestPipe" szfullname[256]; HANDLE hpipe; int nclients nreps; if (1 < argc) szpipename = argv[1]; wsprintf(szfullname "\\\\\\pipe\\%s" szpipename); hpipe = CreateNamedPipe(szFullName PIPE_ACCESS_OUTBOUND PIPE_TYPE_MESSAGE PIPE_READMODE_MESSAGE NULL); if (NULL == hpipe) fprintf(stderr "Cannot create named pipe Error %ld\n" GetLastError()); exit(1); for (nclients=0; nclients<10; nclients++) ConnectNamedPipe(hPipe NULL); printf("connected to client\n"); for (nreps=0; nreps<10; nreps++) DWORD dwtime = GetTickCount() dwwritten; if (!WriteFile(hPipe &dwtime sizeof(dwtime) &dwwritten NULL)) fprintf(stderr "Error %ld writing data to pipe exiting\n"
19 GetLastError()); DisconnectNamedPipe(hPipe); CloseHandle(hPipe); exit(2); Sleep(200); DisconnectNamedPipe(hPipe); CloseHandle(hPipe); return 0; /* Make with cl pipes2c user32lib */ #include <windowsh> #include <stdioh> main(int argc char *argv[]) char *szpipename = "TestPipe" *szserver = "" szfullname[256]; HANDLE hpipe; DWORD dwtime dwread; if (1 < argc) szserver = argv[1]; if (2 < argc)
20 szpipename = argv[2]; wsprintf(szfullname "\\\\%s\\pipe\\%s" szserver szpipename); hpipe = CreateFile(szFullName GENERIC_READ 0 NULL OPEN_EXISTING 0 NULL); if (INVALID_HANDLE_VALUE == hpipe &&!WaitNamedPipe(szFullName NMPWAIT_USE_DEFAULT_WAIT)) fprintf(stderr "Cannot connect to named pipe Error %ld\n" GetLastError()); exit(1); while (ReadFile(hPipe &dwtime sizeof(dwtime) &dwread NULL)) printf("time read: %lu\n" dwtime); CloseHandle(hPipe); return 0; 4 Windows # : 41 # " ( ") 42 )
21 $ 32 bit + WM_MOVE (=0x0003) & wparam lparam # Windows WM_USER (+1 +2 ) 0 PostThreadMessage() ( GetMessage() PeekMessage() 0 PostThreadMessage Msg wparam lparam idthread BOOL PostThreadMessage( ); DWORD idthread UINT Msg WPARAM wparam LPARAM lparam PostThreadMessage - - "" USER GDI PeekMessage() GetMessage() PeekMessage() ( ) structure MSG # structure : typedef struct tagmsg MSG; HWND hwnd; UINT message; WPARAM wparam; LPARAM lparam; DWORD time; POINT pt; / hwnd pt # (message) (wparam lparam) (time) 0 GetMessage() BOOL GetMessage( LPMSG lpmsg
22 ); HWND hwnd UINT wmsgfiltermin UINT wmsgfiltermax 0 lpmsg struct MSG " # hwnd NULL # wmsgfiltermin wmsgfiltermax! " 0 GetMessage() / -1 1 WM_QUIT 0 - PeekMessage: BOOL PeekMessage( ); LPMSG lpmsg HWND hwnd UINT wmsgfiltermin UINT wmsgfiltermax UINT wremovemsg GetMessage() 0 wremovemsg : PM_NOREMOVE: # *lpmsg PM_REMOVE: # *lpmsg 0 PeekMessage() & 0 & /* Make with cl /MT sample16c user32lib */ #include <windowsh> #include <stdioh> #define THREAD_COUNT 5 #define MY_MESSAGE (WM_USER+1) DWORD WINAPI MyRoutine(DWORD nthread)
23 MSG msg; GetMessage(&msg NULL MY_MESSAGE MY_MESSAGE); printf("thread %d received message %u wparam = %ld lparam = %ld\n" (int)nthread msgmessage msgwparam msglparam); return 0; main(void) DWORD dwthreadids[thread_count] dwerror; int I; HANDLE hthreads[thread_count]; for (I=0; I<THREAD_COUNT; I++) hthreads[i] = CreateThread(NULL 0 (LPTHREAD_START_ROUTINE)MyRoutine (LPVOID)I 0 dwthreadids+i); if (NULL == hthreads[i]) dwerror = GetLastError(); fprintf(stderr "Error %ld creating thread\n" (long)dwerror); return 1; Sleep(100); for (I=0; I<THREAD_COUNT; I++) PostThreadMessage(dwThreadIds[I] MY_MESSAGE I+2 3*I+5); WaitForMultipleObjects(THREAD_COUNT hthreads TRUE INFINITE); for (I=0; I<THREAD_COUNT; I++)
24 CloseHandle(hThreads[I]); return 0; ' : Thread 0 received message 1025 wparam = 2 lparam = 5 Thread 1 received message 1025 wparam = 3 lparam = 8 Thread 2 received message 1025 wparam = 4 lparam = 11 Thread 3 received message 1025 wparam = 5 lparam = 14 Thread 4 received message 1025 wparam = 6 lparam = 17 5 # 2 * * + )!" sleep () * )! (SIGTSTP) (!) " (SIGCONT)!! * * 51 Unix # ) 7 Process IDs pid 7 for loop fork() ( pid[i] i (0 N-1) ( ) ( " ) # SIGUSR1 wait() + " # "! 7-
25 ! " 0 kill() pause() / pause() + SIGUSR1 exit " - signal(sigusr1handler) handler SIGUSR1 $ SIGUSR1 handler ( ) SIGUSR1 / 6 % " process() &! process() exit() ( - fork() & exit() (exit_no)! & ( ) & sleep() " 0 sleep() ( ) 0 / pause() % $ pause() ( ) $ pause()
26 - 0 " " " ( ) # " # " $ sleep() ( ) " pause() " 7 for loop % read() write() wait(&status) 0 " status ( ) 8 " + #include <stdioh> #include <unistdh> #include <signalh> #include <stdlibh> #include <sys/typesh> #include <waith> /* ' handler SIGUSR1 - */ void handler(int sig_num) /* ' process # - ' exit & */ void process(int no) /* */ int exit_no=0; /* 4 & (# ) */
27 if(no%4==0) exit_no=no; /* signal + SIGUSR1 handler */ signal(sigusr1handler); printf("process number %d awaits for a signal\n"no); /* () -! */ pause(); /* % - */ sleep(1); printf("exiting from process %d\n"no); exit(exit_no); void main(int argc char *argv[]) int *pidnitempstatus; /* # & -$ */ if ( argc == 2 && argv[1][0]=='-' ) N = atoi(&argv[1][1]); else printf("usage : %s -N\n"argv[0]); exit(-1); /* % # process ids # - # */ pid = (int *)malloc(n*sizeof(int)); for(i=0; i<n; i++) printf("message from father : Creating process number %d\n"i); /* # pid */ if((pid[i]=fork())==0) process(i); /* - exit # # */ /* ' sleep # & */ sleep(1); printf("\ni am the Parent and I will now execute my children : \n"); for(i=0; i<n; i++) /*! SIGUSR1 process id pid[i] */ kill(pid[n-1-i] SIGUSR1); /* ' wait # - # exit number */ wait(&status); printf("process No %d (pid=%d) ended with code %d\n"n-1- ipid[n-1-i](status>>8));
28 printf("all of my children died so I commit suicide! Bye\n"); )! / 20 ( 20 ) " : Message from father : Creating process number 0 Message from father : Creating process number 1 Process number 0 awaits for a signal Message from father : Creating process number 2 Process number 1 awaits for a signal Message from father : Creating process number 3 Process number 2 awaits for a signal Message from father : Creating process number 4 Process number 3 awaits for a signal Message from father : Creating process number 5 Process number 4 awaits for a signal Message from father : Creating process number 6 Process number 5 awaits for a signal Message from father : Creating process number 7 Process number 6 awaits for a signal Message from father : Creating process number 8 Process number 7 awaits for a signal Message from father : Creating process number 9 Message from father : Creating process number 10 Message from father : Creating process number 11 Message from father : Creating process number 12 Message from father : Creating process number 13 Message from father : Creating process number 14 Message from father : Creating process number 15 Message from father : Creating process number 16 Message from father : Creating process number 17 Message from father : Creating process number 18 Message from father : Creating process number 19 Process number 17 awaits for a signal Process number 16 awaits for a signal Process number 15 awaits for a signal Process number 14 awaits for a signal Process number 13 awaits for a signal Process number 12 awaits for a signal Process number 11 awaits for a signal Process number 10 awaits for a signal Process number 9 awaits for a signal Process number 8 awaits for a signal Process number 18 awaits for a signal Process number 19 awaits for a signal I am the Parent and I will now execute (not kill) my children : Exiting from process 19 Process No 19 (pid=942) ended with code 0 Exiting from process 18 Process No 18 (pid=941) ended with code 0 Exiting from process 17 Process No 17 (pid=940) ended with code 0 Exiting from process 16
29 Process No 16 (pid=939) ended with code 16 Exiting from process 15 Process No 15 (pid=938) ended with code 0 Exiting from process 14 Process No 14 (pid=937) ended with code 0 Exiting from process 13 Process No 13 (pid=936) ended with code 0 Exiting from process 12 Process No 12 (pid=935) ended with code 12 Exiting from process 11 Process No 11 (pid=934) ended with code 0 Exiting from process 10 Process No 10 (pid=933) ended with code 0 Exiting from process 9 Process No 9 (pid=932) ended with code 0 Exiting from process 8 Process No 8 (pid=931) ended with code 8 Exiting from process 7 Process No 7 (pid=930) ended with code 0 Exiting from process 6 Process No 6 (pid=929) ended with code 0 Exiting from process 5 Process No 5 (pid=928) ended with code 0 Exiting from process 4 Process No 4 (pid=927) ended with code 4 Exiting from process 3 Process No 3 (pid=926) ended with code 0 Exiting from process 2 Process No 2 (pid=925) ended with code 0 Exiting from process 1 Process No 1 (pid=924) ended with code 0 Exiting from process 0 Process No 0 (pid=923) ended with code 0 All of my children died so I commit suicide! Bye $ $ " ( fork()) / ( ) " + 52 Windows
30 1 / 2 # Unix 21 # (signals) & (pipes) 3 # Windows 31 - (events) 32 & (Pipes) 4 # Windows / 5 / Unix 52 4 Windows
Process definition Concurrency Process status Process attributes PROCESES 1.3
Process Management Outline Main concepts Basic services for process management (Linux based) Inter process communications: Linux Signals and synchronization Internal process management Basic data structures:
More informationOutline. Review. Inter process communication Signals Fork Pipes FIFO. Spotlights
Outline Review Inter process communication Signals Fork Pipes FIFO Spotlights 1 6.087 Lecture 14 January 29, 2010 Review Inter process communication Signals Fork Pipes FIFO Spotlights 2 Review: multithreading
More information1 Operating Systems Prof. Dr. Marc H. Scholl DBIS U KN Summer Term 2009. IPC may often be used for both
Intended Schedule V. IPC: Inter-Process Communication Date Lecture Hand out Submission 0 20.04. Introduction to Operating Systems Course registration 1 27.04. Systems Programming using C (File Subsystem)
More informationARUNNING INSTANCE OF A PROGRAM IS CALLED A PROCESS. If you have two
3 Processes ARUNNING INSTANCE OF A PROGRAM IS CALLED A PROCESS. If you have two terminal windows showing on your screen, then you are probably running the same terminal program twice you have two terminal
More informationUnix System Calls. Dept. CSIE 2006.12.25
Unix System Calls Gwan-Hwan Hwang Dept. CSIE National Taiwan Normal University 2006.12.25 UNIX System Overview UNIX Architecture Login Name Shells Files and Directories File System Filename Pathname Working
More informationUsing NSM for Event Notification. Abstract. with DM3, R4, and Win32 Devices
Using NSM for Event Notification with DM3, R4, and Win32 Devices Abstract This document explains why Native Synchronization Methods (NSM) is the best solution for controlling synchronization of DM3, R4,
More informationIntroduction. dnotify
Introduction In a multi-user, multi-process operating system, files are continually being created, modified and deleted, often by apparently unrelated processes. This means that any software that needs
More informationLinux Syslog Messages in IBM Director
Ever want those pesky little Linux syslog messages (/var/log/messages) to forward to IBM Director? Well, it s not built in, but it s pretty easy to setup. You can forward syslog messages from an IBM Director
More informationWin32 API Emulation on UNIX for Software DSM
Win32 API Emulation on UNIX for Software DSM Agenda: Sven M. Paas, Thomas Bemmerl, Karsten Scholtyssik, RWTH Aachen, Germany http://www.lfbs.rwth-aachen.de/ contact@lfbs.rwth-aachen.de Background Our approach:
More informationSMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
More informationCSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17
CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17 System Calls for Processes Ref: Process: Chapter 5 of [HGS]. A program in execution. Several processes are executed concurrently by the
More informationShared Memory Introduction
12 Shared Memory Introduction 12.1 Introduction Shared memory is the fastest form of IPC available. Once the memory is mapped into the address space of the processes that are sharing the memory region,
More informationProcess Monitor HOW TO for Linux
Table of Contents Process Monitor HOW TO for Linux...1 Al Dev (Alavoor Vasudevan) alavoor@yahoo.com...1 1.Linux or Unix Processes...1 2.Unix/Linux command procautostart...1 3.File procautostart.cpp...1
More informationProgrammer s Guide for Moxa s Windows CE Embedded Computers
Programmer s Guide for Moxa s Windows CE Embedded Computers Third Edition, March 2008 www.moxa.com/product 2008 Moxa Inc., all rights reserved. Reproduction without permission is prohibited. Programmer
More informationLecture 17. Process Management. Process Management. Process Management. Inter-Process Communication. Inter-Process Communication
Process Management Lecture 17 Review February 25, 2005 Program? Process? Thread? Disadvantages, advantages of threads? How do you identify processes? How do you fork a child process, the child process
More informationNetworks. Inter-process Communication. Pipes. Inter-process Communication
Networks Mechanism by which two processes exchange information and coordinate activities Inter-process Communication process CS 217 process Network 1 2 Inter-process Communication Sockets o Processes can
More informationNetwork Operating Systems. Kazunori Sugiura (uhyo@sfc.wide.ad.jp) Sept. 5 th, 2002
Network Operating Systems Kazunori Sugiura (uhyo@sfc.wide.ad.jp) Sept. 5 th, 2002 Theme of my lecture today Technology based on the Internet environment Computer Technology Network technology Computers
More informationSystem Calls and Standard I/O
System Calls and Standard I/O Professor Jennifer Rexford http://www.cs.princeton.edu/~jrex 1 Goals of Today s Class System calls o How a user process contacts the Operating System o For advanced services
More informationLibmonitor: A Tool for First-Party Monitoring
Libmonitor: A Tool for First-Party Monitoring Mark W. Krentel Dept. of Computer Science Rice University 6100 Main St., Houston, TX 77005 krentel@rice.edu ABSTRACT Libmonitor is a library that provides
More informationHow To Understand How A Process Works In Unix (Shell) (Shell Shell) (Program) (Unix) (For A Non-Program) And (Shell).Orgode) (Powerpoint) (Permanent) (Processes
Content Introduction and History File I/O The File System Shell Programming Standard Unix Files and Configuration Processes Programs are instruction sets stored on a permanent medium (e.g. harddisc). Processes
More informationMS Active Sync: Sync with External Memory Files
Mindfire Solutions - 1 - MS Active Sync: Sync with External Memory Files Author: Rahul Gaur Mindfire Solutions, Mindfire Solutions - 2 - Table of Contents Overview 3 Target Audience 3 Conventions...3 1.
More informationChannel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG
Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written
More informationNetworks and Protocols Course: 320301 International University Bremen Date: 2004-11-24 Dr. Jürgen Schönwälder Deadline: 2004-12-03.
Networks and Protocols Course: 320301 International University Bremen Date: 2004-11-24 Dr. Jürgen Schönwälder Deadline: 2004-12-03 Problem Sheet #10 Problem 10.1: finger rpc server and client implementation
More informationLecture 25 Systems Programming Process Control
Lecture 25 Systems Programming Process Control A process is defined as an instance of a program that is currently running. A uni processor system or single core system can still execute multiple processes
More informationGreen Telnet. Making the Client/Server Model Green
Green Telnet Reducing energy consumption is of growing importance. Jeremy and Ken create a "green telnet" that lets clients transition to a low-power, sleep state. By Jeremy Blackburn and Ken Christensen,
More informationComputer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes
Computer Systems II Creating and Executing Processes 1 Unix system calls fork( ) wait( ) exit( ) 2 How To Create New Processes? Underlying mechanism - A process runs fork to create a child process - Parent
More informationInterlude: Process API
5 Interlude: Process API ASIDE: INTERLUDES Interludes will cover more practical aspects of systems, including a particular focus on operating system APIs and how to use them. If you don t like practical
More informationShared Memory Segments and POSIX Semaphores 1
Shared Memory Segments and POSIX Semaphores 1 Alex Delis delis -at+ pitt.edu October 2012 1 Acknowledgements to Prof. T. Stamatopoulos, M. Avidor, Prof. A. Deligiannakis, S. Evangelatos, Dr. V. Kanitkar
More informationJOBSCHEDULER. Job Scheduling. Technical Description March 2015. Job Automation
Job Automation Job Scheduling JOBR Technical Description March 2015 Software- und Organisations-Service GmbH Giesebrechtstr. 15 10629 Berlin Germany Telephone +49 30 86 47 90-0 JobScheduler 2 Contact Information
More informationApplication Power Management for Mobility
Application Power Management for Mobility White Paper March 20, 2002 Copyright 2002 Intel Corporation Contents 1. Introduction... 4 1.1. Overview... 4 1.2. Audience... 4 2. Application Power Management
More informationHow ToWrite a UNIX Daemon
How ToWrite a UNIX Daemon Dave Lennert Hewlett-Packard Company ABSTRACT On UNIX systems users can easily write daemon programs that perform repetitive tasks in an unnoticed way. However, because daemon
More informationCS355 Hw 3. Extended Shell with Job Control
CS355 Hw 3 Due by the end of day Tuesday, Mar 18. Design document due on Thursday, Feb 27 in class. Written supplementary problems due on Thursday, March 6. Programming Assignment: You should team up with
More informationGrundlagen der Betriebssystemprogrammierung
Grundlagen der Betriebssystemprogrammierung Präsentation A3, A4, A5, A6 21. März 2013 IAIK Grundlagen der Betriebssystemprogrammierung 1 / 73 1 A3 - Function Pointers 2 A4 - C++: The good, the bad and
More informationImplementing and testing tftp
CSE123 Spring 2013 Term Project Implementing and testing tftp Project Description Checkpoint: May 10, 2013 Due: May 29, 2013 For this project you will program a client/server network application in C on
More informationCS162 Operating Systems and Systems Programming Lecture 4. Introduction to I/O (Continued), Sockets, Networking. Recall: Fork and Wait
CS162 Operating Systems and Systems Programming Lecture 4 Introduction to I/O (Continued), Sockets, Networking February 2 nd, 2015 Prof. John Kubiatowicz http://cs162.eecs.berkeley.edu Recall: Fork and
More informationProgrammation Systèmes Cours 7 IPC: FIFO
Programmation Systèmes Cours 7 IPC: FIFO Stefano Zacchiroli zack@pps.jussieu.fr Laboratoire PPS, Université Paris Diderot - Paris 7 15 novembre 2011 URL http://upsilon.cc/zack/teaching/1112/progsyst/ Copyright
More informationRTAI API Inter Process Communication
RTAI API Inter Process Communication Antonio Barbalace antonio.barbalace@unipd.it Overview Semaphores Shared Memory FIFOs Mailbox Typed Mailbox Messages POSIX Message Queue Antonio Barbalace 2009 RTOS
More information5. Processes and Memory Management
5. Processes and Memory Management 5. Processes and Memory Management Process Abstraction Introduction to Memory Management Process Implementation States and Scheduling Programmer Interface Process Genealogy
More informationVirtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
More information1 Posix API vs Windows API
1 Posix API vs Windows API 1.1 File I/O Using the Posix API, to open a file, you use open(filename, flags, more optional flags). If the O CREAT flag is passed, the file will be created if it doesnt exist.
More informationProcess Monitor HOW TO for Linux
Table of Contents Process Monitor HOW TO for Linux...1 Al Dev (Alavoor Vasudevan) alavoor@yahoo.com...1 1.Linux or Unix Processes...1 2.Unix/Linux command procautostart...1 3.File procautostart.cpp...1
More informationNetwork Programming with Sockets. Anatomy of an Internet Connection
Network Programming with Sockets Anatomy of an Internet Connection Client socket address 128.2.194.242:51213 socket address 208.216.181.15:80 Client Connection socket pair (128.2.194.242:51213, 208.216.181.15:80)
More informationSystem calls. Problem: How to access resources other than CPU
System calls Problem: How to access resources other than CPU - Disk, network, terminal, other processes - CPU prohibits instructions that would access devices - Only privileged OS kernel can access devices
More informationLecture 24 Systems Programming in C
Lecture 24 Systems Programming in C A process is a currently executing instance of a program. All programs by default execute in the user mode. A C program can invoke UNIX system calls directly. A system
More informationLecture 16: System-Level I/O
CSCI-UA.0201-003 Computer Systems Organization Lecture 16: System-Level I/O Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com Some slides adapted (and slightly modified) from: Clark Barrett
More informationLinux/UNIX System Programming. POSIX Shared Memory. Michael Kerrisk, man7.org c 2015. February 2015
Linux/UNIX System Programming POSIX Shared Memory Michael Kerrisk, man7.org c 2015 February 2015 Outline 22 POSIX Shared Memory 22-1 22.1 Overview 22-3 22.2 Creating and opening shared memory objects 22-10
More informationIPC. Semaphores were chosen for synchronisation (out of several options).
IPC Two processes will use shared memory to communicate and some mechanism for synchronise their actions. This is necessary because shared memory does not come with any synchronisation tools: if you can
More informationIOActive Security Advisory
IOActive Security Advisory Title Severity Discovered by Admin ACL Bypass and Double Fetch Issue in F-Secure Internet Security 2015 High/Important Ilja van Sprundel Advisory Date September 3, 2015 Affected
More informationSystem Calls Related to File Manipulation
KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS Information and Computer Science Department ICS 431 Operating Systems Lab # 12 System Calls Related to File Manipulation Objective: In this lab we will be
More informationOperating Systems. Privileged Instructions
Operating Systems Operating systems manage processes and resources Processes are executing instances of programs may be the same or different programs process 1 code data process 2 code data process 3
More informationDesigning and Building Portable Systems in C++
Designing and Building Portable Systems in C++ Günter Obiltschnig, Applied Informatics guenter.obiltschnig@appinf.com Abstract. C++ covers the whole range from low-level to high-level programming, making
More informationThe Windows File Management
The Windows File Management What do we have for this session? Brief Intro File Attributes Files and Clusters Creating, Deleting, and Maintaining Files File Names, Paths, and Namespaces Basic Naming Conventions
More information7.2 Examining Processes on the Command Line
Chapter 7 Process Architecture and Control Concepts Covered Memory architecture of a process Memory structures Viewing memory layout Process structure Executable le format Process creation Process synchronization
More informationNote: Zebra Printer status: It is recommended to use the PRINTER_INFO_3 structure to inquire for the printer status presented by the LM.
25 The Language Monitor The Language Monitor is part of the Windows driver and is located between the Driver UI and the Port Monitor, which takes care of the direct communication with the selected port.
More informationATS-SDK Software Manual
ATS-SDK Software Manual Supports C/C++ & Visual BASIC Also Applicable to ATS-Linux Version: 5.6.0 June, 2008 Copyright 2003-2008 AlazarTech, Inc. All rights reserved. AlazarTech Contact Information AlazarTech,
More informationLeak Check Version 2.1 for Linux TM
Leak Check Version 2.1 for Linux TM User s Guide Including Leak Analyzer For x86 Servers Document Number DLC20-L-021-1 Copyright 2003-2009 Dynamic Memory Solutions LLC www.dynamic-memory.com Notices Information
More informationAn Example VHDL Application for the TM-4
An Example VHDL Application for the TM-4 Dave Galloway Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto March 2005 Introduction This document describes a simple
More information/* File: blkcopy.c. size_t n
13.1. BLOCK INPUT/OUTPUT 505 /* File: blkcopy.c The program uses block I/O to copy a file. */ #include main() { signed char buf[100] const void *ptr = (void *) buf FILE *input, *output size_t
More informationAs previously noted, a byte can contain a numeric value in the range 0-255. Computers don't understand Latin, Cyrillic, Hindi, Arabic character sets!
Encoding of alphanumeric and special characters As previously noted, a byte can contain a numeric value in the range 0-255. Computers don't understand Latin, Cyrillic, Hindi, Arabic character sets! Alphanumeric
More informationLogging. Working with the POCO logging framework.
Logging Working with the POCO logging framework. Overview > Messages, Loggers and Channels > Formatting > Performance Considerations Logging Architecture Message Logger Channel Log File Logging Architecture
More informationRevealing the performance aspects in your code. Intel VTune Amplifier XE Generics. Rev.: Sep 1, 2013
Revealing the performance aspects in your code Intel VTune Amplifier XE Generics Rev.: Sep 1, 2013 1 Agenda Introduction to Intel VTune Amplifier XE profiler High-level Features Types of Analysis Hotspot
More informationProgrammation Systèmes Cours 9 UNIX Domain Sockets
Programmation Systèmes Cours 9 UNIX Domain Sockets Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/progsyst/
More informationLecture 5. User-Mode Linux. Jeff Dike. November 7, 2012. Operating Systems Practical. OSP Lecture 5, UML 1/33
Lecture 5 User-Mode Linux Jeff Dike Operating Systems Practical November 7, 2012 OSP Lecture 5, UML 1/33 Contents User-Mode Linux Keywords Resources Questions OSP Lecture 5, UML 2/33 Outline User-Mode
More informationTail call elimination. Michel Schinz
Tail call elimination Michel Schinz Tail calls and their elimination Loops in functional languages Several functional programming languages do not have an explicit looping statement. Instead, programmers
More informationSoftware Application Development. D2XX Programmer's Guide
Future Technology Devices International Ltd. Software Application Development D2XX Programmer's Guide Document Reference No.: FT_000071 Version 1.3 Issue Date: 2012-02-23 FTDI provides DLL and virtual
More informationMonitoring of Tritium release at PTC.
Monitoring of Tritium release at PTC. Scope of the project From more than 20 projects supported by Equipment Manufacturing Support group this is one of the simplest. What is nice about it is that elegant
More informationGiving credit where credit is due
JDEP 284H Foundations of Computer Systems System-Level I/O Dr. Steve Goddard goddard@cse.unl.edu Giving credit where credit is due Most of slides for this lecture are based on slides created by Drs. Bryant
More informationMac OS X Darwin and Ubuntu Linux: Comparison of Some Common Operating System Algorithms
Mac OS X Darwin and Ubuntu Linux: Comparison of Some Common Operating System Algorithms Software Systems Project Will Clayton, Sharon Talbot, and Nick Zola May 5, 2005 Abstract For this paper, we conducted
More informationWindows CE 6.0 APEX ZF
Windows CE 6.0 For APEX ZF User Guide Document Reference: Windows CE User Guide Document Issue: 1.0 Contents Introduction... 3 Windows CE 6.0 initialisation and booting overview... 3 APEX-ZF hardware evaluation
More informationIntroduction to Socket programming using C
Introduction to Socket programming using C Goal: learn how to build client/server application that communicate using sockets Vinay Narasimhamurthy S0677790@sms.ed.ac.uk CLIENT SERVER MODEL Sockets are
More informationMetroPro Remote Access OMP-0476F. Zygo Corporation Laurel Brook Road P.O. Box 448 Middlefield, Connecticut 06455
MetroPro Remote Access OMP-0476F Zygo Corporation Laurel Brook Road P.O. Box 448 Middlefield, Connecticut 06455 Telephone: (860) 347-8506 E-mail: inquire@zygo.com Website: www.zygo.com ZYGO CUSTOMER SUPPORT
More informationLinux System Administration. Paul Cobbaut
Linux System Administration Paul Cobbaut Linux System Administration Paul Cobbaut Publication date 215-5-24 CEST Abstract This book is meant to be used in an instructor-led training. For self-study, the
More informationVista and ActiveX control
Vista and ActiveX control Prepared By: Su Yong Kim Dong Hyun Lee Do Hoon Lee Abstract This article covers security issues of ActiveX control on Windows Vista. Windows Vista has some new security mechanisms
More informationThis presentation explains how to monitor memory consumption of DataStage processes during run time.
This presentation explains how to monitor memory consumption of DataStage processes during run time. Page 1 of 9 The objectives of this presentation are to explain why and when it is useful to monitor
More informationUsing Concolic Testing to Refine Vulnerability Profiles in FUZZBUSTER
Using Concolic Testing to Refine Vulnerability Profiles in FUZZBUSTER David J. Musliner, Jeffrey M. Rye, Tom Marble Smart Information Flow Technologies (SIFT) Minneapolis, MN, USA Email: {dmusliner, jrye,
More informationDevice Management API for Windows* and Linux* Operating Systems
Device Management API for Windows* and Linux* Operating Systems Library Reference September 2004 05-2222-002 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS
More informationTFTP Usage and Design. Diskless Workstation Booting 1. TFTP Usage and Design (cont.) CSCE 515: Computer Network Programming ------ TFTP + Errors
CSCE 515: Computer Network Programming ------ TFTP + Errors Wenyuan Xu Department of Computer Science and Engineering University of South Carolina TFTP Usage and Design RFC 783, 1350 Transfer files between
More informationProgram 5 - Processes and Signals (100 points)
Program 5 - Processes and Signals (100 points) COMPSCI 253: Intro to Systems Programming 1 Objectives Using system calls to create and manage processes under Linux and Microsoft Windows Using Visual Studio
More informationFIP DEVICE MANAGER 95/98 Driver Release 1 for ISA and PCI Board Software User Manual. ALS 53327 a-en Preliminary Version
FIP DEVICE MANAGER 95/98 Driver Release 1 for ISA and PCI Board Preliminary Version First issue: 02-2000 Meaning of terms that may be used in this document / Notice to readers WARNING Warning notices are
More informationBasic Data Types. typedef short SHORT; typedef unsigned long DWORD;
Lecture 2-1 Basic Data Types typedef short SHORT; typedef unsigned short WORD; typedef unsigned long DWORD; #if defined(_win64) typedef int64 INT_PTR; #else typedef int INT_PTR; #endif typedef DWORD COLORREF;
More informationREAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating
More informationJorix kernel: real-time scheduling
Jorix kernel: real-time scheduling Joris Huizer Kwie Min Wong May 16, 2007 1 Introduction As a specialized part of the kernel, we implemented two real-time scheduling algorithms: RM (rate monotonic) and
More informationFile Handling. What is a file?
File Handling 1 What is a file? A named collection of data, stored in secondary storage (typically). Typical operations on files: Open Read Write Close How is a file stored? Stored as sequence of bytes,
More informationOS: IPC I. Cooperating Processes. CIT 595 Spring 2010. Message Passing vs. Shared Memory. Message Passing: Unix Pipes
Cooperating Processes Independent processes cannot affect or be affected by the execution of another process OS: IPC I CIT 595 Spring 2010 Cooperating process can affect or be affected by the execution
More informationCryptoAPI. Labs. Daniil Leksin
CryptoAPI Labs Daniil Leksin Structure CryptoAPI CSP (Cryptography Service Provider) CA Working with CryptoAPI, CSP, CA: algorithms, block-schemes and examples CryptoAPI CryptoAPI (Cryptographic Application
More informationHow to Handle a Few Hundred Million Extra Firewall Log Lines Per Day. Thanks to the Latest Virus or Worm. Jon Meek. Wyeth - Princeton, NJ
How to Handle a Few Hundred Million Extra Firewall Log Lines Per Day Thanks to the Latest Virus or Worm Jon Meek Wyeth - Princeton, NJ meekj 0x40 wyeth.com meekj 0x40 ieee.org 1 High Volume Syslog Traffic
More informationXMOS Programming Guide
XMOS Programming Guide Document Number: Publication Date: 2014/10/9 XMOS 2014, All Rights Reserved. XMOS Programming Guide 2/108 SYNOPSIS This document provides a consolidated guide on how to program XMOS
More informationUsing Microsoft Windows DLLs within SAS Programs
Paper OO-01-2013 Using Microsoft Windows DLLs within SAS Programs Rajesh Lal, Experis, Portage, MI, USA ABSTRACT SAS has a wide variety of functions and call routines available. More and more Operating
More informationLOW LEVEL FILE PROCESSING
LOW LEVEL FILE PROCESSING 1. Overview The learning objectives of this lab session are: To understand the functions provided for file processing by the lower level of the file management system, i.e. the
More informationDesigning a. Universal Serial Bus (USB) Device. Using the Cypress CY7C63001. A USB Thermometer
Designing a Universal Serial Bus (USB) Device Using the Cypress CY7C63001 A USB Thermometer Introduction Purpose The purpose of this application note is to: Provide a brief overview of the Universal Serial
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationCS222: Systems Programming
CS222: Systems Programming The Basics January 24, 2008 A Designated Center of Academic Excellence in Information Assurance Education by the National Security Agency Agenda Operating System Essentials Windows
More informationOPERATING SYSTEMS STRUCTURES
S Jerry Breecher 2: OS Structures 1 Structures What Is In This Chapter? System Components System Calls How Components Fit Together Virtual Machine 2: OS Structures 2 SYSTEM COMPONENTS These are the pieces
More informationIllustration 1: Diagram of program function and data flow
The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline
More informationParallelization: Binary Tree Traversal
By Aaron Weeden and Patrick Royal Shodor Education Foundation, Inc. August 2012 Introduction: According to Moore s law, the number of transistors on a computer chip doubles roughly every two years. First
More informationXillybus host application programming guide for Linux
Xillybus host application programming guide for Linux Xillybus Ltd. Version 2.0 1 Introduction 3 2 Synchronous vs. asynchronous streams 5 2.1 Overview................................... 5 2.2 Motivation
More informationEmbedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
More informationASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters
The char Type ASCII Encoding The C char type stores small integers. It is usually 8 bits. char variables guaranteed to be able to hold integers 0.. +127. char variables mostly used to store characters
More information6.828 Operating System Engineering: Fall 2003. Quiz II Solutions THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2003 Quiz II Solutions All problems are open-ended questions. In
More information---------------------------------- Exploiting Cisco Systems (Even From Windows! ;-) ) Written by Cyvamp (with a few notes added by Raven) July 2000
Exploiting Cisco Systems (Even From Windows! ;-) ) Written by Cyvamp (with a few notes added by Raven) July 2000 http://blacksun.box.sk Warning: DO NOT use this to damage cisco systems, or gain unauthorized
More information