Presentation is loading. Please wait.

Presentation is loading. Please wait.

Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.

Similar presentations


Presentation on theme: "Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University."— Presentation transcript:

1 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Operating System 3 주차 - About Linux - Real-Time Computing and Communications Lab. Hanyang University yjuly0708@hanyang.ac.kr rooterby@gmail.com

2 2 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 2 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Contents  Linux Shell Command  Foreground & Background  gcc compiler  Makefile  Quiz  과제 1 설명  Kernel Source Download

3 3 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 3 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  man – Linux Programmer’s Manual 보기  Usage : man [name]  Ex> $ man ls $ man fork  다양한 명령어와 시스템 콜 등에 대한 자세한 정보를 찾아 볼 수 있다.

4 4 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 4 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  ls – 현대 폴더의 파일과 폴더 목록을 출력  Option : -a ( 숨김 파일도 모두 표시 ), -l ( 파일 상세정보 표시 )  Ex> $ ls $ ls –a $ ls –l $ ls –al $ ls../ $ ls /usr  그 밖의 Option 은 $ man ls 를 통해서 확인할 수 있다.

5 5 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 5 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  cd – 디렉터리 이동  Usage : cd (target directory)  1. 현재 디렉터리기준, 다운로드 디렉터리로 이동  2. 상위 디렉터리로 이동  3. /usr/src/linux 디렉터리로 이동  4. 현재 디렉터리기준, kernel 디렉터리로 이동 . : 현재디렉터리,.. : 상위 디렉터리 의미

6 6 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 6 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  mkdir – 디렉터리 생성  Usage : mkdir [directory name]  rmdir – 디렉터리 삭제  Usage : rmdir [directory name]  touch – 빈 파일 생성  Usage : touch [file name]  rm – 파일 삭제  Usage : rm [fime name]  rm –rf [directory name] ( 해당 폴더와 하위 파일까지 모두 지우는 명령 )

7 7 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 7 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command

8 8 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 8 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  cp – 파일복사  Usage : cp [original filename] [target filename]  mv – 파일위치 변경  Usage : mv [original filename] [target filename / target location]

9 9 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 9 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  find – 파일검색  Usage : find [path] [option] [target filename] … 등 다양한 포맷 가능  자세한 옵션은 $ man find 를 통해서 확인하고 사용한다.  Ex> $ find [path] –name [filename]

10 10 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 10 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  ps – 프로세스 목록 출력  Usage : ps [options]

11 11 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 11 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  sudo – 일반 사용자가 루트 권한이 부분적으로 필요할 때 사용  Usage : sudo [option] [command]  jobs – 실행중인 작업 출력

12 12 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 12 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  top – 시스템 사용량 확인

13 13 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 13 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Linux Shell Command  Top Table 필드 정보  PID : 프로세스 ID (PID)  USER : 프로세스를 실행시킨 사용자 ID  PRI : 프로세스 우선순위 (nice value + 20)  NI : task 의 Nice value  VIRT : 가상 메모리 사용량  RES : 현재 Page 가 상주하고 있는 크기 (Resident Size)  S : 프로세스 상태 (S : sleeping, R : running, W : swapped out process, Z : zombies)  %CPU : 프로세스가 사용하는 CPU 사용률  %MEM : 프로세스가 사용하는 메모리 사용률  COMMAND : 실행된 명령어

14 14 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 14 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Foreground & Background  프로세스를 실행하는 방법은 크게 2 가지가 있다.  Foreground  기본적으로 모든 프로세스는 foreground 로 실행된다.  키보드와 연결되어 있으며 결과를 직접적으로 스크린 혹은 터미널 창에 출 력한다.  꽤 긴 시간 동안 동작하는 프로그램을 실행시켰을 경우에는 그 시간 동안 터미널을 이용할 수 없게 되므로, 곤란한 경우가 생기게 된다.  Background  키보드와 연결되지 않은 상태로 실행된다.  만약 이 프로세스가 키보드 입력을 필요로 할 경우에는, 입력을 기다린다.  Background 로 프로세스를 실행하는 것의 장점은 한 프로세스가 동작하 고 있는 동안에도 다른 프로세스를 실행시킬 수 있다는 점이다.  $./a.out & 를 통해 백그라운드로 실행할 수 있다.

15 15 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 15 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Foreground & Background  Example> matrix source code  단순하게 100 x 100 행렬을 10^5 제곱하는 함수.  참고로 아래 프로그램은 input_matrix 의 초기화가 생략되어 있습니다.

