-
[Unix] 파이프운영체제/Unix 2019. 5. 21. 15:39
파이프 파이프 쉘 파이프 구현 파이프 함수 이름 있는 파이프 목표 파이프의 개념과 원리에 대해 이해한다. 파이프를 이용해 부모 자식 간의 통신을 해본다. 파이프란? 파이프는 주로 액체(물) 수송에 많이 사용된다. 물이 들어가는 곳과 물이 나오는 곳이 정해져 있다. 즉 한 방향 통신임을 추측할 수 있다 파이프는 프로세스 간의 데이터 통신에 사용된다. 파이프는 두 개의 파일 기술자를 가진다 하나의 파일 기술자는 쓰기용, 다른 하나는 읽기 용으로 읽는다. 파이프 사용해보기 파이프를 이용해 데이터를 읽고 데이터를 출력해보겠습니다. $ who | sort who로 입력된 데이터를 파이프에 넣은 다음 sort 명령어를 이용해 순차적으로 출력. 파이프를 사용한 부모 자식 간에 데이터 통신 #include #inclu..
-
[Unix] 한눈에 보는 유닉스운영체제/Unix 2019. 5. 18. 09:04
chapter 01 유닉스/리눅스 소개 1.1 유닉스/리눅스 특징 1.2 유닉스/리눅스 시스템 구조 1.3 유닉스 역사 및 버전 1.4 리눅스 설치 1.5 사용 환경 1.6 사용자 계정 관리 chapter 02 리눅스 사용 2.1 기본 명령어 2.2 파일 및 디렉터리 2.3 파일 속성 2.4 입출력 재지정 및 파이프 2.5 후면 처리 및 프로세스 2.6 문서편집기 chapter 03 C 프로그래밍 환경 3.1 컴파일러 3.2 make 시스템 3.3 디버거 3.4 이클립스 통합개발환경 chapter 04 파일 입출력 4.1 시스템 호출 4.2 파일 4.3 임의 접근 chapter 05 파일 시스템 5.1 파일 시스템 5.2 파일 상태 정보 5.3 디렉터리 5.4 링크 chapter 06 파일 및 레코드 잠..
-
[Unix] 시그널 처리운영체제/Unix 2019. 5. 14. 18:34
시그널 시그널 시그널 처리 시그널 보내기 시그널과 비지역 점프 목표 시그널 처리기에 대해 이해한다. 간단한 예제들을 이용해 시그널을 처리해본다. 시그널 처리기란? signal() 시그널에 대한 처리 함수를 지정 시그널을 처리하는 함수가 존재 signal() 시스템 호출 #include signal(int signo, void (*func)()) signo는 앞의 포스팅에서 설명한 시그널의 종류 func는 실행할 함수 - SIG_IGN : 시그널 무시 - SIG_DFL : 기본 처리 예제 #include #include #include #include void alarmHandler(); /* 알람 시그널을 처리한다. */ int main( ) { int sec = 0; signal(SIGALRM,alar..
-
[Unix] 시그널운영체제/Unix 2019. 5. 14. 18:03
시그널 시그널 시그널 처리 시그널 보내기 시그널과 비지역 점프 목표 시그널의 개념에 대해 이해한다. 시그널의 필요성 및 종류에 대해 알아본다. 시그널이란? 시그널 - 신호(signal) 위험한 상황에 일반적으로 신호를 보낸다. 프로그램 실행 중 예기치 않은 사건이 발생할 때 프로세스에게 알려주는 특별한 메시지 또는 소프트웨어 인터럽트 예기치 않은 사건 : 프로그램이 무한루프에 빠져나오질 못함. 특별한 메시지, 소프트웨어 인터럽트인 : 를 눌러 프로그램 강제 종료 이때 는 강제 종료 시그널 시그널 종류 SIGFPE : SIGnal + Floating-Point Exception - 0으로 나누기, 부동 소수점 오류 SIGPWR : SIGnal + PoWeR - 정전 시 SIGINT : SIGnal + IN..
-
[Unix] 파일 상태 정보운영체제/Unix 2019. 5. 8. 22:18
파일 시스템 파일 시스템의 구현 파일 상태 정보 디렉터리 링크 5.2 파일 상태 정보 파일 상태 파일에 대한 모든 정보 파일 타입, 접근 권한, 링크수, 소유자와 사용자 ID, 그룹, 파일 크기, 최종 수정시간, 파일 명 등 $ls -l 하면 된다 drwxr_xr_x 2 ckdtjs505 other 512 4월 8일 21:59 blog 파일 타입 링크수 사용자ID 그룹ID 파일크기 최종 수정시간 파일 이름 파일의 상태 정보에 대해 간단하게 알아보았다. 파일 상태 정보의 모든 내용은 i-node가 가지고 있다는 것을 다시 한번 명심하자. 파일 타입 메크로 함수 - 메크로 함수 선언 위치 : /usr/include/sys/stat.h 간단하게 메크로 함수를 이해해보자. 비트 연산과 8진법이 있어서 처음에 이..
-
[Unix] 파일 잠금 함수 : fcntl()운영체제/Unix 2019. 5. 8. 22:06
파일 및 레코드 잠금 목차 파일 및 레코드 잠금 fcntl() 함수 lockf() 함수 목표 fcntl() 함수를 이해한다 fcntl() 함수를 사용하여 잠금을 구현한다 fcntl() 함수란? 파일 및 레코드 잠금을 구현하는 시스템 호출 읽기 잠금 : 여러 프로세스가 공유 가능한 읽기 잠금 쓰기 잠금 : 한 프로세스 만이 가질수 있는 쓰기 잠금 fcntl() 함수 설명 #include #include #include int fcntl(int fd, int cmd, struct flock *lock); 매개변수 fd : 잠금이 되는 파일 디스크립터 cmd : 잠금 검사 혹은 잠금 설정 (F_GETLK, F_SETLK, F_SETLKW) F_GETLK : 잠금 복사 F_SETLK : 잠금 설정 혹은 해제 F..
-
[Unix] 파일 및 레코드 잠금운영체제/Unix 2019. 5. 8. 17:42
파일 및 레코드 잠금 목차 파일 및 레코드 잠금 fcntl() 함수 lockf() 함수 목표 파일 및 레코드 잠금의 필요성과 개념을 이해한다. 잠금의 두 가지 종류 권고 잠금과 강제 잠금에 대해 알아본다 파일 및 레코드 잠금의 필요성? 잠금을 사용하지 않은 경우 A라는 사람과 B라는 사람이 더블 통장을 쓴다. 더블 통장에는 100만 원이 들어가 있다. A라는 사람이 돈이 생겨 10만원을 입금하려 한다. B라는 사람은 돈을 사용할 일이 생겨 10만 원을 출금하려 한다. A가 통장에 접근하여 잔액 100만원을 읽는다. B도 통장에 접근하여 잔액 100만원을 읽는다. A는 100만원에 10만 원을 입금하여 잔액이 110만 원이 된 것을 확인했다. B는 A가 입금하기 전에 잔액을 읽었으므로 100만원에 10만 ..
-
[Unix] 링크운영체제/Unix 2019. 5. 7. 18:21
파일 시스템 파일 시스템의 구현 파일 상태 정보 디렉터리 링크 목표 링크의 개념에 대해 이해한다. 하드 링크를 구현한다. 심볼릭 링크를 구현한다. 링크의 개념이란? 기존의 파일에 또 다른 이름을 부여 하드 링크 - 파일 시스템 내의 동일한 i-node를 가리킴 심볼릭 링크 - 실제 파일/디렉터리의 경로명을 저장하는 링크 기존의 파일을 접근할 수 있는 다른 이름을 가진 파일이 생성 하드 링크란? 같은 파일 시스템 내에서만 사용 가능 파일 시스템 내의 동일한 i-node를 가리킴 명령어 : ln 하드 링크의 구현 $ ln existing.txt new ls -i 명령어를 이용해서 각각의 파일의 i-node를 확인해보자 심볼릭 링크란? 실제 파일/ 디렉터리의 경로명을 저장하는 링크 다른 파일 시스템에 있는 파..