2. 프로세스


프로세스?

  • 실행중인 프로그램의 한 인스턴스
    • 프로그램은 디스크에 저장된 실행 파일, 이게 실행이 되면 프로세스
  • Provides two key abstractions
    • Logical Control Flow
      • 각 프로세스는 프로세서를 독점적으로 사용함
    • Private Address Space
      • 각 프로세스는 메모리를 독점적으로 사용함
  • Life & Scope
    • Life : 변수가 메모리에 있으면 살아있는 것
    • Scope : access가 가능한 영역
  • Context Switching
    • Context?
      • PC, General Purpose Register, Floating Pointer Register, Status Registers, and Various kernel data structures (page table, file table)
      • 이걸 PCB라고 함, 그 중에서 register block을 context라고 함
    • Switching?
      • 현재 실행하는 프로세스의 Context를 저장하고, 다음에 실행할 프로세스의 state를 복구
      • 어떤 프로세스를 실행할지? - Scheduler 또는 Dispatcher
    • PCB (Process Control Block)
      • Process Identifier
        • 프로세스 ID가 숫자로 부여됨
      • Process State Information
        • User-Visible Registers
          • General Purpose Register라고도 함
          • ex) Integer register
        • Control and Status Registers
          • Program counter
          • Condition codes : 산술연산의 결과 (sign, zero, carry, equal, overflow)
          • Status information : (interrupt enable/disable flag, execution mode)
        • Stack Pointers
      • Process Control Information
        • Scheduling and State information : 스케줄링과 관련된 정보를 보관
          • process state
          • priority
          • scheduling-related information
          • event
        • Data structuring
          • Parent - Child relation
        • Interproces communication (signal)
        • Process privileges
        • Memory management
        • Resource ownership and utilization
    • PSW (Program Status Word)
      • 프로세스의 실행 상태(status)를 관리하는 레지스터
      • 현재 실행중인 프로세스의 condition code와 상태 정보를 저장함
      • ex) x86의 EEFLAGS 레지스터
  • Process Creation and Termination
    • Process spawning
      • OS가 새로운 프로세스를 만듬
      • 새로운 프로세스는 부모 프로세스에서 만들어짐(fork)
    • Process termination
      • EXIT 시스템콜 호출로 스스로 종료 가능
      • 과거 batch 시스템에서는 HALT라는 명령어 사용
      • 프로세스가 할당되지 않은 영역을 참조하거나, 메모리 초과, 오버플로우, 언더플로우, 부모 프로세스가 죽을 때 같이 종료될 수 있음
  • Suspended processes
    • Swapping
      • 메모리 상의 모든 프로세스가 IO를 기다릴 수 있음
      • 이런 상황에서 메모리 상의 일부 프로세스를 디스크로 옮기고, 디스크 상의 다른 프로세스를 메모리로 가져옴
    • Suspended Process
      • Swap으로 실행이 불가능한 프로세스





© 2020.02. by blupine