Anything Is Possible

'프로세스'에 해당되는 글 2건

  1. PCB and Interrupt(PCB와 인터럽트)
  2. 프로세스 상태 전이도(Process State Diagram)

PCB and Interrupt(PCB와 인터럽트)

Programming/Java

PCB(Process Control Block, 프로세스 관리 블록) ?



  • 커널에 등록된 각 프로세스에 대한 정보를 저장하는 영역
  • 커널 공간(kernel space)내에 존재
  • OS는 PCB의 정보를 사용하여 프로세스를 관리


PCB의 구성

포인터 

프로세스의 현재상태 

 프로세스의 식별자

 프로세스의 우선 순위

 각종 레지스터

 기억장치 관리 정보

 입출력 정보

 기타 정보...



PCB에 저장되는 정보


  • 프로세스 고유번호(PID : Process Identification)
  • 프로세스 우선순위(Priority)
→ 우선순위 - 기반 스케줄링시 필요한 정보
  • 프로세스 현재 상태(Current state)
→ 프로세스가 할당받은 자원들의 리스트 또는 이들에 대한 한 포인터
  • 문맥 저장 영역(Context save area)
→ 실행중인 프로세스의 일시 중지 시 레지스터 문맥의 저장 영역

PCB에 저장되어야 할 정보는 운영체제에 따라 서로 다름
커널의 PCB 영역 참조 및 갱신 속도 개선은 시스템 전체 성능에 중요함




◇ 인터럽트와 문맥 교환 

인터럽트(Interrupt) ?

컴퓨터 시스템에서 예측하지 못했던 사건이 발생하는 상황을 말한다.



인터럽트의 일반적인 종류


  • 입출력 인터럽트(I/O interrupt)
  • 클럭 인터럽트(clock interrupt)
  • 콘솔 인터럽트(console interrupt)
  • 프로세스간 통신 인터럽트(interprocess communication interrupt)
  • 시스템 호출 인터럽트(system call interrupt, SVC interrupt)
  • 프로그램 오류 인터럽트(program check interrupt)
  • 하드웨어 검사 인터럽트(machine check interrupt







'Programming > Java' 카테고리의 다른 글

프로세스 상태 전이도(Process State Diagram)  (0) 2018.01.08
GitHub(깃허브) 사용법  (0) 2017.12.26
JAVA 메모리 구조  (0) 2017.12.21

프로세스 상태 전이도(Process State Diagram)

Programming/Java

# 프로세스(Process)의 개념

  • 실행 중이 프로그램(작업)
  • Procedure가 활동 중인 것
  • 운영체제(OS)가 관리하는 실행의 단위




#프로세스의 상태(Process State)

○ 생성(New) 상태

→ 프로세스가 생성되었지만 아직 운영체제에 의해 실행가능하게 되지 못 한 상태


○ 준비(Ready) 상태

→ 프로세스가 실행을 위해 CPU(Processor)를 할당받기를 기다리는 상태


○ 실행(Run) 상태

→ 프로세스가 CPU(Processor)를 할당받아 실제로 실행되는 상태


▒ 디스패치(Dispatch) ?

- Ready 상태의 프로세스가 CPU를 할당받아 Run 상태로 전이되는 과정

▒ Time Runout?

- Run 상태의 프로세스에 할당된 CPU 사용시간이 완료되어 Ready 상태로 되돌아가는 과정


○ 종료(Exit)상태

→ 프로세스가 실행이 완전히 끝나고 CPU 할당이 해제된 상태


○ 대기(Wait)상태

→ 프로세스가 CPU(Processor)를 할당받아 실행되다가 어떤 사건이 발생(ex. 입 · 출력 작업이 완료)할 때까지 멈추어 있는 상태


▒ Wake Up?

- 대기(Wait) 상태에 있던 프로세스가 기다리던 어떤 사건의 발생(입 · 출력 작업이 완료)으로 인해 나머지부분의 실행을 위해 준비(Ready) 상태로 전이되는 과정


'Programming > Java' 카테고리의 다른 글

PCB and Interrupt(PCB와 인터럽트)  (0) 2018.01.09
GitHub(깃허브) 사용법  (0) 2017.12.26
JAVA 메모리 구조  (0) 2017.12.21