본문 바로가기

분류 전체보기380

[운영체제 실습] 9.프로세스 #.pid 검색 - getpid, getppid 함수 사용하기 예제 결과 #.getpgrp, getpgid 함수 사용하기 예제 결과 #.getsid 함수 사용하기 예제 결과 #.environ 전역변수 사용하기 예제 결과 #.main 함수 인자 사용하기 예제 결과 #.getenv 함수 사용하기 예제 결과 #.putenv 함수 사용하기 예제 #.setenv 함수 사용하기 예제 예제파일 참고 : 유닉스시스템 프로그래밍(한빛미디어) 2020. 6. 28.
[운영체제 실습] 8.시스템 정보 다루기 - (그룹, 시간) #.그룹정보검색 - getgid, getegid 함수 사용하기 예제 결과 참고 : 유닉스에서는 그룹에 관한 정보를 /etc/group 파일에 별도로 저장한다. 사용자가 속한 그룹 중 /etc/passwd 파일의 GID 항목에 지정된 그룹이 기본 그룹이며, 2차 그룹은 /etc/group 파일에서 지정한다. #.그룹 파일 검색 - getgrnam 함수 사용하기 예제 결과 #./etc/group 파일을 순차적으로 읽기 예제 결과 #.로그인 기록 검색 who 명령으로 현재 시스템에 로그인하고 있는 사용자에 관한 정보를 검색할 수 있다. last 명령으로는 시스템의 부팅 시각 정보나 사용자 로그인 기록 등을 검색할 수 있다. 이러한 정보는 /var/adm/wtmpx 파일에 저장된다. 이 파일은 바이너리 형태로 .. 2020. 6. 27.
[운영체제 실습] 7.시스템 정보 다루기 - (로그인, 패스워드 정보) #.uname 함수 사용하기 - 운영체제 기본정보 검색 예제 결과 #.sysconf 함수 사용하기 - 시스템 자원정보 검색하기 예제 결과 #.pathconf - 파일과 디렉토리 관련 자원검색 예제 결과 #.getuid, geteuid 함수 사용하기 - 사용자 관련 정보 검색 예제 결과 chmod 4755 ex4_6 ls -l ex 4_6 이제 일반 사용자 아이디로 로그인해서 ./ex4_6 을 실행해보자. uid는 프로그램을 실행한 일반 사용자 uid가 나올 것이고, euid는 setuid가 설정되어 있으므로 ex4_6의 소유자인 root의 uid인 0으로 나온다. #.etc/passwd 파일에는 로그인명, uid, gid, 사용자의 홈디렉토리, 로그인 쉘등 사용자에 관한 기본적인 정보가 들어있다. #.g.. 2020. 6. 27.
[운영체제 실습] 6.파일과 디렉토리 1.파일명으로 inode 정보 검색하기 예제 결과 2.fstat 함수로 파일정보 검색하기 예제 결과 3.상수를 이용해 파일 종류 검색하기 예제 결과 4.매크로를 이용해 파일 종류 검색하기 예제 결과 5.상수를 이용해 파일 접근 권한 검색하기 예제 결과 6.access 함수를 이용해 접근 권한 검색하기 예제 결과 7.chmod 함수 사용하기 예제 결과 8.하드링크생성 예제 결과 9.심볼릭 링크생성 예제 결과 10.lstat 함수 사용하기 예제 결과 예제파일 참고 : 유닉스시스템 프로그래밍(한빛미디어) 2020. 6. 25.
[운영체제 실습] 5.파일 다루기(라이브러리) 1.한문자씩 읽고, 한문자씩 쓰기 예제 결과 2.한문자열씩 읽고 쓰기 예제 결과 3.fread 함수 예제 결과 4.fwrite 함수 예제 결과 5.형식기반 출력함수 예제 결과 6.서식을 지정해서 파일에 문자열 쓰기 예제 결과 7.파일 오프셋 예제 결과 8.파일 기술자와 파일 포인터 간 변화 예제 결과 9.fileno 함수 사용하기 예제 결과 예제파일 참고 : 유닉스시스템 프로그래밍(한빛미디어) 2020. 6. 23.
[운영체제 실습] 4.에러처리 및 파일 다루기(low level) 1.파일 접근함수 예제 결과 2.파일 열기 함수 예제 결과 3.오류 다루기 예제 결과 4.커멘드 인자 다루기 예제 결과 5.파일 디스크립터 및 파일 열기 시스템콜 예제 결과 6.파일 열기 및 파일 열기 모드, 권한 예제 결과 7.파일 디스크립터에 관하여 예제 결과 8.파일 읽기(시스템콜) 예제 결과 9.파일 읽고 쓰기 (시스템콜) 예제 결과 10.파일 오프셋(시스템 콜) 예제 결과 11.파일 디스크립터 복사 예제 결과 12.파일디스크립터 특성 설정하기 예제 결과 13.파일 삭제 예제 결과 파일이 삭제되고, Unlink tmp.aaa success!!! 출력이 된다. 예제파일 참고 : 유닉스시스템 프로그래밍(한빛미디어) 2020. 6. 23.
[운영체제 실습] 3.리눅스 커멘트라인 인자와 응용 1.커멘드라인 인자를 다루는 방법 예제) 결과) 2.파일을 읽어서 표준출력에 표시하는 방법 예제) 결과) hello 파일에 있는 "hello my name is kang" 값이 터미널에 출력되었다. 그 후 for문 안에서 n의 값, 즉 파일을 읽어 들인 값이 없기 때문에 더 이상 파일을 읽어들이지 않고 종료된다. 연습문제 *위에서 작성한 ./b 명령어를 수정하여 실행 인자가 없는 경우에는 표준 입력에서 읽도록 수정하라. *\n의 개수를 세어서 파일이 몇 줄로 구성되었는지 출력 하는 명령어를 작성하라 (wc-l 과 동일 기능) 참고: 모두를 위한 리눅스 프로그래밍 2020. 6. 22.
[운영체제 실습] 2.파일 쓰기와 파일 읽기 파일 쓰기와 파일 읽기 #파일열기 FILE *fopen(const char *pathname, const char *mode); 파라미터 - pathname: 파일 경로 - mode: 파일 열기 모드 반환값 - 성공 시 열린 파일 포인터(stream) - 실패 시 NULL #파일열기 모드 #파일닫기 int fclose(FILE *stream); 파라미터 - stream: 열린 파일 포인터 반환값 - 성공시0 - 실패시 EOF 예제 결과 #.인자로 파일명을 한 개 이상 받아 그 파일의 내용을 전부 표준 출력에 쓰는 프로그램 예제 결과 #.실행인자가 없을경우 표준 입력에서 읽도록 작성 예제 결과 #.인자로 파일명을 한 개 받아 줄바꿈 개수를 구하는 로직 예제 결과 #.stdio 라이브러리의 바이트 단위 입출.. 2020. 6. 16.
[운영체제 정리] 8.프로세스 동기화 프로세스 동기화 컴퓨터 안에서 데이터가 접근되는 패턴 데이터가 저장되어 있는 위치(메모리)에서 데이터를 가져와 연산(cpu)을 하고 다시 저장위치에 가져다 놓는다. 이때 데이터의 동기화 문제가 생긴다. 하나의 저장소에서 여러 사람이 공유 데이터에 접근한다면 데이터가 원하는데로 변경이 안될 가능성이 크고, 데이터의 일관성이 유지가 안될수 있고, 데이터 불일치 문제가 생길수 있다. 동기화 문제 여러사람이 하나의 공유 데이터에 접근할때 문제점.예를들어 두 프로세스에서 동시에 시스템 콜이 발생할때, 커널의 데이터에 동시에 접근되어 변경이 될때 문제가 될 수 있다. 동기화문제-커널에서 동기화 문제가 발생하는 경우 1.커널 수행중 인터럽트 발생시 2.프로세스가 시스템콜을 해서 커널모드로 수행중인데 타이머로인해 컨텍.. 2020. 6. 8.