티스토리 뷰


운영체제(OS)


프로세스


*프로그램

프로그램이란 명령어 들이 보관되어 있는 하나의 파일로, 비활동 상태에 있습니다.

 

*프로세스

프로그램이 그 기능을 수행하기 위한 CPU및 다른 컴퓨터 자원을 요구하고 할당받아 활동 상태에 있는 것 입니다. 운영체제의 입장에서 보면 관리해야 하는 실행 주체 단위로 볼 수 있습니다. 프로세스의 다른 이름은 태스크(Task)입니다.

 

*프로세서

연산을 수행하고 프로세스의 실행을 제어하는 하드웨어 장치. 즉, CPU입니다. 프로세서가 여러개면 다중 프로세서 시스템이 되는 것 입니다.

 

*프로세스의 상태

프로세스의 상태는 실행(running)상태, 대기(waiting)상태, 준비(ready)상태 3가지가 있습니다.

 

- 실행 상태

프로세스가 CPU를 할당받아 실제로 명령어 들을 수행중인 상태 입니다. 단일 프로세서 시스템에서는 한 프로세스 만이 실행 상태에 있을 수 있습니다.

 

- 대기 상태

실행상태에 있던 프로세스가 인터럽트가 발생하거나 특정 조건이 필요할 시에 대기 상태가 됩니다. 예시로 외부 입력 데이터 필요시 입력이 완료될 때 까지 대기상태에 머물게 됩니다.

 

- 준비 상태

대기 상태에 있던 프로세스가 기다리던 사건이 만족되면 준비상태가 되며, CPU를 사용중인 프로세스가 CPU 반환시에 CPU를 할당 받을 수 있는 후보가 됩니다.

 

 

시분할 시스템에서는 한 프로세스가 CPU를 독점하여 사용하는 것을 방지하기 위해 운영체제가 사용자 프로세스에게 CPU를 할당할 때 미리 정해진 최대 CPU 사용시간을 설정해 둡니다. 만약 시간을 초과하면 운영체제가 그 프로세스를 실행 상태에서 준비 상태로 전이 시킵니다.

 

프로세스 제어 블록

 

*프로세스 제어 블록(Process Control Block; PCB)

프로세스가 실행 상태에서 다른 상태로 전이될 때, 현재까지의 실행 상태 정보를 저장해야 합니다. 저장된 상태 정보는 다시 스케줄 되어 실행될 때 환원 되어야 하며, 이런 상태전이가 프로세스의 수행 결과에 영향을 미쳐선 안됩니다. 프로세스의 상태 정보는 프로세스 제어 블록이라는 자료구조에 저장이 됩니다.

 

PCB는 프로세스가 처음 생성될 때 만들어지고 그 프로세스가 종료되면 삭제되며, 그 프로세스에 대한 기본적인 관리 정보가 저장되어 있습니다. (프로세스 식별자, 프로세스 상태, 프로세스 실행 정보, 사용 계정 정보)

 

- 프로세스 식별자 : 각 프로세스를 서로 구별하기 위한 일련번호.

- 프로세스 상태 : 프로세스의 현재 상태(준비, 대기, 실행)

- 프로세스 실행 정보 : 프로세스가 실행 상태에서 사용하던 자원에 대한 정보.

(다음에 다시 스케줄 되어 실행될 경우를 대비하여 현재 사용중이던 CPU 레지스터들의 내용아나 주기억장치의 위치 및 크기, 그리고 사용 중이던 파일이나 입출력 장치들에 대한 세부 할당 정보가 저장)

- 사용 계정 정보 : 해당 프로세스가 어떤 종류의 자원을 얼마나 사용했는지를 나타내는 정보

(해당 프로세스가 사용한 총 CPU 시간, 점유한 주기억장치 용량, 보조 기억장치 용량, 입출력 장치를 사용한 횟수 및 전송된 데이터 크기 등)


댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함