프로세스

지난주 복습

  • 컴퓨터 시스템은 프로세서, 메모리, 입출력 주변장치, 그리고 버스로 구성된다.
  • 폰 노이먼 방식의 컴퓨터 구조는 내장 프로그램 방식을 채택하여 현대 컴퓨터 구조의 근간이 되었다.
  • 마이크로 프로세서는 레지스터, 연산, 장치, 제어장치로 구성된다.

  • 시스템 버스는 컴퓨터 내부/외부의 컴포넌트간의 제어정보 혹은 데이터 전달을 위한 공통자원이다.
  • 입출력 주변 장치는 컴퓨터와 사용자를 연결해주는 역할을 수행한다.

  • 입출력 주변 장치를 사용하면서 프로세서가 직접 주변장치를 감지하는 폴링방식을 사용할 수 있지만, 프로세서의 부하를 줄이기 위해서 인터럽트 방식과 DMA방식을 사용한다.
  • 프로세서가 명령어를 수행하는 과정은 명령어 인줄, 명령어 해독, 피연산자 인출, 명령어 실행, 결과 저장의 순서로 수행된다.
  • 프로세서는 명령어 구성 방식에 따라서 CISC와 RISC로 구분된다.
  • 사용자가 특정 프로그램 언어로 작성한 프로그램을 컴파일러를 이용하여 컴퓨터가 사용할 수 있는 코드로 변환해 준다.

학습목표

  • 프로세스의 정의를 설명할 수 있다.
  • 프로세스의 상태 변화 과정을 설명할 수 있다.
  • 프로세스의 생성과 종료등의 시스템 호출을 사용할 수 있다.

학습내용

퀴즈로 확인하기

정리하기

  • 프로세스는 작업 기본 단위로서 “실행중인 프로그램”을 의미한다.
  • 프로세스는 실행되면서 생성, 실행, 대기, 준비 그리고 종료 상태를 갖는다.
  • 운영체제는 여러 개의 프로세스를 관리하기 위하여 프로세스 제어블록(PCB, Process Control Block)이라는 자료구조를 사용한다.

  • 각 프로세스의 PCB는 운영체제의 메모리 내부에 존재하며, 각 프로세스마다 하나씩 가지고 있다.
  • CPU 프로세서의 점유권을 변경할 때에는 현재 동작중인 프로세스의 PCB를 백업하는 문맥 교환 작업을 수행하여 이후에 다시 실행을 재개할 수 있도록 한다.

  • 프로세스들은 항상 부모 프로세스와 자식 프로세스의 관계를 갖고 있어서 전체적으로 트리(tree)구조를 형성한다.
  • 부모 프로세스는 자식 프로세스의 종료 상태를 확인해야 하며, 이를 수행하지 않는 경우에는 자식 프로세서가 좀비 상태가 될 수 있다.

  • 새로운 자식 프로세스는 부모 프로세스와 동일한 코드로 동작할 수도 있고 완전히 새로운 코드를 실행할 수도 있다.
  • 다중 프로그래밍 환경에서 다수의 프로세스가 동시에 동작하기 때문에 스케줄링 이슈, 메모리 할등이슈, 동기화 이슈 들이 발생한다.