Unix Project2 <test character device 생성>

Slides:



Advertisements
Similar presentations
Term Project Hints Topics Keep-alive CGI Multi-thread Multi-process Event-based.
Advertisements

1/15 16 기 장영일 Ext File System. 2/15 처음에 Minix 가 사용되었다 ( 제약사항 ) 최대로 저장할 수 있는 파일의 크기 – 64M : 16bit 정수로 블록 주소 지정 -> 1024( 블록 기본 사이즈 ) * (2^16) = 64M.
KB 스타 경제 · 금융교실 나는 용돈관리왕. KB 스타 경제 · 금융교실 나는 용돈관리왕 선생님은 ? KB 2  이름 : 김국민  별명 : 스타 왕자  소속 : KB 국민은행 소비자 보호담 당 ( 간단한 자기 소개 : 교육 대상이 흥미 를 가질 수 있는 이미지와.
문화연구방법 꽃보다 아름다운 그곳에 사는 사람들. 노송동 1 조 김은진 박하늬 나인정. 목차 조사구역 - 중앙시장. 경험지도 노송동 - 중앙시장 사람들의 삶. 진행상황 앞으로의 계획.
Android 프로그램개발 환경. 학습 목표 ■ 교육 목표  JDK 설치  JDK 환경 설정  Eclipse 설치  Android SDK 설치  ADT Plug-in 설치  Android Virtual Device(AVD) 설치  Android 예제 프로그램.
엑셀리포트를 이용한 날짜별 리포트 자동 저장 방법
2010 – 06 – 24 주간 보고서.
MB노믹스의 실패와 미래 22조 배주환 외 5명.
2012년 12월 정기 제직회 기 도 : 김영민 집사 출 석 : 서 기 개회 선언 : 제직회장 (이태환 장로)
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
Project #2-2. Pintos User Program
5장. Enhanced Char Driver Operations 과제
제 2장 컴퓨터 구조.
제14장 동적 메모리.
KTC 생산운영관리 PROJECT 생산계획 정확도 향상.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
System Call Linux Kernel 수업 3번째.
08. 디바이스 드라이버의 읽기와 쓰기 김진홍
디바이스 드라이버 기초 디바이스 드라이버의 개요 파일 연산 디바이스 드라이버 등록 디바이스 드라이버 구성
디바이스 드라이버.
이식성과 데이터형 서로 다른 프로세서 상에서의 이식성을 위해 가급적 리눅스 커널이 제공하는 데이터형을 사용하는 것이 좋다.
디바이스 드라이버 개요 가상 디바이스드라이버 실습
Department of Computer Engineering
Linux를 이용한 Embedded 장비 개발
Unix Project-Final <test character device 생성>
컴퓨터 구조.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Department of Computer Engineering
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
Step Motor Device Driver
07. 디바이스 드라이버의 초기화와 종료 김진홍
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
파일 기술자 파일 기술자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에서 열린 파일을 참조하는데 사용
(ioctl, mmap, fsync&flush)
임베디드 실습 # LED, 7’Segment 제어
WinCE Device Driver 실습 #2
○ 자료 조회 예시 - GTS 고층자료 authKey= 사용자 인증키 조회 시각 지점번호 tm, stn_id 등 변수 값을
PySpark Review 박영택.
13. 연산자 오버로딩.
문자 디바이스 드라이버 임베디드 시스템.
디 지 털 공 학 한국폴리텍V대학.
Cache Manager Yonghyun Kim Microsoft MVP Dev 5 team leader, ESTsoft
2015. 인문소양교육.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Device Driver 임베디드 시스템 I.
리눅스 디바이스 드라이버 (Linux Device Driver)
데이터베이스실험실 석사 2학기 조정희 TCP/IP Socket Programming… 제 18장 윈도우 기반 쓰레드 사용하기 데이터베이스실험실 석사 2학기 조정희
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
12장. 파일 시스템 구현.
Stepper Motor 디바이스 드라이버
알쏭달쏭 요한복음 성경퀴즈.
UNIT 21 Flash Memory Controller 로봇 SW 교육원 조용수.
KB스타 경제·금융교실 은행에 가요.
Department of Computer Engineering
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
Stream의 이해 : System Bufferring
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
3. 모듈 (5장. 모듈).
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
성전기공식(안) 식 순 1. 기공미사 2. 기 공 식 3. 축 하 연 천주교 수원교구 퇴촌성당.
성경퀴즈 여호수아1장 3장 복습게임.
AdcRead API 함수 분석 마이크로프로세서.
06. 디바이스의 등록과 해제 김진홍
㈜홍길동 웹사이트 구축 진행 계획서 견적서 포함 일레븐 제공.
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
인하공업전문대학 (2018-2학기) ATmega128 마이크로 프로세서 정보통신과 박기식 교수.
CODE INJECTION 시스템B 김한슬.
7 생성자 함수.
KB스타 경제·금융교실 화폐가 태어났어요.
Presentation transcript:

Unix Project2 <test character device 생성> 11조 061736 이지은 063581 이희은 083771 고연정

Character device 생성 * open, close, read, write kernel 모듈 작성 * 각각의 모듈을 test device내에서 user program을 사용하여 실험 * I/O는 512B, 1KB, 4KB의 블록 단위로 수행이 되도록 하여 16M의 데이터를 write/read 하기 위한 시간을 측정

Character device 생성 - dev.c * open & close (release) try_module_get/module_put : 모듈사용횟수증가/감소(생략) buff = kmalloc(value, GFP_KERNEL);/ kfree(buff); 메모리할당/해제 * read for(i = 0; i < count; i++) if((err = copy_to_user(buf, buff, value)) < 0) return err; 커널 메모리 buff를 사용자 메모리 buf로 value만큼 복사

Character device 생성 - dev.c * write for(i = 0; i < count; i++){ if((err = copy_from_user(buff, buf+ nOffset, value)) < 0) return err; nOffset += value; } 사용자 메모리 buf+nOffset을 커널 메모리 buff로 value만큼 복사 (nOffset의 위치를 value만큼 이동시켜 다음 값을 buff로 넣음)

Character device 생성 - app.c * #define SIZE = 16777216 * fd = open("data", O_RDWR); * buff = (char*)malloc(SIZE); * dev=open(DEVICE_FILENAME,O_RDWR); * ret = write(dev,buff,SIZE); * ret = read(dev,buff,SIZE); * ret=close(dev); * close(fd);

Character device 생성 Memory buffer 16MB Data User 2.Read 1.Write Kernel (512B,1KB,4KB입력) User 2.Read (copy_to_user) 1.Write (copy_from_user) Kernel

시간분석(512B,1KB,4KB) * gettimeofday() 함수 이용 : 시간측정 - 현재 system 시간을 가져오는 api (마이크로 초 단위까지 체크가능) >> 큰 차이가 없음 Write time Read time 512B 0.6 0.3 1KB 0.5 4KB

프로젝트 실행 * 실행하기 mknod /dev/calldev c 240 1 insmod call_dev.ko value=(512/1024/4096) User program 실행(./app) * dmesg >>

프로젝트 실행 * 실행하기 mknod /dev/calldev c 240 1 insmod call_dev.ko value=512 User program 실행(./app) * 512K로 실행 >>

프로젝트 실행 * 실행하기 mknod /dev/calldev c 240 1 insmod call_dev.ko value=512 User program 실행(./app) * 1KB로 실행 >>

프로젝트 실행 * 실행하기 mknod /dev/calldev c 240 1 insmod call_dev.ko value=512 User program 실행(./app) * 4KB로 실행 >>

QNA