Microsoft PowerPoint os3.ppt [호환 모드]

Size: px
Start display at page:

Download "Microsoft PowerPoint os3.ppt [호환 모드]"

Transcription

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

2 제3 장프로세스 (Processes) 예전 1 program 실행 -> 오늘날 multiple program 의동시실행 프로세스개념 (Process Concept) ~ 프로세스 (The Process)» 프로그램코드 + 현재활동 (Current activity) PC(Program Counter) 레지스터값 스택 (stack) : 서브루틴, 매개변수, 복귀주소, 임시변수등 데이터부분 (data section) : 전역변수 프로세스상태 (Process State)» 생성 (new)» 수행 (running) : CPU가실행» 대기 (waiting) : I/O완료나 signal 기다림» 준비 (ready) : Processor 를받을준비가됨» 종료 (terminated) 3.2

3 Process in Memory 3.3

4 Linux 가상메모리구조 3.4

5 Linux 메모리관리자료구조 task_struct 구조체내의 struct mm_struct *mm» include/linux/sched.h 1169행» 메모리디스크립터 3.5

6 프로세스상태 (Process State) 3.6

7 프로세스개념 (Process Concept) p) 프로세스제어블럭 (Process Control Block)» 각프로세스는 PCB로표현됨» PCB 프로세스상태 : 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 스레드 (Threads)» a process = a single thread of execution (one task)» 많은현대 OS들이 multiple threads of control (multitasks at a time) 지원 3.7

8 Process Control Block (PCB) 3.8

9 Linux task_ struct 구조체 구조체를통한정보관리» 프로세스가생성되면 task_struct 구조체를통해프로세스의모든정보를저장하고관리 모든태스크들에게하나씩할당 include/linux/sched.h : line 1115 태스크 ID, 상태정보, 가족관계, 명령, 데이터, 시그널, 우선순위, CPU 사용량및파일디스크립터등생성된태스크의모든정보를가짐 alloc_task_struct struct 매크로를통해커널영역의메모리에서 8KB를할당받아프로세스디스크립터와커널스택의자료를저장» current : 현재실행되고있는태스크를가리키는변수 include/arch/x86/include/asm/cu l d / / rrent.h : line 37 커널스택과프로세스디스크립터 3.9

10 Linux task_ struct 구조체 태스크관계와관련된변수들 struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr;» p_opptr과 p_pptr : 부모태스크 p_oppr : Original Parent» p_cptr : 자식, p_ysptr : 아우, p_osptr : 형 struct task_struct *next_task, *prev_task;» 커널에존재하는모든태스크들은원형이중연결리스트로연결 SET_LINKS : 리스트에추가하는매크로 REMOVE_LINK : 리스트서삭제하는매크로 task_struct 구조체 3.10

11 프로세스스케줄링 (Process Scheduling) 스케줄링큐 (Scheduling Queues)» 작업큐 (job queue) : memory 할당기다리는큐 (disk 에서 )» 준비큐 (ready queue) : CPU에할당기다리는큐» 장치큐 (device queue() : 입출력기다리는큐» 큐잉도표 (queueing diagram) : 그림 3.7 스케줄러 (Schedulers)» 장기스케줄러 (long-term scheduler, job scheduler) pool -> memory(degree of multiprogramming) Unix 같은시분할시스템에는없음» 단기스케줄러 (short-term term scheduler, CPU scheduler) CPU 할당 : must be very fast» 중기스케줄러 (medium-term scheduler) swapping» degree of multiprogramming을줄임» memory -> backing store 3.11

12 준비큐와다양한입출력장치큐 3.12

13 프로세스스케줄링을표현하는큐잉도표 3.13

14 큐잉도표에중기스케줄링 (Medium Term Scheduling) 추가 3.14

15 프로세스스케줄링 (Process Scheduling) 문맥교환 (Context Switch)» CPU 가한 process 에서다른 process 로 switch 될때 save the state of the old process : CPU 와메모리 상태 (PCB 정보 ) load the saved state for new process : CPU 와메모리 상태 (PCB 정보 )» pure overhead : performance bottleneck -> threads 로해결» context-switch time : microsecond» address space 보존방법 : memory 관리기법에좌우 3.15

16 한프로세스에서다른프로세스로의 CPU Switch 3.16

17 프로세스에대한오퍼레이션 (Operations on Processes) 프로세스생성 (Process Creation)» 프로세스생성시스템호출 : fork, exec, CreateProcess, etc. 부모프로세스 자신프로세스 : 사용자원을부모프로세스의자원 (memory, files) 공유» 새프로세스생성후부모는 계속실행 모든자식이끝날때까지기다림 : wait system call 로 3.17

18 전형적인 UNIX System 의프로세스트리 3.18

19 A tree of processes on a typical Solaris 3.19

20 프로세스에대한오퍼레이션 (Operations on Processes)» 새프로세스의 2모델 ( 자식의주소공간관점에서본 ) 1) 자식은부모의것을복제 : fork 2) 자식은자신의새프로그램을가짐 : fork+exec군» execl : 문자형인수포인터들» execv : 인수배열의포인터 char *av[3]; av[0] = ls ; av[1] = -l ; av[2] = (char *)0; execv( /bin/ls, av);» Unix의예 : fork + exec 프로그램참조 1) fork : 자식 process 생성, 모든 process는 PID(Process identifier) 를가짐 2) fork + exec : 호출하는프로세스의기억장소에새프로그램 load 3.20

