νλ‘μΈμ€
νλ‘μΈμ€λ
μ€νμ€μΈ νλ‘κ·Έλ¨ λ¨μ
νλ‘μΈμ€μ μ£Όμ μμ
- νλ‘κ·Έλ¨ μ½λ
- μ½λμ κ΄λ ¨λ λ°μ΄ν°
νλ‘μΈμ€ μλ³
- νλ‘μΈμ€ μλ³μ (Identifier)
- νλ‘μΈμ€ μν (State)
- νλ‘μΈμ€ μ°μ μμ (Priority)
- νλ‘κ·Έλ¨ μΉ΄μ΄νΈ (Program Counter)
- Memory pointers
- Context Data: νλ‘μΈμ€μ μλ λ μ§μ€ν°μ κ°
- I/O Status information: νλ‘μΈμ€μ ν λΉλ I/O
- Accounting information: νλ‘μΈμ€μ ν λΉλ CPUλ±..
Process Control Block
νλ‘μΈμ€ μμ ν¬ν¨, OSμ μν΄ κ΄λ¦¬ λ° μμ±, νλ‘μΈμ€ μ νμ κ°λ₯νκ² ν¨. λ€μ€ νλ‘μΈμ€μ μ€μ.
- Trace: νλ‘μΈμ€ λ΄μμ μ€νλ λͺ λ Ήμ΄λ€μ λͺ©λ‘
- Dispatcher: νλ‘μΈμ€κ°μ μ€μμΉ ν΄μ£Όλ νλ‘κ·Έλ¨, νλ‘μΈμ€ Interleaving μ§μ
- Process Identifier: Parent processor, User identifier, Identifier of this processor
- Processor State Information: User visible register, Control and Status Register
- Stack Pointers
- 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
- νλ‘μΈμ€μ unique PID ν λΉ
- νλ‘μΈμ€ κ³΅κ° ν λΉ
- PCB μ΄κΈ°ν
- μ μ ν μ°κ²° μ€μ
- λ°μ΄ν° ꡬ쑰 μμ± λ° νμ₯
System Interrupt: νμ¬ μ€νμ€μΈ λͺ
λ Ήμ΄ μΈλΆμμ λ°μ, λΉλκΈ°μ μΈλΆ μ΄λ²€νΈ
- Clock Interrupt
- I/O Interrupt
- Memory fault
- λͺ¨λ μ€μμΉ: μΈν°λ½νΈ λ°μμ β ProgramCounterλ₯Ό μΈν°λ½νΈ νΈλ€λ¬μ μ£Όμλ‘ μ€μ β Userμμ Kernelλͺ¨λλ‘ λ³κ²½ (Privileged instructionsμ λν λͺ λ Ήμ΄ μ€νμ μν΄) Trap: νμ¬ μ€νμ€μΈ λͺ λ Ήμ΄μμ μμ±, μλ¬ νΉμ μμΈ νΈλ€λ§
- Error or Exception Supervisor call: λͺ μμ μΌλ‘ μμ²
Process Switching:
- Context μ μ₯
- νμ¬ μ€νμ€μΈ νλ‘μΈμ€μ PCB μ λ°μ΄νΈ, νμ μ μ¬
- λ€μ νλ‘μΈμ€ μ ν, μ νλ νλ‘μΈμ€μ PCB μ λ°μ΄νΈ
- λ©λͺ¨λ¦¬ κ΄λ¦¬ λ°μ΄ν° μ λ°μ΄νΈ
- μλ‘μ΄ νλ‘μΈμ€ μμμ Context 볡ꡬ