검색어 입력폼

숭실대학교 운영체제 OS FUSE

저작시기 2015.09 |등록일 2016.01.13 파일확장자압축파일 (zip) | 17페이지 | 가격 9,000원

목차

1. 소개
2. 관련연구 (FUSE 라이브러리/ proc 파일 시스템 조사)
3. 문제 해결 방법
4. 실행 결과
5. 추가 및 개선할 부분과 결론
6. 참고자료 / 문헌
7. 소스코드

본문내용

리눅스 사용자 공간 파일 시스템인 FUSE를 이용하여 현재 실행 중인 프로세스 정보를 디렉터리 목록으로 보여주는 파일 시스템을 구현한다. C언어와 기본 C 라이브러리인 glibc, FUSE 라이브러리만 사용하고 소스파일 pfs.c 에 모든 기능을 구현한다.

FUSE는 Filesystem in USEr space의 약자이며 리눅스 커널 2.6.15부터 기본적으로 탑재되어 있다. FUSE는 어플리케이션 레벨에서 작업이 이루어질 수 있도록 안정성 등 더 나은 장점을 제공하며, 리눅스 이외의 운영체제에서도 FUSE가 사용 가능하기 때문에 한 번 작성된 사용자 파일 시스템을 여러 운영체제에서 작동시킬 수 있다. 그러나 계층이 추가됨으로 인해 속도저하가 발생할 수 있다.
FUSE에서 사용할 수 있는 라이브러리 함수는 다음과 같다.
Int (*getattr)(const char *, struct stat *,struct fuse_file_info *)

<중 략>

3.1 proc를 사용하여 현재 실행중인 프로세스의 정보를 얻는다.
현재 실행중인 프로세스의 정보를 데이터로 관리하기 위해 2가지의 명령어를 사용하였다. 첫 번째는 stat /proc/id이며, 두 번째로는 cat /proc/id/status의 명령어이다. stat /proc/id는 프로세스가 만들어진 시간과 수정된 시간 등 TIME에 관련된 정보들을 관리할 수 있으며, cat /proc/id/status의 명령어는 프로세스의 TIME이 아닌 pid, ppid, name등 과 같은 매우 상세한 정보를 얻을 수 있다.
3.2 데이터를 효율적으로 관리하기 위해 임시로 파일에 저장을 하고 불러와 파싱한다. 그리고 파일을 제거한다.
3.1에서 명령어를 사용하여 얻은 프로세스 관련 데이터는 정제되지 않아 사용하기에 난해하다. 그렇기에 파일에 임시로 저장을 하고 ‘행’단위로 불러와 규칙성에 따라 데이터를 파싱하였다. 파싱한 데이터를 구조체에 정리함으로써 의미있는 데이터로 사용할 수 있다.

참고 자료

http://en.wikipedia.org/wiki/Filesystem_in_Userspace
http://fuse.sourceforge.net/doxygen/structfuse__operations.html
http://donkey612.blog.me/70082978709

압축파일 내 파일목록

운영체제_OS_FUSE/파일/~WRL0005.tmp
운영체제_OS_FUSE/파일/hello.c
운영체제_OS_FUSE/파일/Makefile
운영체제_OS_FUSE/파일/pfs.c
운영체제_OS_FUSE/파일/보고서.docx
다운로드 맨위로