21 fork 시스템호출 printf( One\n ); pid = fork(); PC A printf(two\n ); fork BEFORE AFTER printf( One\n ); pid=fork(); printf( Two\n ); PC printf( One\n ); pid = fork(); printf( Two\n ); PC A B 3.21

22 fork 와 exec호출의조합 pid = fork(); PC A BEFORE FORK AFTER FORK wait((int*)0); PC execl( /bin/ls ); PC A B /* first line of ls */ PC AFTER FORK AFTER EXEC wait((int*)0); PC A 3.22 B (now runs ls)

23 fork() 로새프로세스를생성하는 Cprogram #include <stdio.h> void main(int argc, char *argv[]) { int pid; / fork another process / pid = fork(); if(pid < 0) { /* error occurred */ fprintf(stderr, Fork Failed ); exit(-1); else if (pid == 0) { /* child process) */ execl( /bin/ls, ls, -l, NULL); else { /* parent process */ wait(null); printf( Child Complete ); exit(0); /* fork another process */ execv char *av[3]; av[0]= ls ; av[1]= -l ; av[2]=(char a[] (ca *)0; execv( /bin/ls, av); execlp, execvp 쉘환경변수 PATH 를따름 execlp( ls, ls, -l, (char *)0); execvp( ls, av); 3.23

24 fork() example #include <stdio.h> int value = 5; main () { int pid; pid = fork (); /* Duplicate. Child and parent continue from here */ if (pid!= 0) /* pid is non-zero, so I must be the parent */ { wait(null); printf ("Parent: value = %d\n", value); else /* pid is zero, so I must be the child */ { value += 15; printf ("Child: value = %d\n", value); printf ("PID %d terminates.\n",,getpid ());/); /* Both processes execute this */ 3.24

25 fork() + exec() example 후면처리 (background processing)» 실행 $ gcc background.c o background $./background ls -l» 코드 $ cat background.c #include <stdio.h> main (argc, argv) int argc; char* argv []; { if (fork () == 0) /* Child */ { execvp (argv[1], &argv[1]); /* Execute other program */ fprintf (stderr, "Could not execute %s\n", argv[1]); 3.25

26 프로세스에대한오퍼레이션 (Operations on Processes) 프로세스종료 (Process Termination)» exit 시스템종료 계산결과는부모에게 Return 메모리 ( 물리적 / 가상적 ), 오픈한화일, I/O버퍼를 OS에게돌려줌» abort 시스템호출 부모만호출 ( 그렇지않으면서로죽이는일생김 )» 실행종료이유 자식이할당된자원을초과사용할때 자식의 task가더이상필요없을때 부모가종료될때 DEC VMS 또는 Unix 계단식 (cascading) 종료» 부모종료-> OS가모든자식종료» ( 예 ) Unix 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; 3.26

