[자료ꡬ쑰] 4. 큐

4κ°•. 큐

1. 큐의 κ°œλ…

queue 의 자료 μž…μΆœλ ₯

queue 의 자료 μž…μΆœλ ₯

2. 큐의 좔상 μžλ£Œν˜•

  1. Queue Create_q(maxQueueSize)

    큐의 크기가 maxStackSize인 빈 큐λ₯Ό μƒμ„±ν•˜κ³  λ°˜ν™˜ν•œλ‹€.

  2. Boolean IsFull_q(queue, maxQueueSize)

    큐에 μ €μž₯λ˜μ–΄μžˆ 자료의 갯수λ₯Ό νŒŒμ•…ν•˜μ—¬ μ €μž₯곡간이 남아 μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.

  3. Queue Add_q(queue, item)

    큐에 μ €μž₯곡간이 μžˆλ‹€λ©΄ rear μ˜μ—­μ— item을 μ‚½μž…ν•œλ‹€.

  4. Boolean IsEmpty_q(queue)

    큐의 front 포인터와 rear 포인터가 같은 μ£Όμ†Œλ₯Ό κ°€λ₯΄ν‚€κ³  μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.

  5. Element Delete_q(queue)

    큐가 λΉ„μ–΄μžˆλŠ”μ§€ ν™•μΈν•œ λ’€ λΉ„μ–΄μžˆμ§€ μ•Šλ‹€λ©΄ front μ˜μ—­μ˜ 데이터λ₯Ό μ‚­μ œν•˜κ³  λ°˜ν™˜ν•œλ‹€.

3. 큐의 μ‘μš©

CPU의 μŠ€μΌ€μ€„λ§ 기법

  • FCFS(First-Come First-Served)

    μ€€λΉ„ 큐에 λ„μ°©ν•œ ν”„λ‘œμ„ΈμŠ€ μˆœμ„œλŒ€λ‘œ CPUλ₯Ό 할당받도둝 ν•΄μ£ΌλŠ” 기법

  • RR(Round Robin)

    ν”νžˆ λŒ€ν™”ν˜• μ‹œμŠ€ν…œμ— μ‚¬μš©λ¨. μž‘μ—…μ΄ λ„μ°©ν•œ μˆœμ„œλŒ€λ‘œ ν• λ‹Ήλ˜κΈ΄ ν•˜μ§€λ§Œ, CPU의 μ‹œκ°„ ν• λ‹ΉλŸ‰ λ˜λŠ” μ‹œκ°„ 간격에 μ˜ν•΄ μ œν•œμ„ λ°›κ³  κ·Έ μ‹œκ°„μ•ˆμ— μž‘μ—…μ΄ μ™„λ£Œλ˜μ§€ λͺ»ν•˜λ©΄ 큐의 맨 λ’€λ‘œ λ‹€μ‹œ λ°°μΉ˜ν•¨.

FCFS μŠ€μΌ€μ€„λ§ 기법 μ•Œκ³ λ¦¬μ¦˜μ˜ 예

FCFS μŠ€μΌ€μ€„λ§ 기법 μ•Œκ³ λ¦¬μ¦˜μ˜ 예

RR μŠ€μΌ€μ€„λ§ 기법 μ•Œκ³ λ¦¬μ¦˜μ˜ 예

RR μŠ€μΌ€μ€„λ§ 기법 μ•Œκ³ λ¦¬μ¦˜μ˜ 예