2017-11-15 18 views
0

단기 스케줄러가 프로세스를 준비 대기열에 추가하는 라운드 로빈 CPU 프로세스 스케줄링의 기본 개념과 혼동됩니다.라운드 로빈 스케줄링에서 연결 끊기

시스템에 3 개의 프로세스 P0, P1 및 P2가 있고 5 초에 P1에 대해 컨텍스트 전환이 발생하고 동시에 P2가 도착하면 (즉, 5 초에) 이러한 경우 어떤 프로세스가 준비 대기열 P1 또는 P2에 먼저 삽입됩니까? 두 경우 모두 전체 평균 대기 시간이 다를 수 있지만 프로세스의 개별 대기 시간이 다를 수 있습니다.

+0

먼저 잠금을 얻은 사람은 누구입니까? –

+0

@ M.ShawCan 당신은 정교합니다 – user3256888

+0

일반적으로 컴퓨팅에서는 동시에 어떤 일도 발생하지 않습니다. 정말 가까이에 있을지 모르지만, 뭔가 다른 것들보다 먼저 발생합니다. –

답변

0

P1 및 P2 모두 준비 대기열에 동시에 추가 할 수 없습니다. 준비된 대기열에 프로세스를 추가하려면 이 준비 대기열에 대한 액세스를과 동기화해야하기 때문에 추가 순서가 있어야합니다 (P1이 P2보다 먼저 추가되거나 P2가 P1보다 먼저 추가됨). 대기열이 손상되지 않도록 주문하십시오. 단일 코어 시스템에서는 대기열을 수정하는 동안 인터럽트를 비활성화하여이를 수행 할 수 있습니다. 멀티 코어 시스템에서는 커널의 구현에 따라 잠금의 일부 조합과 인터럽트를 비활성화하여이를 수행 할 수 있습니다.

예를 들어 단일 코어에서 P1을 선점하게하는 타이머 인터럽트가 발생했다고 가정 해 보겠습니다. 타이머 인터럽트가 수신되면 인터럽트를 비활성화합니다. 대기열에 P1을 추가하는 동안 P2를 위해 완료된 일부 I/O 또는 사용자가 P2를 시작하는 등의 이유로 인해 P2를 사용할 수 없습니다. 인터럽트가 비활성화되어 커널이 얻었습니다 P1을 대기열에 추가하고 인터럽트를 활성화 할 때까지는 P2와 관련된 모든 이벤트에 신경을 써야합니다. P2에 대해서도 마찬가지입니다. P2를 대기열에 추가하고 P1이 선점 될 수있는 타이머 인터럽트가 도착하면 타이머 인터럽트는 P2가 대기열에 추가 될 때까지 무시됩니다.