27 프로세스협조 (Cooperating Processes) 프로세스협조하는이유» 정보공유 (information sharing)» 계산속도증가 (computation speedup) : parallel computing으로» 모듈화 (modularity)» 편이성 (convenience) : parallel computing 으로 프로세스협조예 : 생산자-소비자 (producer-consumer) 문제» compiler : assembly code 생산» assembler : assembly code 소비, object code 생산» loader : object code 소비 생산자와소비자가동시에수행되려면 => buffer가필요 ( 동시수행을위해 ) => 생산자와소비자의동기화필요 ( 생산되지않은자료소비하지않게 ) 생산자- 소비자문제종류» 1. 무한버퍼 (unbounded-buffer) 생산자-소비자문제 생산자는항상생산, 소비자는소비할자료를기다릴수도» 2. 유한버퍼 (bounded-buffer) buffer) 생산자- 소비자문제 버퍼가꽉차있으면생산자가대기, 버퍼가비어있으면소비자가대기 3.27

28 프로세스협조 (Cooperating Processes) 유한버퍼생산자-소비자문제 (bounded-buffer producer-consumer problem) -> 스레드 (LWP) 로하면효과적» Version 1: 공유메모리를이용한해결책 (3.4.1절)» Version 2: 메시지전달을이용한해결책 (3.4.2절)» Version 3: 세마포어를이용한해결책 (6.6.1 절 )» Version 4: 세마포어와스레드를이용한해결책 (6장프로젝트 p266)» Version 5: Java synchronization을이용한해결책 3.28

29 Shared Memory count=3 in=0 out=0 count=0 in=0 out=0 count=2 in=2 out=0 2 0 count=0 in=0 out=0 count=1 in=0 out=2 1 count=1 in=1 out=0 count=2 in=0 out=1 3.29

30 Shared Memory count=3 in=0 out=0 count=0 in=0 out=0 count=2 in=2 out=0 count=0 in=0 out=0 count=1 in=0 out=2 count=2 in=0 out=1 count=1 in=1 out=0 3.30

