-
[운영체제] Round-Robin(라운드 로빈) 스케줄러운영체제 2019. 11. 2. 21:40
목표 Round-Robin 스케줄러를 이해한다. Round-Robin 스케줄러의 동작원리를 이해한다. Round-Robin 스케줄러란? 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나 시간 단위로 CPU를 할당하는 방식 Round-Robin 스케줄러 동작원리 선택 함수 : 가장 오랫동안 대기하는 프로세스 선택 결정 모드 : preemtive(선점형) 프로세스는 하나의 TIME Slice 동안에 실행 매번 현재 실행중인 프로세스를 ready queue에 보내고 가장 오랫동안 대기하고 있는 프로세스를 선택 Round-Robin 스케줄러 동작원리 직접 보기 정리 선점형 방식이므로 매 초마다 큐의 갱신이 일어난다. 가장 오래된 프로세스를 실행한다. https://slidesplayer.org/slide/14..
-
[운영체제] Scheduling (스케줄링)운영체제 2019. 11. 2. 13:27
목표 Scheduling의 의미와 3가지 타입인 Long-term, Medium-term, Short-term을 이해한다. Short-term Scheduling의 퍼포먼스 기준과 특징을 이해한다. Short-term Scheduling의 6개의 알고리즘을 이해한다. CPU Scheduling의 의미 다중 프로그래밍 시스템에서 실행 준비 상태인 프로세스 중 다음에 실행될 프로세스를 결정 및 할당 CPU Scheduling의 타입 Long-term scheduling - 어떤 프로세스를 시스템에서 실행할지 결정 Medium-term scheduling - 어떤 프로세스를 swapping 할 것인지를 결정 Short-term scheduling - 어떤 프로세스를 다음에 실행할 것인지 결정(Dispatche..
-
[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..