Module 4: Processes

Size: px
Start display at page:

Download "Module 4: Processes"

Transcription

1 Chapter 3 : Processes Yoon-Joong Kim Hanbat National University, Computer Engineering Department

2 Chapter 3: Processes 3.1 Process Concept 3.2 Process Scheduling 3.3 Operations on Process 3.4 Interprocess Communication 3.5 Examples of IPC Systems 3.6 Communication in Client-Server Systems

3 Chapter 3: Processes 3.1 Process Concept Process state, PCB 3.2 Process Scheduling Long-term/Short-term/Medium-Term Scheduler, Context Switch, 3.3 Operations on Process Process Creation : POSIX: fork+exit, WIN32: CreatProcess, C#: Process.Start Process Termination : exit, abort C#: nprocess.kill 3.4 Interprocess Communication Shared Memory Model, Message Passing Model Bounded-Buffer Producer-Consumer Problem Message Passing Model : Direct Communication Send(P,Message)- Receive(Q,Message) Send(P,Message)-Receive(pID,Message)

4 Chapter 3: Processes 3.4 Interprocess Communication Shared Memory Model, Message Passing Model Bounded-Buffer Producer-Consumer Problem Message Passing Model by Naming Processes Direct Communication : One link between processes Send(P,Message)- Receive(Q,Message) : symmetric Send(P,Message)-Receive(pID,Message) : asymmetric Indirect Communication : Shared mail-box by processes Send(A,Message)-Receive(A,Message) Message Passing Model by Buffering Zero / Bounded / Unbounded Capacity Communication 고정크기 - 가변크기 Message Passing Model by Buffering by Synchronization Blocking-Synchronous / Nonblocking-asynchronous Communication

