ν”„λ‘œμ„ΈμŠ€

ν”„λ‘œμ„ΈμŠ€λž€

싀행쀑인 ν”„λ‘œκ·Έλž¨ λ‹¨μœ„

ν”„λ‘œμ„ΈμŠ€μ˜ μ£Όμš” μš”μ†Œ

  • ν”„λ‘œκ·Έλž¨ μ½”λ“œ
  • μ½”λ“œμ™€ κ΄€λ ¨λœ 데이터

ν”„λ‘œμ„ΈμŠ€ 식별

  1. ν”„λ‘œμ„ΈμŠ€ μ‹λ³„μž (Identifier)
  2. ν”„λ‘œμ„ΈμŠ€ μƒνƒœ (State)
  3. ν”„λ‘œμ„ΈμŠ€ μš°μ„ μˆœμœ„ (Priority)
  4. ν”„λ‘œκ·Έλž¨ 카운트 (Program Counter)
  5. Memory pointers
  6. Context Data: ν”„λ‘œμ„ΈμŠ€μ— μžˆλŠ” λ ˆμ§€μŠ€ν„°μ˜ κ°’
  7. I/O Status information: ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλœ I/O
  8. Accounting information: ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλœ CPUλ“±..

Process Control Block

ν”„λ‘œμ„ΈμŠ€ μš”μ†Œ 포함, OS에 μ˜ν•΄ 관리 및 생성, ν”„λ‘œμ„ΈμŠ€ μ „ν™˜μ„ κ°€λŠ₯ν•˜κ²Œ 함. 닀쀑 ν”„λ‘œμ„ΈμŠ€μ— μ€‘μš”.

  • Trace: ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ μ‹€ν–‰λœ λͺ…λ Ήμ–΄λ“€μ˜ λͺ©λ‘
  • Dispatcher: ν”„λ‘œμ„ΈμŠ€κ°„μ— μŠ€μœ„μΉ­ ν•΄μ£ΌλŠ” ν”„λ‘œκ·Έλž¨, ν”„λ‘œμ„ΈμŠ€ Interleaving 지원
  1. Process Identifier: Parent processor, User identifier, Identifier of this processor
  2. Processor State Information: User visible register, Control and Status Register
  3. Stack Pointers
  4. Process Control Information:
  • User mode
  • System mode (kernel mode): Privileged mode

Two-State Process Model

sequenceDiagram
participant NotRunning
participant Running
NotRunning->>Running: Dispatch
Running->>NotRunning: Pause (I/O or Timeout)
graph LR
Queue --Dispatch--- Processor

μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” ν”„λ‘œμ„ΈμŠ€λŠ” νμ—μ„œ λŒ€κΈ°, νλŠ” 각각의 PCB의 포인터 μ €μž₯ 5. ν”„λ‘œμ„ΈμŠ€ 생성: Process Spawning - Parent process - Child process 6. ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ

Five-State Process Model

stateDiagram
    direction LR

    new: New
    ready: Ready
    running: Running
    blocked: Blocked
    exit: Exit

    new --> ready: Admitted
    ready --> running: Dispatcher
    running --> ready: Time Expired
    running --> blocked: I/O or Event Wait
    blocked --> ready: Event Occurs
    running --> exit: Exit
flowchart LR
ReadyQueue --Dispatch--- Processor --Wait--- Event1Queue & Event2Queue --EventOccure--- ReadyQueue
Processor --> Release
  • Swapping: 메인 λ©”λͺ¨λ¦¬μ˜ ν”„λ‘œμ„ΈμŠ€μ˜ 일뢀 ν˜Ήμ€ 전체λ₯Ό λ””μŠ€ν¬λ‘œ 이동
    • Suspended Process: λ””μŠ€ν¬λ‘œ μ΄λ™ν•œ ν”„λ‘œμ„ΈμŠ€
    • Pause Process: 메인 λ©”λͺ¨λ¦¬μ— μžˆλŠ” μΌμ‹œμ •μ§€λœ ν”„λ‘œμ„ΈμŠ€
    • Seven-State Process Model
    stateDiagram
    [*] --> New
    New --> Ready : Admit
    New --> ReadySuspend: Admit
    Ready --> Running : Dispatch
    Running --> Ready : TimeOut
    Running --> Blocked : Event wait
    Blocked --> Ready : Event occurs
    Blocked --> BlockedSuspend : Suspend
    BlockedSuspend --> Blocked : Active
    Ready --> ReadySuspend : Suspend
    ReadySuspend --> Ready : Activate
    BlockedSuspend --> ReadySuspend : Event occurs
    Running --> Exit : Release
    

Process Description

Memory Table File Table Primary Process Table: ν”„λ‘œμ„ΈμŠ€ 이미지 포인터 μ €μž₯ 7. Process Image - User Data - User Program - Stack - Process Control Block Process Creation

  1. ν”„λ‘œμ„ΈμŠ€μ— unique PID ν• λ‹Ή
  2. ν”„λ‘œμ„ΈμŠ€ 곡간 ν• λ‹Ή
  3. PCB μ΄ˆκΈ°ν™”
  4. μ μ ˆν•œ μ—°κ²° μ„€μ •
  5. 데이터 ꡬ쑰 생성 및 ν™•μž₯ System Interrupt: ν˜„μž¬ 싀행쀑인 λͺ…λ Ήμ–΄ μ™ΈλΆ€μ—μ„œ λ°œμƒ, 비동기적 μ™ΈλΆ€ 이벀트
    • Clock Interrupt
    • I/O Interrupt
    • Memory fault
    • λͺ¨λ“œ μŠ€μœ„μΉ­: μΈν„°λŸ½νŠΈ λ°œμƒμ‹œ β†’ ProgramCounterλ₯Ό μΈν„°λŸ½νŠΈ ν•Έλ“€λŸ¬μ˜ μ£Όμ†Œλ‘œ μ„€μ • β†’ Userμ—μ„œ Kernelλͺ¨λ“œλ‘œ λ³€κ²½ (Privileged instructions에 λŒ€ν•œ λͺ…λ Ήμ–΄ 싀행을 μœ„ν•΄) Trap: ν˜„μž¬ 싀행쀑인 λͺ…λ Ήμ–΄μ—μ„œ 생성, μ—λŸ¬ ν˜Ήμ€ μ˜ˆμ™Έ 핸듀링
    • Error or Exception Supervisor call: λͺ…μ‹œμ μœΌλ‘œ μš”μ²­

Process Switching:

  1. Context μ €μž₯
  2. ν˜„μž¬ 싀행쀑인 ν”„λ‘œμ„ΈμŠ€μ˜ PCB μ—…λ°μ΄νŠΈ, 큐에 적재
  3. λ‹€μŒ ν”„λ‘œμ„ΈμŠ€ 선택, μ„ νƒλœ ν”„λ‘œμ„ΈμŠ€μ˜ PCB μ—…λ°μ΄νŠΈ
  4. λ©”λͺ¨λ¦¬ 관리 데이터 μ—…λ°μ΄νŠΈ
  5. μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€ μ‹œμž‘μ‹œ Context 볡ꡬ