31 공유메모리를이용하는생산자 -소비자문제 import java.util.*; public class BoundedBuffer { public BoundedBuffer() { // buffer is initially empty count = 0; in = 0; out = 0; buffer = new Object[BUFFER_SIZE]; // producer calls this method public void enter(object item) { // The enter method // consumer calls this method public Object remove() { // The remove() method public static final int NAP_TIME = 5; private static final int BUFFER_SIZE = 3; private volatile int count; private int in; // points to the next free position private int out; //points to the next full position private Object[] buffer; 3.31

32 공유메모리시스템의생산자 enter() 메소드 public void enter(object item) { while (count == BUFFER_SIZE) ; // do nothing // add an item to the buffer ++count; buffer[in] = item; in = (in + 1) % BUFFER_SIZE; if (count == BUFFER_SIZE) else System.out.printIt( Producer Entered + item + Buffer Full ); System.out.printIt( Producer Entered + item + Buffer size = + count); 3.32

33 공유메모리시스템의소비자 remove() 메소드 public Oject remove() { Object item; while (count == 0) ; // do nothing // remove an item to the buffer --count; item = buffer[out]; out = (out + 1) % BUFFER_SIZE; if (count == 0) else System.out.printIt( Consumer Consumed + item + BufferEmpty ); System.out.printIt( Consumer Consumer + item + Buffer size = + count); 3.33

34 공유메모리시스템의 Consumer.java import java.util.*; public class Consumer extends Thread { public Consumer(BoundedBuffer b) { buffer = b; public void run() { Date message; while (true) { int sleeptime = (int) (BoundedBuffer.NAP_TIME * Math.random() ); System.out.println( println("consumer sleeping for " + sleeptime + " seconds"); try { sleep(sleeptime*1000); catch(interruptedexception e) { // consume an item from the buffer System.out.println( println("consumer wants to consume. "); message = (Date)buffer.remove(); private BoundedBuffer buffer; 3.34

35 공유메모리시스템의 Producer.java import java.util.*; public class Producer extends Thread { public Producer(BoundedBuffer b) { buffer = b; public void run() { Date message; while (true) { int sleeptime = (int) (BoundedBuffer.NAP_TIME * Math.random() ); System.out.println("Producer sleeping for " + sleeptime + " seconds"); try { sleep(sleeptime*1000); catch(interruptedexception e) { // produce an item & enter it into the buffer message = new Date(); System.out.println( println("producer produced " + message); buffer.enter(message); private BoundedBuffer buffer; 3.35

36 공유메모리시스템의 Server.java public class Server { public static void main(string args[]) { BoundedBuffer d server = new BoundedBuffer(); d // now create the producer and consumer threads Producer producerthread = new Producer(server); Consumer consumerthread = new Consumer(server); producerthread.start(); consumerthread.start(); 3.36

37 프로세스간통신 (Interprocess Communication) 통신방식 <- 한시스템에서둘다사용해도됨» 공유메모리방식 (shared-memory) 응용프로그램작성자가응용레벨에서통신기능제공 ( 예 ) 유한버퍼생산자-소비자문제 version 1» 메시지전달방식 (message-passing) IPC(interprocess-communication) 기능이용 : OS가통신기능제공 ( 예 ) 유한버퍼생산자- 소비자문제 version 2 IPC 기본구조 (Basic Structure)» IPC기능의 2연산 send (message) receive(message)» 프로세스 P와 Q가통신함 -> 통신선이전재 링크» 공유메모리» bus» network send/receive 연산 메시지시스템을구현하는기법들» 직접 (direct) 또는간접통신» 대칭 (symmetric) 또는비대칭 (symmetric) 통신» 자동 (automatic) 또는명시적 (explicit) 버퍼링» 복사 (copy) 에의한전송또는참고 (reference) 에의한전송» 고정길이 (fixed-sized) 또는가변길이 (variable-sized) 메시지 3.37

38 프로세스간통신 (Interprocess Communication) 명칭부착 (Naming) 1) 직접통신 (Direct Communication) 대칭적통신 : 두프로세스 (sender/receiver) 가상대의이름을호출» Send(P, message) : 프로세스 P에게메시지보냄» Receive(Q, message) : 프로세스 Q로부터메시지받음 비대칭적통신 : sender만 receiver 호출» Send(P, message) : 프로세스 P에게메시지보냄» Receive(id, message) : 임의의프로세스로부터메시지받음 id = 통신이일어난순간메시지를보낸프로세스의이름으로설정됨 직접통신의단점» 프로세스이름바뀌면전부고쳐야 (limited modularity) 2) 간접통신 (Indirect Communication) mailbox(ports) 통해통신» send(a, message) : mailbox A에메시지보냄» receive(a, message) : mailbox로부터메시지받음 mailbox의구현» 프로세스가 mailbox소유» OS 가 mailbox 소유 3.38

39 프로세스간통신 (Interprocess Communication) 동기화 (Synchronization)» Blocking send: 수신프로세스가메시지를받을때까지멈춤» Nonblocking send: 메시지보내고다른연산계속» Blocking receive: 메시지가있을때까지멈춤» Nonblocking receive: 올바른메시지이거나널메시지이거나상관하지않고받음 버퍼링 (Buffering)» 링크의메시지보유용량 Zero capacity : rendez-vous(no buffering) 동기적통신 Bounded capacity : 유한길이큐이용 자동버퍼링 Unbounded d capacity : 무한길이큐이용 자동버퍼링 3.39

40 프로세스간통신 (Interprocess Communication) 자동버퍼링경우» 보통비동기적통신 (asynchronous communication) 이일어남 보낸메시지도착여부모름 꼭알아야할경우 : 명시적통신 P : send(q, message); receive(q, message); Q : receive(p, message); send(p, acknowledgment ); 특별한경우» 비동기적통신 : 메시지보낸프로세스는절대로지연되지않음 보낸메시지미처받기전에새메시지보내면이전메시지유실될수있음 메시지유실방지위해복잡한명시적동기화필요» 동기적통신 : 메시지보낸프로세스는받았다는회신받을때까지기다림 Thoth OS : reply(p, message) 가메시지보낸프로세스와받는프로세스의수행재개 Sun RPC(Remote Procedure Call) 동기적통신 (synchronous communication)» sender : subroutine call -> reply올때까지블록됨» receiver : 계산결과를 reply ( Information 참조 ) 3.40

41 프로세스간통신 (Interprocess Communication) 예외조건 (Exception Conditions)» centralized 또는 distributed system에서고장발생시오류의회복 ( 예외조건 ) 필요» 프로세스종료 (Process Terminates) P는종료된 Q를기다림 -> P는블록됨» P 종료» Q 종료사실을 P 에알림 P가종료된 Q에메시지보냄 -> Q의 reply 기다려야할경우블록됨» 메시지유실 (Lost Messages) OS가탐지및처리책임 sender가탐지및처리책임 OS가탐지, sender가처리 훼손된메시지 (Scrambled Messages) 통신채널의잡음 (noise) 때문 -> 보통 OS가재전송 오류검사코드 (check sums, parity, CRC) 으로조사 3.41

42 Mailbox 를이용하는생산자 - 소비자문제 import java.util.*; public class MessageQueue { public MessageQueue() { queue = new Vector(); // This implements a nonblocking send public void send(object item) { queue.addelement(item); // This implements a nonblocking receive public Object receive() { Object item; if (queue.size() == 0) return null; else { item = queue.firstelement(); queue.removeelementat(0); return item; private Vector queue; 3.42

43 메시지시스템의생산자프로세스와소비자프로세스 생산자프로세스 MessageQueue mailbox; while (true) { Date message = new Date(); mailbox.send(message); 소비자프로세스 MessageQueue mailbox; while (true) { Date message =(Date) mailbox.receive(); if (message!=null) // consume the message 3.43

44 메시지시스템의 Producer.java import java.util.*; class Producer extends Thread { public Producer(MessageQueue m) { mbox = m; public void run() { Date message; while (true) { int sleeptime = (int) (Server.NAP_TIME * Math.random() ); System.out.println("Producer sleeping for " + sleeptime + " seconds"); try { sleep(sleeptime*1000); catch(interruptedexception e) { message = new Date(); System.out.println("Producer produced " + message); // produce an item & enter it into the buffer mbox.send(message); private MessageQueue mbox; 3.44

45 메시지시스템의 Consumer.java import java.util.*; class Consumer extends Thread { public Consumer(MessageQueue m) { mbox = m; public void run() { Date message; while (true) { int sleeptime = (int) (Server.NAP_TIME * Math.random() ); System.out.println("Consumer sleeping for " + sleeptime + " seconds"); try { sleep(sleeptime*1000); catch(interruptedexception e) { // consume an item from the buffer System.out.println("Consumer wants to consume."); message = (Date)mbox.receive(); if (message!= null) System.out.println("Consumer consumed " + message); private MessageQueue mbox; 3.45

46 메시지시스템의 Server.java import java.util.*; public class Server { public Server() { // first create the message buffer MessageQueue mailbox = new MessageQueue(); // now create the producer and consumer threads Producer producerthread = new Producer(mailBox); Consumer consumerthread = new Consumer(mailBox); producerthread.start(); consumerthread.start(); public static void main(string args[]) { Server server = new Server(); public static final int NAP_TIME = 5; 3.46

47 IPC 실례 : POSIX Shared Memory 프로세스는일차적으로 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); 3.47

48 IPC 실례 : Mach 분산시스템을위한 OS 시스템호출, task 간정보전달을메시지로 port(= mailbox) task 생성 => (kernel mailbox, notify mailbox) 생성 system calls» msg_send» msg_receive» msg_rpc (remote procedure call)» port_allocate : 새 mailbox 생성, buffer size = 8, FIFO order» port_status : 주어진 mailbox의메시지수반환 메시지형태» 고정길이 header 메시지길이 두 mailbox 이름 ( 그중하나는 sender 의 mailbox; reply 위한 return address 포함 )» 가변길이 data portion: 정형화된 (typed) 데이터항목들의리스트 3.48

49 프로세스간통신 (Interprocess Communication)» send 연산 수신 mailbox 가 full 이아니면메시지복사 수신 mailbox가 full이면 4 가지중선택 1 mailbox에빈공간이생길때까지대기 2 최대 n 밀리초대기 3 기다리지않고즉시복귀 4 메시지를임시로 cache : 메시지하나만 OS가보관 ( 메시지가실제로목표 mailbox에들어갔을때 reply ; only one pending message) line printer driver 등서버태스크경우» receive 연산 어떤 mailbox 또는 mailbox set로부터메시지를읽을지를명시 지정된 mailbox 로부터또는 mailbox set 중한 mailbox 로부터메시지수신 읽을메시지없으면최대 n 밀리초대기하거나대기하지않음» 메시지시스템의단점 double copy(sender -> mailbox, mailbox -> receiver) Mach는 virtural memory 기법으로두번복사않음 ( 송신스레드와수신스레드를같은주소공간으로 mapping 시킴 ) 3.49

50 IPC 실례 : Windows XP XP subsystem server 와메시지전달방식으로통신 : 지역프로시주어호출기능 (LPC; Local Procedure Call facility)» LPC: RPC(Remote Procedure Call) 기법과유사 연결포트 (connection port) 와통신포트 (communication port) 사용 통신작업» 클라이언트가연결포트객체에대한 handle 을 open» 클라이언트가연결요청» 서버는두개의사적인 (private) 통신포트를생성하고클라이언트에게두포트중하나의 handle 을돌려줌» 클라이언트와서버는해당통신포트의 handle을이용하여메시지를보내거나, 응답호출 (callback) 을하거나, 응답 (reply) 을기다림 세가지메시지전달기법» 포트의메시지큐 (~256 bytes) 를중간저장소로이용, 즉시응답하기어려울때알려주는 callback 기법사용가능» 전송할메시지가크면공유메모리인섹션객체 (section object) 를이용, 섹션객체의포인터와크기정보전송하여데이터복사피함, 즉시응답하기어려울때알려주는 callback 기법사용가능» quick LPC : 클라이언트가연결요청후 quick LPC 지시, 서버는클라이언트전용서버스레드 (dedicated server thread) 생성 연결요청, 메시지담을 64KB 섹션객체, 동기화를수행하는한쌍의사건객체 (event pare object) 처리 장점 : 메시지복사, 포트객체사용, 호출한클라이언트파악위한 overhead 제거 단점 : 다른두방법보다많은자원사용 메시지전달 overhead 감소위해여러메시지들을한메시지로 batch 하기도함 3.50

51 IPC 실례 : Windows XP 3.51

52 소켓통신 (Socket Communication) 3.52

53 Time-of-Day: Server.java import java.net.*; import java.io.*; public class DateServer { public static void main(string[] args) { try { ServerSocket sock = new ServerSocket(6013); // now listen for connections while (true) { catch (IOException ioe) { Socket client = sock.accept(); // we have a connection PrintWriter pout = new PrintWriter(client.getOutputStream(), true); // write the Date to the socket pout.println(new java.util.date().tostring()); // close the socket and resume listening for more connections client.close(); System.err.println(ioe);

54 Time-of-Day: Client.java import java.net.*; import java.io.*; public class DateClient t { public static void main(string[] args) { try { // this could be changed to an IP name or address other than the localhost Socket sock = new Socket(" ",6013); InputStream in = sock.getinputstream(); BufferedReader bin = new BufferedReader(new InputStreamReader(in)); String line; while( (line = bin.readline())!= null) sock.close(); catch (IOException ioe) { System.out.println(line); System.err.println(ioe);

55 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 marshalls the parameters. The server-sideside stub receives this message, unpacks the marshalled parameters, and peforms the procedure on the server. 3.55

56 Execution of RPC 3.56

57 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. 3.57

58 Marshalling Parameters 3.58

59 ( 참고 ) 파이프 프로세스간상호통신메카니즘 단방향통신을제공 일반적으로, 유틸리티표준출력을다른유틸리티의표준입력과연결하기위해셸내에서사용 파이프종류» 명명되지않은파이프 (unnamed pipe)» 명명된파이프 (named pipe) 시스템프로그래밍 3.59 인천대학교컴퓨터공학과 59 성미영

60 ( 참고 ) 파이프» 명명되지않은파이프 : pipe( ) 4K(BSD) 혹은 40K( 시스템 V) 정도의크기 단방향통신링크 (unidirectional communication link) read(), write(), close() 를사용하여파이프의읽기, 쓰기, 종료가수행 양방향통신을위해서는 2 개의파이프를사용 동작 System call: int pipe pp ( int fd [ ] )» 명명되지않은파이프생성후, 2개의파일기술자반환 fd [0] - 파이프의 읽기 끝과연관된기술자저장 fd [1] - 파이프의 쓰기 끝과연관된기술자저장» 커널이새로운파이프에충분한공간을할당할수없으면 -1 반환하고, 그렇지않으면 0 반환» 소스프로그램 : P514 시스템프로그래밍 3.60 인천대학교컴퓨터공학과 60 성미영

61 ( 참고 ) 파이프» 파이프를생성한프로세스와그의자손프로세스만이그파이프를사용 파이프를호출 프로세스 A 파이프를이용할수없음 프로세스 B 프로세스 C 프로세스 D 프로세스 E 파이프를공용 시스템프로그래밍 3.61 인천대학교컴퓨터공학과 61 성미영

62 ( 참고 ) 파이프» 명명된파이프 or FIFO(First In First Out) 대략 40K 의큰버퍼용량을가짐 명명되지않은파이프보다는덜제한적 네트워크를통과해동작하지않음 이점» 파일시스템에존재하는 UNIX 파일이름을가짐» 관련없는프로세스들에의해서사용될수있음 ( 소유자, 크기, 접근허가등이지정 )» 명시적으로삭제될때까지존재 소스프로그램 : P585» 명명된파이프생성 유닉스유틸리티 mknod를사용 시스템호출 mknod( ) 를사용 (1) mknod 사용하여파이프생성 $ mknod mypipe p. 파이프생성 mypipe : FIFO의이름 p : mknod 가 FIFO 를생성하도록지정 $ chmod ug+rw mypipe. 허가권갱신 시스템프로그래밍 3.62 인천대학교컴퓨터공학과 62 성미영

63 ( 참고 ) 파이프 (2) mknod() 사용하여파이프생성» 프로그램상에서 FIFO 생성시사용» 생성한 FIFO는 UNIX의 rm 명령이나 unlink() 시스템호출로제거» 처리가정상종료 : 0 반환» 비정상종료시 : -1 반환 int mknod(const char *path, mode_t mode, dev_t dev); path 로지정된경로명으로새로운파일을생성 새로운파일의화일형및허가는 mode 에지정 mode 가블록형특수장치또는문자형특수파일을표시하면 dev에는그시스템구성에의존 시스템프로그래밍 3.63 인천대학교컴퓨터공학과 63 성미영

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

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

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

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

Microsoft PowerPoint - o3.pptx

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

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

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

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

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

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

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

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

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

개요

개요 ( 분산통신실습 1) : 소켓 (Sockets) 소켓 : 저수준패킷스트림전송 유닉스소켓 (cseunix.incheon.ac.kr 211.119.245.68 에서프로그램 ) inettime 소스코드참조 ( 실습 ) 시간을 10회반복하여출력하도록프로그램을수정하세요. ( 과제 1-1) 유닉스채팅프로그램채팅서버가임의의클라이언트가채팅에참가하는요청을하면이를채팅참가자리스트에추가하며채팅에참가하고있는클라이언트들이보내오는메시지를모든채팅참가자에게다시방송하는기능을수행해주는

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

제1장 Unix란 무엇인가?

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

More information

Microsoft PowerPoint os5.ppt

Microsoft PowerPoint os5.ppt 5 장스레드 (Threads) 프로세스 = 자원 + PC 스레드 : 새 PC (a thread of control) 로같은 address space 를실행하는 fork 와유사 스레드 (Threads) 개요 ~ 경량프로세스 (LWP; lightweight process) = 스레드» CPU 를이용하는기본단위» thread ID, PC, 레지스터세트, 스택영역을가짐»

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

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

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

좀비프로세스 2

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

More information

Microsoft PowerPoint os5.ppt [호환 모드]

Microsoft PowerPoint os5.ppt [호환 모드] 5 장스레드 (Threads) 프로세스 = 자원 + PC 스레드 : 새 PC (a thread of control) 로같은 address space 를실행하는 fork 와유사 스레드 (Threads) 개요 경량프로세스 (LWP; lightweight process) = 스레드» CPU 를이용하는기본단위» thread ID, PC, 레지스터세트, 스택영역을가짐»

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

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

자바-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

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

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

2009년 상반기 사업계획

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

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

슬라이드 1

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

More information

Microsoft PowerPoint oshw1&2.ppt [호환 모드]

Microsoft PowerPoint oshw1&2.ppt [호환 모드] 과제 1 : 기본이해 (4 월 8 일까지 ) 1. 1장 & 2장연습문제풀이 1 1.4 2 1.17 3 2.3 4 2.7 2. 프로그래밍과제 1» 연습문제 2.18 프로그램안에서가능한한많은 system call을사용한다. ptrace, dtrace 시스템호출추적방법은테스트한후수업시간에설명할예정이다. 3. 프로그래밍과제 2 ( 교재 p138 Chapter 3 프로젝트

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

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 oshw1.ppt [호환 모드]

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

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

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

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

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

제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

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

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

12-file.key

12-file.key 11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,

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

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

목차 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

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

제9장 프로세스 제어

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

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

BMP 파일 처리

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

More information

Module 4: Processes

Module 4:  Processes Chapter 3 : Processes Yoon-Joong Kim Hanbat National University, Computer Engineering Department Chapter 3: Processes 3.1 Process Concept 3.2 Process Scheduling 3.3 Operations on Process 3.4 Interprocess

More information

Microsoft PowerPoint - 09-Pipe

Microsoft PowerPoint - 09-Pipe 9. 파이프 상명대학교소프트웨어학부 파이프 시그널은이상한사건이나오류를처리하는데는이용하지만, 한프로세스로부터다른프로세스로대량의정보를전송하는데는부적합하다. 파이프 한프로세스를다른관련된프로세스에연결시켜주는단방향의통신채널 2 pipe() Usage #include int pipe(int filedes[2]); 3 < ex_1.c > #include

More information

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

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

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

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

More information

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 25 장네트워크프로그래밍 이번장에서학습할내용 네트워크프로그래밍의개요 URL 클래스 TCP를이용한통신 TCP를이용한서버제작 TCP를이용한클라이언트제작 UDP 를이용한통신 자바를이용하여서 TCP/IP 통신을이용하는응응프로그램을작성하여봅시다. 서버와클라이언트 서버 (Server): 사용자들에게서비스를제공하는컴퓨터 클라이언트 (Client):

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

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

11장 포인터

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

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

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

슬라이드 1

슬라이드 1 프로세스 (Process) (1) Chapter #5 Process 정의 Process 구조 Process Context Process Scheduling 강의목차 Unix System Programming 2 Program( 프로그램 ) Process 정의 (1) 기계어명령어와데이터를모아놓은실행파일 C 언어등프로그램언어로작성된소스파일을컴파일링하여생성 COFF(Common

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

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

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

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

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

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

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

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

Sena Technologies, Inc. HelloDevice Super 1.1.0

Sena Technologies, Inc. HelloDevice Super 1.1.0 HelloDevice Super 110 Copyright 1998-2005, All rights reserved HelloDevice 210 ()137-130 Tel: (02) 573-5422 Fax: (02) 573-7710 E-Mail: support@senacom Website: http://wwwsenacom Revision history Revision

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

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

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode] TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

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

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

(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

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

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

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

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

untitled

untitled Memory leak Resource 力 金 3-tier 見 Out of Memory( 不 ) Memory leak( 漏 ) 狀 Application Server Crash 理 Server 狀 Crash 類 JVM 說 例 行說 說 Memory leak Resource Out of Memory Memory leak Out of Memory 不論 Java heap

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

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f… Command JSTORM http://www.jstorm.pe.kr Command Issued by: < > Revision: Document Information Document title: Command Document file name: Revision number: Issued by: Issue

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

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

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장 Unix란 무엇인가?

제1장  Unix란 무엇인가? 1 소켓 2 1 소켓 클라이언트 - 서버모델 네트워크응용프로그램 클리이언트 - 서버모델을기반으로동작한다. 클라이언트 - 서버모델 하나의서버프로세스와여러개의클라이언트로구성된다. 서버는어떤자원을관리하고클라이언트를위해자원관련서비스를제공한다. 3 소켓의종류 소켓 네트워크에대한사용자수준의인터페이스를제공 소켓은양방향통신방법으로클라이언트 - 서버모델을기반으로프로세스사이의통신에매우적합하다.

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 Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information