<운영체제> Process 1

본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성 되었습니다.


<Process Concept>

  • An OS executes a variety of programs:
    • Batch system (일괄 처리 시스템)
    • Interactive System (Time-shared systems)
  • The terms job and process almost interchangealbly
  • Process : a program in execution (현재 실행중인 프로그램)
    • the unit of resourece allocation = OS가 할당하는 자원의 단위
    • the unit of dispatching => CPU에 보내서 실행시키는 하나의 단위
    • progresses in sequential fashion => 순차적으로 실행
  • A process includes(5가지 요소):
    • Program(code,text) and data section for process image
    • Stack and heap section for memory management
    • Other meat data

<Process Image in Memory>

  • Process is (PCB in kernel Space) + (Process image)
  • In case of Kernel Mode : entire address spaces are accessible
  • In case of user Mode : only user address spaces are accessible
  • Kernel은 memory의 모든 영역에 접근 가능(OS는 컴퓨터에서 신과 같다고 보자!)
  • User는 User영역 내에만 접근 할 수 있다.
  • global or static variable -> Data영역(프로그램 실행 내내 존재하는 변수들)
  • local variable(메서드가 호출 될때만 활성화 되는 변수들) -> stack(push/pop 반복)
  • dynamic allocation -> heap
  • code -> text
  • Some parts of data is called bss, which contains uninitalized global variable or uninitalized static variable -> 초기화 되지 않은 전역변수 저장하는곳!
process image(text=program)

<Process State>

  • Process는 5가지 상태가 존재
    • new : fork()에 의해 프로세스가 생성된 상태
    • ready : OS가 admitted해서 메모리에 process가 올라가 있는 상태
    • running : Scheduler dispatch, 즉 process를 CPU에 올린 상태
    • terminated : exit()을 호출해서 끝난 상태
    • waiting : I/O or event wait ex) 100장 프린트해!라는 인터럽트 발생하면 waiting으로 넘어간다. cf) busy-waiting인 polling-system에서는 waiting이 없다
    • running -> ready : timer-interrupt에 의해 time-sharing을 보장하기 위해(동시에 실행되는것처럼 보이게하기위해서)
Diagram of Process State-프로세스 상태전이도1
waiting을 blocked라고도 표현-프로세스 상태전이도2
상태전이도3

<Process Control Block - PCB>

  • meta-infomation을 저장하는 곳
  • Kernel 영역에 존재
  • Table형태를 가짐(c의 구조체)
  • Process하나당 PCB를 하나씩 각각 가진다.
  • Process State(상태),counter(현재 프로세스의 주소값),CPU registers, scheduling infomation 등등의 정보를 가진다.