Process : 프로세스
  • 실행중에 있는 프로그램
  • 프로세서에 할당되어 실행 될 수 있는 entity
  • 프로세스 제어 블록(PCB : Process Control Block)을 할당 받는 개체
  • 컴퓨터에서 실행되는 프로그램의 인스턴스



Reasons for Process Creation : 프로세스의 생성 이유
  1. OS에 의해 생성
  2. Interactive login  - 터미널에서 사용자가 시스템에 로그인
  3. 존재하는 프로세스에 의해 생성 - 사용자 프로그램은 OS에게 자식 프로세스를 생성하라고 요청 할 수 있다.
  4. user command에 의해 생성 
 ☞ foreground (interactive) mode에서 프로그램 실행   
 ☞ background (batch) mode에서 프로그램 실행





Process States : 프로세스 상태   

  • Dispatcher(kernel function)은 PC(Program Counter)에 있는 주소값을 가져와서 한 프로세스로부터 다른 프로세스로 switch 해준다. ( 다른 프로세스로 자원을 할당해준다)
  • 프로그램 카운터(Program Counter,PC)는 중앙처리장치 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 Process의 주소값이 저장되어있다. (=명령어 포인터)

<Five-State Process Model>
  • Ready : Process가 CPU를 점유 할 준비가 된 상태
  • Running : Process가 CPU를 점유하고 있는 상태
  • Blocked (= wait state, sleep state) : Process가 event가 나타나는 것을 기다리는 상태 (ex. I/O completion)




프로세스 제어 블록 ( PCB : Process Control Block) = (TCB : Task Contol Block)
  • 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료구조
  • 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 Terminated 되면 PCB는 제거
  • OS에 의해 만들어지고 관리
  • PCB가 가지고 있는 정보
              프로세스 식별자(Process Identifier)
             프로세스 상태 (Process State) 
             프로그램 카운터 (PC:Program Counter)
             메모리 관리 정보 : 해당 프로세스의 주소 공간 등
             CPU 레지스터 및 일반 레지스터
             CPU 스케줄링 정보 : 우선순위, 최종 실행시각, CPU 점유시간 등
             프로세스 계정 정보 : 페이지 테이블, 스케쥴링 큐 포인터, 소유자, 부모 등
             입출력 상태 정보



 프로세스 문맥 ( Process Context )
  • Context : 프로그램의 실행 환경
  • User Context 
             - Code : 실행 될 사용자 프로그램 코드 (instructions) 
             - Data : 프로세스의 전역 변수
             - User Stack
                    LIFO 구조
                    사용자 기능을 호출하는 정보를 저장하는 데 사용 (  함수의 지역 변수, 함수의 인자, register value )
  • System Context
             System stack ( kernel stack) : 커널 함수를 호출하기 위한 정보를 저장하는 데 사용
             Process Control Block (PCB) : 프로세스를 제어하기 위해 운영 체제에 필요한 데이터



'운영체제' 카테고리의 다른 글

교착상태(Deadlock)  (0) 2018.08.28
세마포어와 뮤텍스 (Semaphores&Mutex)  (0) 2018.08.26
병행성과 상호배제&상호배제 알고리즘  (0) 2018.08.26
Thread  (0) 2018.08.24
Context Switch (문맥 교환)  (0) 2018.08.23

+ Recent posts