학습 일지130 [OS] 프로세스 동기화 실행에 문맥을 갖고있는 모든 것들은 동기화 대상이다. 동시다발적으로 실행되는 프로세스(& 스레드)는 실행 순서와 자원의 일관성을 고려해야한다. 운영체제가 제공하는 동기화의 의미 1. 실행 순서 제어 : 프로세스를 올바른 순서로 실행하기 2. 상호 배제 : 자원의 일관성을 위해서 동시에 접근해서는 안되는 자원에 하나만 접근하기 운영체제에서 이야기하는 동기화 라는 것은 동시다발적으로 실행되는 프로세스와 스레드가 고려해야하는 것 중 하나인데 크게 실행 순서제어, 상호 배제로 나눌 수 있다. 실행 순서 제어는 프로세스 혹은 스레드를 올바른 순서대로 실행하는 것을 의미하고 상호 배제는 동시에 접근하면 안되는 자원에 하나만 접근하는 것을 의미한다. 실행 순서 제어를 위한 동기화의 예 다음과 같이 동시에 실행되는 프.. 2023. 9. 9. [OS] 리눅스 스케줄링 리눅스 스케줄링 정책 실시간 정책 스케줄링(우선순위 높음) SCHED_FIFO : 선입 선처리 스케줄링 SCHED_RR : 라운드로빈 스케줄링 일반정책 스케줄링(우선순위 낮음) SCHED_OTHER / SCHED_NORMAL SCHED_BATCH SCHED_IDLE 리눅스의 CFS 스케줄러 비실시간 프로세스를 대상으로 하는 스케줄링 → linux kernel 2.6.23 버전부터 사용(그 전에는 O(1) 사용했음) vruntime(virtual runtime) 프로세스가 그동안 실행한 시간을 정규화한 정보 vruntime이 작은 프로세스를 다음 실행할 프로세스로 삼는다. vruntime 별 태스크를 고르는 과정에서 RBtree를 사용 타임 슬라이스 nice 값에 비례해서 가중치를 할당, 가중치를 바탕으로.. 2023. 9. 8. [OS] CPU 스케줄링 알고리즘 CPU 스케줄링 알고리즘 선입 선처리 스케줄링 최단 작업 우선 스케줄링 라운드 로빈 스케줄링 최소 잔여 시간 우선 스케줄링 우선순위 스케줄링 다단계 큐 스케줄링 다단계 피드백 큐 스케줄링 선입 선처리 스케줄링(FIFO) CPU를 먼저 요청한 프로세스부터 CPU 할당 준비큐에 삽입된 순서되로 처리되는 비선점형 스케줄링이다. 부작용으로 호위효과가 있다. 호위효과 : 다른 프로세스들이 하나의 긴 프로세스가 CPU를 양도하기를 기다리는 것 최단 작업 우선 스케줄링(SJF 스케줄링) 준비 큐 프로세스 중 CPU 이용시간이 짧은 프로세스부터 실행 호위효과를 방지할 수 있다. 라운드 로빈 스케줄링 선입 선처리 스케줄링에 타임 슬라이스가 지정되어있는 방식이다. 레디 큐에 삽입된 순서로 실행하되 타임 슬라이스만큼 실행되.. 2023. 9. 8. [OS] CPU 스케줄링 운영체제가 프로세스, 스레드에게 CPU 자원을 할당하는 방법에 대해서 알아본다. 스케줄링 모든 프로세스 및 스레드는 합리적으로 자원을 필요로 한다. 운영체제가 프로세스에 자원을 적절히 배분하는 방법을 스케줄링 이라고 한다. CPU 스케줄링 스케줄링 중 운영체제가 공정하고 합리적으로 CPU를 배분하는 방법 CPU 자원은 한정되어 있고 실행중인 프로세스는 여러 개 일때 프로세스는 우선순위에 따라 실행된다. 프로세스마다 우선순위가 다르다. 우선순위는 PCB에 명시된다. 우선순위는 명령어로 확인가능 $ ps -el : RI, NI가 낮을수록 높은 우선순위 $ top : PR, NI가 낮을수록 높은 우선순위 우선순위의 차이를 보이는 대표적인 프로세스 유형 CPU를 사용하는 구간을 CPU burst, 입출력 장치를.. 2023. 9. 8. 이전 1 ··· 13 14 15 16 17 18 19 ··· 33 다음