16 16 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 16 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Foreground & Background  Example> Foreground & Background  Foreground 실행 -> 프로세스가 종료할 때 까지 다른 작업 못함  Background 실행 -> 다른 작업 가능  “ctrl + z” 프로세스 중지 -> foreground 프로세스 중지

17 17 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 17 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Foreground & Background  Example> Foreground & Background  command “jobs” 현재 실행되고 있는 프로세스들의 상태와, job 번호를 알 수 있다.  Background -> Foreground $ fg %job 번호 (ex> fg %2)

18 18 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 18 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Foreground & Background  Foreground -> Background $ bg %job 번호 foreground 에서 background 로 바꾸려면, 먼저 foreground 로 실행되고 있는 프로세스를 ctrl + z 로 중지 시킨 후 해야 한다.

19 19 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 19 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr gcc compiler  먼저 컴파일이란 인간이 이해할 수 있는 형식 언어 (C, C++ 등 ) 로 작성된 소스 코드를 CPU 가 이해할 수 있는 기계어로 번역하는 과정  Linux 에서는 기본적으로 gcc (GNU C Compiler) 을 사용하여 작성된 코드를 컴파일하고 사용  gcc 에도 다양한 옵션이 존재하며, 이번 시간에서는 아래의 3 가지 경우만 설명 하고 추가적으로 강의를 진행하면서 필요한 옵션들에 대해서 강의자료를 통해 보강할 예정 ( 더 궁금한 사람은 $ man gcc)  $ gcc [target file name] Ex > gcc test.c a.out 이라는 실행 파일이 생김.  $ gcc –o [executable file name] [target file name] Ex> gcc –o test test.c test 라는 실행 파일이 생김. 여러 개의 target file 을 링킹할 수도 있음.  $ gcc –c [target file name] Ex> gcc –c test.c test.o 라는 object 파일을 만듭니다.

20 20 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 20 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Make  프로젝트가 커지면서 소스 파일의 개수가 많아지고, 각 파일에 대해 서 로 다른 컴파일러와 어셈블러를 사용하고, 각기 다른 옵션을 적용해야 한다면 그것을 일일이 gcc 명령으로 처리하기에 문제 발생  따라서 이런 문제점들을 해결하기 위해 Make 라는 유틸리티를 사용  Make 는 파일 관련 유틸리티로 각 파일간의 종속 관계를 파악해 기술 파일 (Makefile) 에 기술된 대로 컴파일 혹은 쉘 명령을 순차적으로 내릴 수 있다.  프로젝트에 Make 를 도입하면 컴파일 시간을 절약할 수 있고, 프로그 램의 종속 구조를 파악하는데 용이하다.

21 21 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 21 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Makefile 사용법  기본 구조 Target : Command 에 의해서 수행되어 나온 결과 파일을 지정, 일반적으로 목적 파일이나 실행 파일 Dependent files : 생성되는 파일인 대상 (Target) 과 의존하는 파일들의 관계 Command : Dependent files 의 내용이 바뀌거나 Target file 이 존재하지 않 을 경우 Command 부분이 실행됨 (Shell Command)

22 22 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 22 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr  간단한 Makefile 만들기  Shell 상에서 실행 파일 만들기  Ex) “test” program main.c, read.c, write.c 로 구성되고, 모두 io.h 을 사용 read.c 는 defs.h 라는 헤더 파일 사용 write.c 는 buffer.h 라는 헤더 파일을 사용 Makefile 사용법 $gcc -c main.c $gcc -c read.c $gcc -c write.c $gcc -o test main.o read.o write.o

23 23 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 23 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Makefile 사용법  간단한 Makefile 만들기  Makefile 작성 test: main.o read.o write.o gcc -o test main.o read.o write.o main.o : io.h main.c gcc -c main.c read.o : io.h defs.h read.c gcc -c read.c write.o : io.h buffer.h write.c gcc -c write.c clean : rm –rf *.o test

24 24 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 24 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Makefile 사용법  변수 사용 주석 : # 으로 시작 변수 : 값을 대입하기 위해서는 “=“ 을 사용 $( 변수 ), ${ 변수 } 형식을 통해 변수 사용 Objects = main.o read.o write.o test: $(Objects) gcc -o test $(Objects) main.o : io.h main.c gcc -c main.c read.o : io.h defs.h read.c gcc -c read.c write.o : io.h buffer.h write.c gcc -c write.c clean : rm –rf *.o test

25 25 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 25 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Example  다음의 간단한 함수를 앞에서 배운 예제를 참고하여 컴파 일 후 실행시켜 보겠습니다. func1.c func2.c main.c func.h Include.h 함수 구현

