프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며, 작업, 태스크라고도 한다.


PCB를 가진 프로그램

실기억장치에 저장된 프로그램

프로세서가 할당되는 실체로서, 디스패치가 가능한 단위

프로시저(부 프로그램)가 활동중인 것

비동기적 행위를 일으키는 주체

목적 또는 결과에 따라 발생되는 사건들의 과정

운영체제가 관리하는 실행 단위






PCB(Process Control Block)

운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳


프로세스의 현재 상태

포인터

 - 부모/자식 프로세스에 대한 포인터

 - 프로세스가 위치한 메모리에 대한 포인터

 - 할당된 자원에 대한 포인터

프로세스 고유 식별자

스케줄링 및 프로세스의 우선순위

CPU 레지스터 정보

주기억장치 관리 정보

입출력 상태 정보

계정 정보



 





 프로세스 상태 전이





제출(Submit)

 - 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태


접수(Hold)

 - 제출한 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태


준비(Ready)

 - 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태

 - 프로세스는 준비상태 큐(스케줄링 큐)에서 실행을 준비하고 있다.


실행(Run)

 - 할당 시간이 종료되면 준비상태로 전이된다.

 - 입출력 처리가 필요하면 대기상태로 전이된다.

 - 준비 상태에서 실행상태로의 전이는 CPU스케줄러에 의해 수행


대기(Wait), 블록(Block)


종료(Terminated, Exit)







스레드

스레드는 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위

 - 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당


사용자 수준의 스레드

 - 사용자가 만든 라이브러리를 사용하여 스레드를 운용

 - 속도는 빠르지만 구현이 어렵다.


커널 수준의 스레드

 - 운영체제의 커널에 의해 스레드를 운용

 - 구현이 쉽지만 속도는 느리다.


장점

 - 병행성 증진

 - 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상

 - 응용프로그램의 응답시간 단축

 - 실행 환경을 공유시켜 기억장소의 낭비가 줄어듬

 - 프로세스간의 통신 향상

 - 스레드는 공통적으로 접근 가능한 기억장치를 통해 효율적 통신





'ComputerScience > OperatingSystem' 카테고리의 다른 글

병행 프로세스와 상호 배제  (0) 2017.10.11
프로세서 스케줄  (0) 2017.10.10
링커와 로더  (0) 2017.10.10
매크로  (0) 2017.10.10
운영체제의 개요  (0) 2017.10.10

+ Recent posts