2. Unix (signals) .. ", - (disk driver),.! - (signal),. #,, "" "". $ (pipes), $. % - : -. &, '& (SIGCHLD) -,

Size: px
Start display at page:

Download "2. Unix. 2.1. (signals) .. ", - (disk driver),.! - (signal),. #,, "" "". $ (pipes), $. % - : -. &, '& (SIGCHLD) -,"

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 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 information

Outline. Review. Inter process communication Signals Fork Pipes FIFO. Spotlights

Outline. 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 information

1 Operating Systems Prof. Dr. Marc H. Scholl DBIS U KN Summer Term 2009. IPC may often be used for both

1 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 information

ARUNNING INSTANCE OF A PROGRAM IS CALLED A PROCESS. If you have two

ARUNNING 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 information

Unix System Calls. Dept. CSIE 2006.12.25

Unix 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 information

Using NSM for Event Notification. Abstract. with DM3, R4, and Win32 Devices

Using 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 information

Introduction. dnotify

Introduction. 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 information

Linux Syslog Messages in IBM Director

Linux 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 information

Win32 API Emulation on UNIX for Software DSM

Win32 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 information

SMTP-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 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 information

CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17

CSI 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 information

Shared Memory Introduction

Shared 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 information

Process Monitor HOW TO for Linux

Process 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 information

Programmer s Guide for Moxa s Windows CE Embedded Computers

Programmer 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 information

Lecture 17. Process Management. Process Management. Process Management. Inter-Process Communication. Inter-Process Communication

Lecture 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 information

Networks. Inter-process Communication. Pipes. Inter-process Communication

Networks. 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 information

Network 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 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 information

System Calls and Standard I/O

System 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 information

Libmonitor: A Tool for First-Party Monitoring

Libmonitor: 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 information

How To Understand How A Process Works In Unix (Shell) (Shell Shell) (Program) (Unix) (For A Non-Program) And (Shell).Orgode) (Powerpoint) (Permanent) (Processes

How 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 information

MS Active Sync: Sync with External Memory Files

MS 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 information

Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG

Channel 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 information

Networks 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. 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 information

Lecture 25 Systems Programming Process Control

Lecture 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 information

Green Telnet. Making the Client/Server Model Green

Green 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 information

Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes

Computer 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 information

Interlude: Process API

Interlude: 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 information

Shared Memory Segments and POSIX Semaphores 1

Shared 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 information

JOBSCHEDULER. Job Scheduling. Technical Description March 2015. Job Automation

JOBSCHEDULER. 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 information

Application Power Management for Mobility

Application 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 information

How ToWrite a UNIX Daemon

How 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 information

CS355 Hw 3. Extended Shell with Job Control

CS355 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 information

Grundlagen der Betriebssystemprogrammierung

Grundlagen 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 information

Implementing and testing tftp

Implementing 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 information

CS162 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. 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 information

Programmation Systèmes Cours 7 IPC: FIFO

Programmation 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 information

RTAI API Inter Process Communication

RTAI 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 information

5. Processes and Memory Management

5. 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 information

Virtuozzo Virtualization SDK

Virtuozzo 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 information

1 Posix API vs Windows API

1 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 information

Process Monitor HOW TO for Linux

Process 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 information

Network Programming with Sockets. Anatomy of an Internet Connection

Network 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 information

System calls. Problem: How to access resources other than CPU

System 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 information

Lecture 24 Systems Programming in C

Lecture 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 information

Lecture 16: System-Level I/O

Lecture 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 information

Linux/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 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 information

IPC. Semaphores were chosen for synchronisation (out of several options).

IPC. 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 information

IOActive Security Advisory

IOActive 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 information

System Calls Related to File Manipulation

System 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 information

Operating Systems. Privileged Instructions

Operating 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 information

Designing and Building Portable Systems in C++

Designing 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 information

The Windows File Management

The 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 information

7.2 Examining Processes on the Command Line

7.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 information

Note: Zebra Printer status: It is recommended to use the PRINTER_INFO_3 structure to inquire for the printer status presented by the LM.

Note: 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 information

ATS-SDK Software Manual

ATS-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 information

Leak Check Version 2.1 for Linux TM

Leak 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 information

An Example VHDL Application for the TM-4

An 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

/* 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 information

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!

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! 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 information

Logging. Working with the POCO logging framework.

Logging. 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 information

Revealing 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 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 information

Programmation Systèmes Cours 9 UNIX Domain Sockets

Programmation 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 information

Lecture 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. 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 information

Tail call elimination. Michel Schinz

Tail 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 information

Software Application Development. D2XX Programmer's Guide

Software 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 information

Monitoring of Tritium release at PTC.

Monitoring 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 information

Giving credit where credit is due

Giving 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 information

Mac 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 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 information

Windows CE 6.0 APEX ZF

Windows 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 information

Introduction to Socket programming using C

Introduction 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 information

MetroPro 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 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 information

Linux System Administration. Paul Cobbaut

Linux 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 information

Vista and ActiveX control

Vista 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 information

This 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. 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 information

Using Concolic Testing to Refine Vulnerability Profiles in FUZZBUSTER

Using 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 information

Device Management API for Windows* and Linux* Operating Systems

Device 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 information

TFTP Usage and Design. Diskless Workstation Booting 1. TFTP Usage and Design (cont.) CSCE 515: Computer Network Programming ------ TFTP + Errors

TFTP 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 information

Program 5 - Processes and Signals (100 points)

Program 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 information

FIP 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 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 information

Basic Data Types. typedef short SHORT; typedef unsigned long DWORD;

Basic 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 information

REAL 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 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 information

Jorix kernel: real-time scheduling

Jorix 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 information

File Handling. What is a file?

File 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 information

OS: IPC I. Cooperating Processes. CIT 595 Spring 2010. Message Passing vs. Shared Memory. Message Passing: Unix Pipes

OS: 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 information

CryptoAPI. Labs. Daniil Leksin

CryptoAPI. 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 information

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

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 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 information

XMOS Programming Guide

XMOS 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 information

Using Microsoft Windows DLLs within SAS Programs

Using 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 information

LOW LEVEL FILE PROCESSING

LOW 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 information

Designing 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 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 information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last 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 information

CS222: Systems Programming

CS222: 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 information

OPERATING SYSTEMS STRUCTURES

OPERATING 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 information

Illustration 1: Diagram of program function and data flow

Illustration 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 information

Parallelization: Binary Tree Traversal

Parallelization: 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 information

Xillybus host application programming guide for Linux

Xillybus 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 information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded 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 information

ASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters

ASCII 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 information

6.828 Operating System Engineering: Fall 2003. Quiz II Solutions THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.

6.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 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