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

  1. 2009.10.07 프로세스 by 초상큼발랄

* Process( 프로세스) 정의
- 수행 중인 프로그램
- 컴퓨터 상에 수행 중인 프로그램의 인스턴스
- 처리기에 할당되어 수행 될수 있는 개체(Entity)
- 명령들의 순차수행, 현재 상태, 연계된 시스템 자원들의 집합등에 의해 특징지어지는 활동 단위( a unit of activity) 

cf) Process : 사용자 관점(동적 변화 상태)
     Task : CPU관점(작업 단위)


* 운영체제의 요구사항
- 적절한 응답시간을 제공하면서 처리기 이용률을 극대화 할 수 있도록 여러 프로세스 수행을 인터리빙한다.
인터리빙(interleaving): 복수 모듈이 효과적으로 작동되기 위해서는 메모리 모듈을 번갈아 가면서 접근하는 방법
인터리빙 기법에서는 메모리 모듈을 Bank라고 하며, 짝수와 홀수 Bank로 나누어 번갈아 검색
- 교착상태를 회피함과 동시에 특정정책에 부합하도록 자원을 프로세스에 할당한다.
IPC(Inerprocess Communication) 프로세스 간 통신과 사용자의 프로세스 생성을 지원하는데 도움,
공유 파일을 이용한 통신
파이프(특수 File을 이용한 Data 교환)
- Named Pipe
- Unnamed Pipe
˙ 세마포어(Semaphore)
- Countable Semaphore: 세마포어 값이 2이상인 경우
- Binary Semaphore: 세마포어 값이 0, 1인 경우
˙ 공유 메모리(Shared Memory)
˙ 메세지 큐(Message Queue)

* Process의 구성요소
- 식별자(Identifier): 각 프로세스를 구별해 주는 유일한 식별자
- 상태(State): 여러 프로세스 수행가능 상태에서 다른 프로세스는 중단된 상태일 경우를 대비해서 상태 정보 확인
- 우선 순위(Priority): 상대적인 우선순위, 긴급처리 요청시 처리 요구를 위함
- 프로그램 카운터(Program Counter): 다음에 수행될 명령어의 주소
- 메모리 포인터(Memory Pointer): 공유되는 프로세스의 메모리 블록들에 대한 포인터 포함 (가상M주소 + 물리M주소)
- 문맥 데이터(Context Data): 프로세스가 수행중일때, 처리기의 레지스터에 존재하는 데이터
- 입출력 정보(I/O Information): 미해결 입출력 요청, 프로세스에 할당된 입출력 장치, 프로세스에 사용중인 파일들의
리스트 등을 포함
- 어카운팅 정보(Accounting Information)

* PCB(Process Control Block): Process의 구성 요소를 포함하고 있는 자료구조
- 역할
˙ 프로세스 구성 요소들을 포함
˙ 운영체제로 하여금 다수의 프로세스를 지원하고 다중처리를 제송할 수 있게 해주는 주요 도구

< /include/linux/sched.h >
task_struct {
}


cf) Dispatch(디스패치): 처리기를 한 프로세스부터 다른 프로세스로 교체(

* Process 상태 전이


Running(수행): 현재 수행 중인 프로세스
Ready(준비): 수행될 준비가 되어있는 프로세스
Blocked/Waiting(블록/대기): 입출력 연산 완료 등과 같은 어떤 이벤트가 발생할 때까지 수행될 수 없는 프로세스 
New(생성):
방금 생성되었지만, 프로세스 풀(pool)로의 진입이 아직 허용되지 않은 프로세스,
새로운 프로세스는 자신의 프로세스 제어블록이 생성되었다고 할지라도 그 당시까지 주기억장치에 적재되지 않는다
Exit(종료): 프로세스 수행이 중지되거나 어떤 이유로 중단된 프로세스,
운영체제에 의해 수행가능 프로세스 풀에서 방출된 프로세스


'Education > Operating System' 카테고리의 다른 글

Trace of Process  (2) 2009.10.12
HAL(Hardware Abstraction Layer)  (0) 2009.10.07
운영체제  (0) 2009.10.06
1. 운영체재 개요  (0) 2009.09.10
운영체제 개요  (0) 2009.09.04
Posted by 초상큼발랄
l