5 Chapter 3: Processes 3.5 Examples of IPC Systems POSIX : Memory Shred API Mach : Memory Passing Windows XP : LPC 3.6 Communication in Client-Server Systems Client-Server System Sockets, RPC, RMI(JAVA) Socket Program example(c#)

6 3.1 Process Concept 프로세스 실행중인프로그램 (program in execution) CPU time, memory, files, I/O devices 등자원요구 시스템의작업단위 (the unit of work) 종류 사용자프로세스 (user process) - user code 실행 시스템프로세스 (system process) - system code 실행 프로세스관리 사용자프로세스와시스템프로세스의생성과삭제 프로세스스케줄링 프로세스들의동기화기법지원 프로세스들의통신지원 프로세스들의교착상태 (deadlock) 처리

7 3.1 Process Concept(cont.) Fig. 3.1 Process in Memory

8 3.1 Process Concept(cont.) 프로세스상태 (Process State) 생성 (new) 수행 (running) : CPU 가실행, 명령어실행대기 (waiting) : I/O 완료나 signal 기다림, 이벤트발생대기준비 (ready) : Processor 를받을준비가됨종료 (terminated) Fig. 3.2 Diagram of Process State

9 3.1 Process Concept(cont.) 프로세스제어블럭 (Process Control Block, PCB) PCB 는각프로세스의상태및관리를위한정보가표현되는자료구조이다. PCB Solaris 10 Unix: /usr/include/sys/proc.h (99 행 ) Fedora Linux: /usr/src/kernels/linux /include/linux/sched.h (1167 행 ) 프로세스상태 : new, ready, running, waiting, halted 프로그램카운터 : next instruction 의주소 CPU 레지스터들 : accumulator, index register, stack pointers, 범용 registers, condition-code CPU 스케줄정보 : priority, pointers to scheduling queues 메모리관리정보 : base and limit registers, page tables, segment tables 계정정보 : time used, time limits, account numbers, job#, process# 입출력상태정보 : I/O devices list allocated to the process, list of open files

10 3.1 Process Concept(cont.) PCB 와프로세스 프로세스의생성시 : OS 가프로세스를위하여 PCB 의메모리를할당한다. OS 가 PCB 를초기화한다. OS 가해당큐에 PCB 를배치한다. 프로세스가활성화상태에서 OS 는 PCB 를해당큐로이동시킨다. 프로세스의종료시 OS 가 PCB 를해제한다 Fig. 3.3 Process Control Block (PCB)

11 3.2 Process Scheduling Process scheduling : 다중프로그램의수행을위하여일정절차에따라프로세스한개를선택하고 CPU 를할당하여실행을제어하는절차 Long-term scheduler (or job scheduler) Pool => memory(degree of multiprogramming) Unix 같은시분할시스템에는없음 Short-term scheduler (or CPU scheduler) CPU 할당 : must be very fast medium-term scheduler(swapper) degree of multiprogramming 을줄임 memory backing store Fig 3.7 Queueing-diagram representation of process scheduling Fig. 3.8 Addition of Medium Term Scheduling to queueing diagram

12 3.2 Process Scheduling(cont.) 스케줄링큐 (Scheduling Queues) 작업큐 (job queue) : memory 할당기다리는큐 (disk 에서 ) 준비큐 (ready queue) : CPU 에할당기다리는큐 장치큐 (device queue() : 입출력기다리는큐 큐잉도표 (queueing diagram) : 그림 3.7 Fig 3.7 The ready queue and various I/O device queues

13 3.2 Process Scheduling(cont.) I/O and CPU bound 프로세스 I/O-bound process spends more time doing I/O than computations, many short CPU bursts CPU-bound process spends more time doing computations; few very long CPU bursts Long-term scheduler should select a good process-mix of I/O-bound and CPU-bound process.

14 3.2 Process Scheduling(cont.) 문맥전환 (Context Switch) CPU 가한프로세스에서다른프로세스로 switch 될때 프로세스의실행 (cpu) 을정지할때 현프로세스의상태 (context) 를 PCB 에저장 새프로세스의실행시작시 새프로세스의상태 (context) 를 PCB 로부터복원 context-switch time : microsecond 프로세스의 Context 는 PCB 에표현된다.

15 3.3 Operations on Process Process Creation 부모프로세스가자식프로세스를생성한다. 트리를형성한다. 프로세스생성시스템호출 : fork/vfork, exec, CreateProcess, Process.Start 부모프로세스 자식프로세스 : 부모의데이터영역복제, cf. vfork 자원공유방법 ( 메모리파일등 ) 자식프로세스가부모프로세스의자원을전부공유, 일부공유또는공유하지못할수도있다. 프로세스생성후 부모자식프로세스모두동시실행 부모프로세스는모든자식이끝날때까지기다림 : wait system call 로

16 3.3 Operations on Process(cont.) 전형적인 Unix System 의프로세스트리예

17 3.3 Operations on Process(cont.) A tree of process on typical Solaris system Fig. 3.9 A tree of process on typical Solaris system

18 3.3 Operations on Process(cont.) 자식프로세스의형태 ( 주소공간의관점에서 ) 부모의것을복제 : fork 자식은새로운프로그램을가짐 : fork+exec Unix의예 : fork + exec의예 fork : 자식프로세스생성, 모든프로세스는 PID를가짐 fork+exec : 자식생성후자식을위한새프로그램로드 execl : 문자형인수포인터사용 execl( /bin/ls, ls, -l, NULL); execv : 인수배열의포인터 char *av[3]; av[0] = ls ; av[1] = -l ; av[2] = (char *)0; execv( /bin/ls, av);

19 3.3 Operations on Process(cont.) Unix fork() 로프로세스생성하는 C 코드 int main() { pid_t pid; pid = fork(); /* create new process */ if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); /* execute child process*/ else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); /* terminate successfully */ execv char *av[3]; av[0]= ls ; av[1]= -l ; av[2]=(char *)0; execv( /bin/ls, av); execlp, execvp 쉘환경변수 PATH 를따름 execlp( ls, ls, -l, (char *)0); execvp( ls, av); Fig Creating a separate process using the UNIX fork() system call

20 3.3 Operations on Process(cont.) Unix fork() 로프로세스생성하는 C 코드 int main() { Int x=10000; pid_t pid; pid = fork(); /* create new process */ if (pid == 0) { /* child process */ x=x+10000; printf( child:%d\n,x); else { /* parent process */ sleep(5); x=x-10000; printf ( parent::%d\n,x); wait(null); 결과 child:20000 parent : 0 int main() { Int x=10000; pid_t pid; pid = vfork(); /* create new process */ if (pid == 0) { /* child process */ x=x+10000; printf( child:%d\n,x); else { /* parent process */ sleep(5); x=x-10000; printf ( parent::%d\n,x); wait(null); 결과 child:20000 parent :10000

21 3.3 Operations on Process(cont.) Fork 실행전후의구조 (linux 에서 ) child data pid x : parent data parent code pid x : if(pid==0) pid=fork(); x=10000; xs esp eip=100 eax= 0 pid=40 parent data parent/child code pid x : if(pid==0) pid=fork(); x=10000; ss esp eip=100 eax=41 pid=40 ss esp eip=100 eax=0 0 pid=41 Kernel mode stack task_struct memory parent task_nion (pcb) Figure a. fork() 실행전 memory parent task_nion (pcb) Figure b. fork() 실행후 child task_nion (pcb) system call fork() 의처리 fork() : 명령어 int 0x80, 인터럽트처리루틴 (ISR1) 로점프하여다음을처리 cpu 의주요레지스터 (ss,esp,eflag,cs,eip 등 ) 들을프로세스의 kernel mode stack 으로저장 system call sys_fork() ISR2 를호출한다. sys_fork() : ISR2 호출 do_fork() do_fork() core 복제, 부모프레세스의 core image( 코드, 데이터, 스택 ) 복제 task_union(process descriptor,pcb) 복제 자신의 task_struct 에정보조정 : 복제된 core image 위치, pid 등 자시프로세스를프로세스큐ㅡ런큐에삽입 자식에게는 0 부모에게는 pid 를리턴 ( 자식의 KMS.eax=0, 부모 KMS.eax= 자식의 pid)

22 3.3 Operations on Process(cont.) Win32 API 를이용한새프로세스생성 (C ) #include <windows.h> #include <stdio.h> int main( VOID ) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); // Start the child process. if(!createprocess( NULL, // No module name (use command line). "C:\\WINDOWS\\system32\\mspaint.exe", // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) CloseHandle( pi.hthread );; handles.finite );etlasterror() );

23 Win32 API 를이용한새프로세스생성 (C# ) using System.Diagnostics; using System.Runtime.InteropServices; namespace ProcessBasic { class Program { static void Main(string[] args) { STARTUPINFO si = new STARTUPINFO(); PROCESS_INFORMATION pi = new PROCESS_INFORMATION(); CreateProcess("C:\\WINDOWS\\SYSTEM32\\Calc.exe", null, IntPtr.Zero, IntPtr.Zero, false, 0, IntPtr.Zero, null, ref si, out pi); // "C:\\WINDOWS\\SYSTEM32\\Calc.exe", // 생성될프로세스의이름 (path) // null, // 생성될프로세스에인자전달 ( 변수만가능 ) // IntPtr.Zero, // 프로세스보안속성지정 // IntPtr.Zero, // 쓰레드보안속성지정 // false, //TRUE: 부모쓰레드가소유하고있는상속가능한핸들을상속한다. // 0, / 생성되는프로세스의특성을결정짓는옵션 ( 우선순위 ) // IntPtr.Zero, // 생성하는프로세스의 Environment Block 지정 NULL: 부모환경복사 // null, // 생성하는프로세스의현재디렉토리성정 NULL: 부모의현재디렉토리 // ref si, // STARTUPINO 구조체변수를초기화한후변수포인터로전달 // out pi // 생성하는프로세스리정보를얻기위한인자 PROCESS_INFORMATION 구조체변수의주소값으로인자전달 Console.ReadLine();

24 Win32 API 를이용한새프로세스생성 (C# )

25 Result s : Process 객체를이용한방법 (C#)

26 3.3.2 Process Termination 프로세스종료 (Process Termination) exit 시스템종료 계산결과는부모에게 Return 메모리 ( 물리적 / 가상적 ), 오픈한화일, I/O 버퍼를 OS 에게돌려줌 abort 시스템호출 부모만호출 ( 그렇지않으면서로죽이는일생김 ) 실행종료이유 자식이할당된자원을초과사용할때 자식의 task 가더이상필요없을때 부모가종료될때 DEC VMS 또는 Unix 계단식 (cascading) 종료 부모종료 OS 가모든자식종료 ( 예 ) Unix (mystatus.c 참조 ) exit system call 로프로세스종료 wait system call : return 값 = 종료하는자식의 pid wait(&status) /* int status */ status : 자식이 exit 으로종료될때의상태정보» 정상종료경우 : 하위 8bits 는 0, 상위 8bits 는 exit status( 자식프로세스가 exit 명령으로전달한값 ),» signal 로종료된경우 : 하위 8bits 는 signal 번호, 상위 8bits 는 0 ( 상위 8 비트추출 ) status >> 8; status &= 0xFF;

27 exit example: mystatus.c & myexit.c $ cat mystatus.c #include <stdio.h> main () { int pid, status, childpid; $ cat myexit.c #include <stdio.h> main () { printf ("I'm going to exit with return code 77\n"); exit (77); printf ("I'm the parent process and my PID is %d\n", getpid ()); pid = fork (); /* Duplicate */ if (pid!= 0) /* Branch based on return value from fork () */ { printf ("I'm the parent process with PID %d and PPID %d\n", getpid (), getppid ()); childpid = wait (&status); /* Wait for a child to terminate. */ printf ("A child with PID %d, terminated with exit code low: %d, high: %d\n, childpid, (status & 0xFF), status >> 8); /* Linux */ else { printf ("I'm the child process with PID %d and PPID %d\n", getpid (), getppid ()); // execl ("/bin/ls", "ls", "-li", (char *)0); execl ("/export/home/mysung/osprog/myexit", "myexit", (char *)0); exit (42); /* Exit with a silly number */ printf ("PID %d terminates\n", getpid () );

28 Process.Kill() public void KillProcess() { Process myprocess = Process.GetCurrentProcess(); Console.WriteLine(" myprocess id/name:" + myprocess.id+"/"+myprocess.processname); //Create a process for 'NotePad.exe string Application = Environment.GetEnvironmentVariable("windir") Process nprocess= Process.Start(Application); Console.WriteLine("The generated Process ID/Name:{0/{1", nprocess.id, nprocess.processname); nprocess = Process.Start(Application); Console.WriteLine("The generated Process ID/Name:{0/{1", nprocess.id,nprocess.processname); Process[] nprocesses = Process.GetProcessesByName("Notepad"); for(int i=0; i<nprocesses.length; i++) { Console.ReadKey(); Console.WriteLine("The Process ID/Name:{0/{1 has been killed", nprocesses[i].id,nprocesses[i].processname); nprocesses[i].kill(); Console.ReadKey(); Console.WriteLine("The main Process ID/Name:{0/{1 has been killed", myprocess.id,myprocess.processname); myprocess.kill();

29 3.4 Interprocess Communication 두종류의프로세스 독립적프로세스 (Independent Processes) 프로세스간영향을받을필요가없다. 프로세스협조 ( Coorperating Processes) 상호통신 (IPC, InterProcess Communication ) 이필요하다. 공유메모리, 메시지매핑 협조의필요성 예 IPC 의두모델 정보공유 (information sharing) 계산속도증가 (computation speedup) : parallel computing 으로 모듈화 (modularity) 편이성 (convenience) : parallel computing 으로 생산자소비자문제 공유메모리 (Shared Memory) 메세지전달 (Message Passing) CPU Memory P 1 Shared Memory P 2 OS Post office mailbox CPU Memory P 3 port OS

30 3.4 Interprocess Communication Fig Communication models (a)message Passing (b) Shared Memory

31 3.4.1 Shared-Memory Systems(cont.) 프로세스협조예 : 생산자-소비자 (producer-consumer) 문제 compiler : assembly code 생산 assembler : assembly code 소비, object code 생산 loader : object code 소비 생산자와소비자문제 buffer가필요 생산자와소비자의동기화필요 ( 생산되지않은자료소비하지않게 ) 버퍼의종류 ( 생산자-소비자문제종류 ) 1. 무한버퍼 (unbounded-buffer) 생산자-소비자문제 생산자는항상생산, 소비자는소비할자료를기다릴수도 2. 유한버퍼 (bounded-buffer) 생산자-소비자문제 Memory P 1 Shared Memory P 2 kerne l Compiler (producer) Assembly code Assembler (consumer) 버퍼가꽉차있으면생산자가대기, 버퍼가비어있으면소비자가대기 유한버퍼생산자-소비자문제 (bounded-buffer producer-consumer problem) 스레드 (LWP) 로처리하면효과적이다 방법1: 공유메모리를이용한방법 (3.4.1절) 방법 2: 메시지전달을이용한방법 (3.4.2절) 방법3: 세마포어를이용한방법 (6.6.1절) 방법4: 세마포어와스레드를이용한방법 (6장프로젝트 p266)

32 3.4.1 Shared-Memory Systems(cont.) synchronization synchronization Bounded-Buffer Shared-Memory Solution Producer item nextproduced; while (true) { /* Produce an item in nextproduced */ while ((( (in+1) % BUFFER_SIZE) == out) ; /* do nothing -- no free buffers */ buffer[in] = nextproduced; in = (in + 1) % BUFFER SIZE; int out = 0; //used by consumer Consumer item nextconsumed; while (true) { while (in == out) ; // do nothing -- nothing to consume nextconsumed = buffer[out]; // remove an item from the buffer out = (out + 1) % BUFFER SIZE; /* consume the item in nextconsume */ Solution is correct, but can only use BUFFER_SIZE-1 elements Shared data #define BUFFER_SIZE 10 typedef struct {... item; item buffer[buffer_size]; int in = 0; //used by producer

33 IPC message Passing Systems Memory Memory Q No shared memory between 2 processes P Just wires (bus or network) kernel h/w kernel h/w Ask OS to send message IPC system call Send(host, process, message) Direct Do you know his PID (at coding time)? What if that his PID changes after coding? Send(host, port #) - Indirect Let Post-office(OS) provide mailbox code program using mailbox # (port)

34 프로세스간통신방식 message Passing Systems 메시지전달방식 (message-passing) IPC(interprocess-communication) 기능이용 : OS 가통신기능제공 ( 예 ) 유한버퍼생산자 - 소비자문제방법 2 공유메모리방식 (shared-memory) 응용프로그램작성자가응용레벨에서통신기능제공 ( 예 ) 유한버퍼생산자 - 소비자문제방법 1 IPC 기본구조 (Basic Structure) IPC 을위한 2 연산 send (message) receive(message) 프로세스 P 와 Q 가통신함 통신선 (uni or bi directional) 연결된상태에서 : 공유메모리, 네트워크, 하드웨어버스 send/receive 로연산 ( 통신 ) 링크의논리적구현과송수신연산의구현에따른분류 직접 (direct) 또는간접통신 : 하나의링크 / 우편함이용 동기식또는비동기식통신 : 대칭 (symmetric) 또는비대칭 (symmetric) 통신 : 연산에송수신자의이름지정에따라 자동 (automatic) 또는명시적 (explicit) 버퍼링 : 복사또는참조에의한전송 고정크기메시지 / 가변크기메세지

35 3.4.2 message Passing Systems(cont.) 링크의논리적구현방법에의한분류 명몀 (Naming, 프로세스이름 ) 에의한분류 1) 직접통신 : 송 / 수진자의이름을외부적으로표현 send(p,msg), receive(q,msg) 기본연산자 대칭적주소지정방식 : 두프로세스가상대의이름을이용하여송수신» Send(P, message) : 프로세스 P 에게메시지보냄» Receive(Q, message) : 프로세스 Q 로부터메시지받음» 1:1 통신 ( 링크사용 ) 비대칭적주소지정방식 : 송신자만수신자의이름을사용» Send(P, message) : 프로세스 P 에게메시지 message 보냄» Receive(id, message) : 임의의프로세스로부터메시지 message 받음 id = 통신이일어난순간메시지를보낸프로세스의이름이자동으로설정됨» 1:n 또는 n:1 통신가능 ( 예, 수신자가송신자를굳이알필요가없을때 ) 통신링크의성질 단점 각프로세스쌍사이에는정확히하나의링크가존재 프로세스의쌍사이에링크가자동으로설정된다 ( 단지상대의고유명만으로 ) 양방향통신링크 프로세스정의의모듈성을제한 프로세스이름의변경은다른프로세스의정의의조사를필요로한다.

36 3.4.2 message Passing Systems(cont.) 2) 간접통신 : 프로세스또는시스템에포함된우편함 (mailbox) 을통한통신 프로세스가여러개의서로다른우편함을이용하여통신 기본연산자 send(a, message) : 메시지를우편함 A 로보냄 receive(a, message) : 우편함 A 로부터메시지수신함 통신링크의성질 한쌍의프로세스사이에공유우편함이있을때만링크가설정 한링크는 2 개이상의프로세스와관계 우편함은여러개의프로세스에의하여공유가능 단일또는양방향링크 수신프로세스의결정 1. 한링크에 2 개의프로세스만관계시키는방법 2. 한개의프로세스만수신자가되게하는방법 : 다수의송신가능 3. 시스템이송신자에게전송하는방법 개별프로세스의일부로우편함이소유되는경우 1. 송신자 ( 사용자 ) 는해당메일박스에송신하고 (send(p,msg)) 수신자는자기메일박스에서가져온다. (receive(msg)) 2. 프로세스간공유우편함을운용하는방법한프로세스가우편함 (A) 을선언하고소유자가되며이우편함의이름을아는프로세스들이이우편함을외부우편함으로선언한후에송 / 수신한다. send(a,msg), receive(a,msg) 소유자종료시메일박스삭제, 삭제사실을모든프로세스에게통지 우편함이운영체제에소유되는경우 1) OS 가우편함을생성, 3) 메시지의송수신, 4) 우편함삭제시킨다. 프로세스가우편함에대한소유권 ( 사용권 ) 을시스템호출에의하여얻은후송신자및수신자가되어송 / 수신한다.

37 3.4.2 message Passing Systems(cont.) 버퍼링 (Buffering) 에의한분류 링크의메시지보유용량 Zero capacity : rendez-vous(no buffering) 동기적통신 Bounded capacity : 유한길이큐이용 자동버퍼링 Unbounded capacity : 무한길이큐이용 자동버퍼링 메시지형태 고정크기 : 구현간단, 프로그림복잡 ( 원메세지를분해, 결합헤야 ) 가변크기 : 구현복잡, 프로그램간단 형태화된메시지 간접통신에만적용, 우편함에의존되는지정된형태 송신지연유무 무지연메시지송신 : 복사가아닌참조방식으로메세지전송 수신자로부터응답시까지대기후송신 : 메시지고정크기 (8 단어 )

38 3.4.2 message Passing Systems(cont.) 동기화 (Synchronization) Blocking-Synchronous Blocking send: 수신프로세스가메시지를받을때까지멈춤 Blocking receive: 메시지가있을때까지멈춤 Non-blocking asynchronous Nonblocking send: 메시지보내고다른연산계속 Nonblocking receive: 올바른메시지이거나널메시지이거나상관하지않고받음

39 3.5 Examples of IPC Systems - POSIX POSIX Shared Memory APIs 프로세스는일차적으로 shmget (SHared Memory GET) 을이용하여공유메모리세스먼트생성 segment id = shmget(ipc PRIVATE, size, S_IRUSR S_IWUSR); 프로세스는공유메모리에접근하기위해 shmat (SHared Memory ATtach) 를이용하여자신의주소공간 (address space) 에부착 shared memory = (char *) shmat(segment_id, NULL, 0); 프로세스는반환된포인터가가리키는공유메모리에 read & write sprintf(shared memory, "Writing to shared memory"); 작업이끝나면프로세스는 shmdt (SHared Memory DeTach) 를이용하여자신의주소공간에서공유메모리를분리 shmdt(shared memory); 마지막으로프로세스는 shmctl(shared Memory ConTroL operation) 에 IPC_RMID 플래그를지정하여공유메모리세그먼트를시스템에서제거 shmctl(segment_id, IPC_RMID, NULL);

40 3.5.2 Examples of IPC Systems - Mach Mach communication is message based Even system calls are messages Each task gets two mailboxes at creation- Kernel and Notify Only three system calls needed for message transfer msg_send(), msg_receive(), msg_rpc() Mailboxes needed for communication, created via port_allocate()

41 3.5.3 Examples of IPC Systems Windows XP Message-passing centric via local procedure call (LPC) facility Only works between processes on the same system Uses ports (like mailboxes) to establish and maintain communication channels Communication works as follows: The client opens a handle to the subsystem s connection port object The client sends a connection request The server creates two private communication ports and returns the handle to one of them to the client The client and server use the corresponding port handle to send messages or callbacks and to listen for replies

42 3.5.3 Examples of IPC Systems Windows XP(cont.) Fig Local Procedure Calls in Windows XP

43 3.6 Communications in Client-Server Systems Sockets Remote Procedure Calls Remote Method Invocation (Java) Sockets A socket is defined as an endpoint for communication Concatenation of IP address and port The socket :1625 refers to port 1625 on host Communication consists between a pair of sockets

44 3.6.2 Remote Procedure Calls Remote procedure call (RPC) abstracts procedure calls between processes on networked systems Stubs client-side proxy for the actual procedure on the server The client-side stub locates the server and marshals the parameters The server-side stub receives this message, unpacks the marshaled parameters, and performs the procedure on the server

45 Execution of RPC Host Port From: client:kernel To :server:matachmaker Msg : address for RPC X From : server:matchmaker To : client:kernel msg : port P From : client:kernel To : client:p msg : <content> From : server:p To : client:kernel msg : <output>

46 3.6.2 Remote Method Invocation Remote Method Invocation (RMI) is a Java mechanism similar to RPCs RMI allows a Java program on one machine to invoke a method on a remote object

47 Assignment 1 socket 통신 (C#) Server Client Socket listener=new Socket( ) Socket sender=new Socket( ) listener.bind( :11000 ) listener.listen(10); sender.connect( :11000 ); Socket handler=listener.accept(); sender.send(msg); handler.receive(bytes) handler.send(msg); sender.receive(bytes)

48 1. using System; using System.Net; using System.Net.Sockets; using System.Text; public class SynchSocketServer { public static int Main(String[] args) 2. { 3. StartListening(); 4. return 0; 5. // Incoming data from the client. public static string data = null; public static void StartListening() { // Data buffer for incoming data. byte[] bytes = new Byte[1024]; Synch Socket Server-Client (C#) // Establish the local endpoint for the socket. // Dns.GetHostName returns the name of the // host running the application. IPHostEntry iphostinfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipaddress = iphostinfo.addresslist[0]; IPEndPoint localendpoint = new IPEndPoint(ipAddress, 11000); // Create a TCP/IP socket. Socket listener = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 1. // Bind the socket to the local endpoint and listen for incoming connections. try { listener.bind(localendpoint); listener.listen(10); // Start listening for connections. while (true) { Console.WriteLine("\nServer is waiting for a connection..."); // Program is suspended while waiting for an incoming connection. Socket handler = listener.accept(); data = null; // An incoming connection needs to be processed. while (true) { bytes = new byte[1024]; int bytesrec = handler.receive(bytes); data += Encoding.ASCII.GetString(bytes, 0, bytesrec); if (data.indexof("<eof>") > -1) { break; // Show the data on the console. Console.WriteLine("Server received Text : {0", data); // Echo the data back to the client. byte[] msg = Encoding.ASCII.GetBytes(data); handler.send(msg); handler.shutdown(socketshutdown.both); handler.close(); catch (Exception e) { Console.WriteLine(e.ToString() ; Console.WriteLine("\nPress ENTER to continue..."); Console.Read();

49 Synch Socket Server-Client (C#) using System using System.Net; using System.Net.Sockets; using System.Text; public class SynchSocketClient { public static int Main(String[] args) { StartClient(); return 0; public static void StartClient() { // Data buffer for incoming data. byte[] bytes = new byte[1024]; // Connect to a remote device. try { // Establish the remote endpoint for the socket. // This example uses port on the local computer. IPHostEntry iphostinfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipaddress = iphostinfo.addresslist[0]; IPEndPoint remoteep = new IPEndPoint(ipAddress,11000); // Create a TCP/IP socket. Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); // Connect the socket to the remote endpoint. Catch any errors. try { sender.connect(remoteep); Console.WriteLine("Socket connected to {0", sender.remoteendpoint.tostring()); // Encode the data string into a byte array. byte[] msg = Encoding.ASCII.GetBytes("This is a test<eof>"); // Send the data through the socket. int bytessent = sender.send(msg); // Receive the response from the remote device. int bytesrec = sender.receive(bytes); Console.WriteLine("Echoed test = {0", Encoding.ASCII.GetString(bytes,0,bytesRec)); // Release the socket. // sender.shutdown(socketshutdown.both); //sender.close(); Console.ReadKey(); catch (ArgumentNullException ane) { Console.WriteLine("ArgumentNullException : {0",ane.ToString()); catch (SocketException se) { Console.WriteLine("SocketException : {0",se.ToString()); catch (Exception e) { Console.WriteLine("Unexpected exception : {0", e.tostring()); catch (Exception e) { Console.WriteLine( e.tostring()); //try //try

50 Synch Socket Server-Client - Main (C#) using System.Diagnostics; using System.Threading; public class SynchronousSocketClient { public static void Main(String[] args) { string server string client Process pclient; Process pserver; pserver = Process.Start(server); Thread.Sleep(2000); pclient = Process.Start(client); Thread.Sleep(2000); pclient.kill(); pclient = Process.Start(client); Console.ReadKey();

51 Synch Socket Server-Client - 전체구조 (C#) Server.exe Main Socket listener = new Socket(...Tcp); listener.bind( IP# + Port # ); listener.listen(10); Socket handler = listener.accept(); handler.receive(msg); handler.send(msg); handler.shutdown(..); handler.close(); Client.exe Socket sender = new Socket(...Tcp); sender.connect( IP# + Port # ); sender.send(msg); sender.remoteendpoint sender.receive(bytes); sender.shutdown(..); sender.close(); Process pserver = Process.Start(server.exe); Process pclient = Process.Start(client.exe); Thread.Sleep(2000); pclient.kill(); pclient = Process.Start(client);

52 End of Chapter 3

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

4장

4장 제 2 부프로세스관리 (Process Management) 프로세스» 실행중인프로그램 (program in execution) CPU time, memory, files, I/O devices 등자원요구» 시스템의작업단위 (the unit of work)» 종류 1. 사용자프로세스 (user process) - user code 실행 2. 시스템프로세스 (system

More information

Microsoft PowerPoint os4.ppt

Microsoft PowerPoint os4.ppt 제 2 부프로세스관리 (Process Management) 프로세스» 실행중인프로그램 (program in execution) CPU time, memory, files, I/O devices 등자원요구» 시스템의작업단위 (the unit of work)» 종류 1. 사용자프로세스 (user process) - user code 실행 2. 시스템프로세스 (system

More information

Microsoft PowerPoint - o3.pptx

Microsoft PowerPoint - o3.pptx 3 장. 프로세스 프로세스관리 3장 프로세스 (Process) 4장 쓰레드 (Thread) 5장 프로세스동기화 (Synchronization) 6장 CPU 스케쥴링 2 목표 프로세스개념 프로세스는실행중인프로그램으로모든계산의기반이됨 프로세스의여러특성 스케쥴링, 생성및종료등 프로세스간통신 공유메모리 (shared memory), 메시지전달 (message passing)

More information

10주차.key

10주차.key 10, Process synchronization (concurrently) ( ) => critical section ( ) / =>, A, B / Race condition int counter; Process A { counter++; } Process B { counter ;.. } counter++ register1 = counter register1

More information

3ÆÄÆ®-11

3ÆÄÆ®-11 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 C # N e t w o r k P r o g r a m m i n g Part 3 _ chapter 11 ICMP >>> 430 Chapter 11 _ 1 431 Part 3 _ 432 Chapter 11 _ N o t

More information

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Microsoft PowerPoint os3.ppt [호환 모드]

Microsoft PowerPoint os3.ppt [호환 모드] 제2 부프로세스관리 (Process Management) 프로세스» 실행중인프로그램 (program in execution) CPU time, memory, files, I/O devices 등자원요구» 시스템의작업단위 (the unit of work)» 종류 1. 사용자프로세스 (user process) - user code 실행 2. 시스템프로세스 (system

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

Chap06(Interprocess Communication).PDF

Chap06(Interprocess Communication).PDF Interprocess Communication 2002 2 Hyun-Ju Park Introduction (interprocess communication; IPC) IPC data transfer sharing data event notification resource sharing process control Interprocess Communication

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

UniStore

UniStore Chapter 3. Process Concept Introduction to Operating Systems CSW3020 Prof. Young Pyo JUN CSW3020/Introduction to Operating Systems 1 What is a Process? 실행중인프로그램 프로그램은저장장치에, 프로세스는메인메모리에존재 시스템콜을통해자원을요구하는개체

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

Figure 5.01

Figure 5.01 Chapter 4: Threads Yoon-Joong Kim Hanbat National University, Computer Engineering Department Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading Issues Operating

More information

10.

10. 10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write

More information

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

ABC 11장

ABC 11장 12 장고급응용 0 수행중인프로그램 프로세스 모든프로세스는유일한프로세스식별번호 (PID) 를가짐 유닉스에서는 ps 명령을사용하여프로세스목록을볼수있음 12-1 프로세스 $ ps -aux USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND blufox 17725 34.0 1.6 146 105 i2 R 15:13 0:00

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - o8.pptx 메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode] Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾ P a 02 r t Chapter 4 TCP Chapter 5 Chapter 6 UDP Chapter 7 Chapter 8 GUI C h a p t e r 04 TCP 1 3 1 2 3 TCP TCP TCP [ 4 2] listen connect send accept recv send recv [ 4 1] PC Internet Explorer HTTP HTTP

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

Microsoft PowerPoint - RMI.ppt

Microsoft PowerPoint - RMI.ppt ( 분산통신실습 ) RMI RMI 익히기 1. 분산환경에서동작하는 message-passing을이용한 boundedbuffer 해법프로그램을실행해보세요. 소스코드 : ftp://211.119.245.153 -> os -> OSJavaSources -> ch15 -> rmi http://marvel el.incheon.ac.kr의 Information Unix

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

Chap04(Signals and Sessions).PDF

Chap04(Signals and Sessions).PDF Signals and Session Management 2002 2 Hyun-Ju Park (Signal)? Introduction (1) mechanism events : asynchronous events - interrupt signal from users : synchronous events - exceptions (accessing an illegal

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

좀비프로세스 2

좀비프로세스 2 Signal & Inter-Process Communication Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 좀비프로세스 2 좀비프로세스 (zombie process) 좀비프로세스란프로세스종료후메모리상에서사라지지않는프로세스 좀비프로세스의생성이유. 자식프로세스는부모프로세스에게실행결과에대한값을반환해야한다.

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

/chroot/lib/ /chroot/etc/

/chroot/lib/ /chroot/etc/ 구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

제9장 프로세스 제어

제9장 프로세스 제어 제 9 장프로세스제어 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 제 9 장 목차 프로세스생성 프로그램실행 입출력재지정 프로세스그룹 시스템부팅 2 9.1 절 프로세스생성 fork() 시스템호출 새로운프로그램을실행하기위해서는먼저새로운프로세스를생성해야하는데, fork() 시스템호출이새로운프로세스를생성하는유일한방법임. 함수프로토타입 pid_t fork(void);

More information

chapter4

chapter4 Basic Netw rk 1. ก ก ก 2. 3. ก ก 4. ก 2 1. 2. 3. 4. ก 5. ก 6. ก ก 7. ก 3 ก ก ก ก (Mainframe) ก ก ก ก (Terminal) ก ก ก ก ก ก ก ก 4 ก (Dumb Terminal) ก ก ก ก Mainframe ก CPU ก ก ก ก 5 ก ก ก ก ก ก ก ก ก ก

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

자바-11장N'1-502

자바-11장N'1-502 C h a p t e r 11 java.net.,,., (TCP/IP) (UDP/IP).,. 1 ISO OSI 7 1977 (ISO, International Standards Organization) (OSI, Open Systems Interconnection). 6 1983 X.200. OSI 7 [ 11-1] 7. 1 (Physical Layer),

More information

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

Microsoft PowerPoint - chap9 [호환 모드]

Microsoft PowerPoint - chap9 [호환 모드] 제 9 장프로세스관계 숙대창병모 1 Contents 1. Logins 2. Process Groups 3. Sessions 4. Controlling Terminal 5. Job Control 숙대창병모 2 로그인 숙대창병모 3 터미널로그인 /etc/ttys: 1 line per terminal device getty: opens terminal device

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2 제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

휠세미나3 ver0.4

휠세미나3 ver0.4 andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

Microsoft PowerPoint - ch09_파이프 [호환 모드]

Microsoft PowerPoint - ch09_파이프 [호환 모드] 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미

More information

SMB_ICMP_UDP(huichang).PDF

SMB_ICMP_UDP(huichang).PDF SMB(Server Message Block) UDP(User Datagram Protocol) ICMP(Internet Control Message Protocol) SMB (Server Message Block) SMB? : Microsoft IBM, Intel,. Unix NFS. SMB client/server. Client server request

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

Microsoft PowerPoint oshw1.ppt [호환 모드]

Microsoft PowerPoint oshw1.ppt [호환 모드] 제출일 : 4월 5일 ( 목 ) 까지 과제내용» 연습문제풀이 1 1.6 2 2.8 3 3.8» 프로그래밍과제 4 5 과제 1 : 기본이해 # ftp 211.119.245.75 (id: anonymous, passwd: 자기 loginid) 또는 (id: ftp, passwd:ftp) 한다음 # cd pub 하고 # get p.c 하여 p 프로그램의 version

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

o o o 8.2.1. Host Error 8.2.2. Message Error 8.2.3. Recipient Error 8.2.4. Error 8.2.5. Host 8.5.1. Rule 8.5.2. Error 8.5.3. Retry Rule 8.11.1. Intermittently

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

More information

thesis

thesis CORBA TMN Surveillance System DPNM Lab, GSIT, POSTECH Email: mnd@postech.ac.kr Contents Motivation & Goal Related Work CORBA TMN Surveillance System Implementation Conclusion & Future Work 2 Motivation

More information

MAX+plus II Getting Started - 무작정따라하기

MAX+plus II Getting Started - 무작정따라하기 무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,

More information

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

Microsoft Word - Network Programming_NewVersion_01_.docx

Microsoft Word - Network Programming_NewVersion_01_.docx 10. Unix Domain Socket 105/113 10. Unix Domain Socket 본절에서는 Unix Domain Socket(UDS) 에대한개념과이에대한실습을수행하고, 이와동시에비신뢰적인통신시스템의문제점에대해서분석하도록한다. 이번실습의목표는다음과같다. 1. Unix Domain Socket의사용법을익히고, IPC에대해서실습 2. TCP/IP의응용계층과전달계층의동작을구현및실습

More information

10X56_NWG_KOR.indd

10X56_NWG_KOR.indd 디지털 프로젝터 X56 네트워크 가이드 이 제품을 구입해 주셔서 감사합니다. 본 설명서는 네트워크 기능 만을 설명하기 위한 것입니다. 본 제품을 올바르게 사 용하려면 이 취급절명저와 본 제품의 다른 취급절명저를 참조하시기 바랍니다. 중요한 주의사항 이 제품을 사용하기 전에 먼저 이 제품에 대한 모든 설명서를 잘 읽어 보십시오. 읽은 뒤에는 나중에 필요할 때

More information

운영체제란? PC를구입하면 Windows XP, Windows 7, Linux, MS-DOS Mac OSX, ios 운영체제 : Operating System 운영체제가없는컴퓨터? 컴퓨터 : 프로세서와메모리 전원을켜면어떤일이? 휘발성메모리 - 야생마 프로그램을실행하려면

운영체제란? PC를구입하면 Windows XP, Windows 7, Linux, MS-DOS Mac OSX, ios 운영체제 : Operating System 운영체제가없는컴퓨터? 컴퓨터 : 프로세서와메모리 전원을켜면어떤일이? 휘발성메모리 - 야생마 프로그램을실행하려면 운영체제 Introduction 양희재교수 (hjyang@ks.ac.kr) / 경성대학교컴퓨터공학과 운영체제란? PC를구입하면 Windows XP, Windows 7, Linux, MS-DOS Mac OSX, ios 운영체제 : Operating System 운영체제가없는컴퓨터? 컴퓨터 : 프로세서와메모리 전원을켜면어떤일이? 휘발성메모리 - 야생마 프로그램을실행하려면?

More information

제1장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.

More information

MySQL-Ch10

MySQL-Ch10 10 Chapter.,,.,, MySQL. MySQL mysqld MySQL.,. MySQL. MySQL....,.,..,,.,. UNIX, MySQL. mysqladm mysqlgrp. MySQL 608 MySQL(2/e) Chapter 10 MySQL. 10.1 (,, ). UNIX MySQL, /usr/local/mysql/var, /usr/local/mysql/data,

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint APUE(Intro).ppt 컴퓨터특강 () [Ch. 1 & Ch. 2] 2006 년봄학기 문양세강원대학교컴퓨터과학과 APUE 강의목적 UNIX 시스템프로그래밍 file, process, signal, network programming UNIX 시스템의체계적이해 시스템프로그래밍능력향상 Page 2 1 APUE 강의동기 UNIX 는인기있는운영체제 서버시스템 ( 웹서버, 데이터베이스서버

More information