26 26 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 26 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Example  위의 예제 파일은 다음과 같이 간단하게 구성되어 있습니 다. func.h func1.c func2.c main.c

27 27 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 27 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Example GCC  위의 예제를 gcc 를 이용해 컴파일 했습니다.  컴파일을 위해 명령어를 많이 쳐야 함을 확인할 수 있습니다.

28 28 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 28 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Example Makefile  같은 예제를 Makefile 을 만들어 컴파일하였습니다.  $vim Makefile 을 통해 작성합니다.  Makefile 을 작성할 때 공백과 위의 제시된 문법에 주의해서 작성해 야합니다.

29 29 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 29 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Example Makefile  $make 명령어를 입력하면, Makefile 에 구현된 gcc 명령어 가 한번에 입력되고 똑같은 결과를 얻을 수 있습니다.

30 30 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 30 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Quiz  아래의 관계를 갖고, 다음과 같이 출력되는 프로그램을 구 현하고 기술 파일 (Makefile) 을 이용해 컴파일 하시오. memo.c calendar.c main.c diary.h memo.o calendar.o main.o diary

31 31 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 31 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Quiz  출력 예시  Makefile 내에는 clean 부분이 정의되어 있어야 한다.

32 32 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 32 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 과제 1 (Makefile Implementation)  Sorting Program Implementation  Input.txt file 의 내용을 읽어 3 개의 sorting algorithms(bubble, insertion, selection) 을 통해 정렬하는 Program 을 구현한다.  2 가지의 용도 (I/O, Sorting) 에 따라 각각 code 를 구현한 뒤, Makefile 을 통해 각 파 일들을 Linking 시켜 sorting program 을 구현 해야 함  global.h : 기본적인 헤더파일 include 와 input.txt 의 자료를 저장할 수 있는 Integer array buffer 정의  File I/O (global.h, io.h, io.c) io.h : read_file, write_file 함수의 프로토타입을 정의 io.c : input.txt 의 내용을 읽어 Integer array 로 저장하는 read_file 함수와 정렬된 내용 을 output.txt file 에 쓰는 write_file 함수의 동작을 구현  Sorting : 3 가지의 sorting algorithms 을 구현 (global.h, sort.h, sort.c) sort.h : bubbleSort, insertionSort, selectionSort 함수의 프로토타입을 정의 sort.c : Integer array 에 대한 3 가지의 sorting algorithms (bubble sort, insertion sort, selection sort) 의 동작을 구현  Main : io.c 의 함수를 이용해 파일 내용을 읽고, option 에 따라 sort.c 에 구현된 정 렬을 수행한 뒤 output.txt 파일에 정렬된 결과를 출력 (global.h, io.h, sort.h, main.c)

33 33 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 33 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 과제 1 (Makefile Implementation)  전체 Linking 관계 global.h io.h sort.h main.c io.c sort.c Include I/O 관련 함수 구현 Include Sorting 함수 구현 main.o io.o sort.o sorting

34 34 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 34 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 과제 1 (Makefile Implementation)  입출력 화면  Input.txt  output.txt

35 35 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 35 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 과제 1 (Makefile Implementation)  Due : 2015/03/27 실습 수업시간  제출물  앞에 슬라이드의 전체 Linking 관계에 표시 된 각 파일 소스 보고서 맨 뒤에 첨부  보고서 표지 Makefile 사용법에 대한 요약 정리 과제 내용 요약 구현한 Makefile 설명 결과 및 분석 ( 결과 화면 첨부할 것 ) 후기 ( 느낀 점, 조교에게 바라는 점 )

36 36 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 36 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 과제 1 (Makefile Implementation)  문의사항  이름 : 김연준  E-Mail : yjuly0708@hanyang.ac.kryjuly0708@hanyang.ac.kr  이름 : 하태욱  E-Mail : rooterby@gmail.comrooterby@gmail.com  실습관련 질문 시 제목을 아래의 양식에 맞춰서 메일을 보내주세요. ex> [ 운영체제 ] 학번 _ 이름  지연제출에 대해서는 감점이 있을 수 있음.

37 37 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 37 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Kernel Source Download  Kernel Source Download  http://www.kernel.org 로 접속 http://www.kernel.org

38 38 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 38 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Kernel Source Download  Download kernel source  Copy kernel URL link  Kernel version : 3.18.9 (longterm)

39 39 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr 39 Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Kernel Source Download  Download kernel source  “wget” 을 통해 URL link 로 kernel source code 를 다운로드 $ sudo wget [URL address]


Download ppt "Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University."

Similar presentations


Ads by Google