프로그래밍[Univ]/운영체제

[OS] Process part 1

Cloud Travel 2012. 3. 23. 01:50
* Conception
 - program : 하드디스크에 저장된 응용 프로그램
 - process : 실행되는 프로그램. 메모리에 올라가 있는 프로그램
   (OS에 따라서 Job 또는 task라고 부른다)
 - process는 다음을 포함하고 있다.
  > program counter : 현재 프로그램 실행 단계, 위치  // in PCB
  > contents of registers : register의 내용  // in PCB
  > Text section : program source cord
  > Data section : Global variable
  > Heap : Dynamic memory
  > Stack : 함수 파라미터, 지역변수, 반환주소등을 기억하는 공간 
  ※ Stack과 Heap이 만나면 memory overflow 발생!
   


* Process Control Block(PCB)
 - OS가 프로세스 관리를 목적으로 만든 Data structure(블럭)
 - PCB가 갖고 있는 정보
  > Process state : 현재 프로세스의 상태(ready, running, waiting, terminated)
  > Program counter : 현재 프로세스의 실행 위치, 실행 단계
  > CPU register :  사용하는 레지스터의 위치 정보
  > CPU scheduling information : CPU 스케줄링에 필요한 정보(시간 제한, 프로세스의 중요도)
  > Memory-management information : memory관리 정보
  > Accounting information : 사용자 정보
  > I/O status information

* Common Process State Diagram 
  

  - CPU는 각각의 process의 상태(PCB)를 저장하고, 불러오면서 time sharing을 실시한다.

* Process Scheduling
 - 실행 가능한 프로세서 중에서 다음에 CPU에서 실행할 프로세서를 정하는 선택하는 것
 - Scheduling을 위해서는 queue를 주로 사용하는데 다음과 같은 주요한 큐가 존재한다.
  ⓐ Job queue - 시스템 안에서 실행중인 모든 process의 집합
  ⓑ Ready queue - ready 상태에 있는 process의 집합
  ⓒ Device queue - I/O장비로 부터의 반응을 기다리는 process의 집합