반응형

1. 프로세스란?

: 프로그램실행되는 상태

 

- 프로그램과 달리 프로세스는 메모리에 주소 공간을 갖는 능동적인 객체

: 실행 스택 - 일시적인 데이터를 저장하는 영역

: 실행 힙 - 텍스트 코드와는 별도로 유지되는 자유 영역

 

 

 

 

 

 

- 프로세스 상태

: 신규, 준비, 실행, 대기, 종료

 

 

 

 

 

 

 

- 프로세스 제어 블록(PCB)

: 특정 프로세스에 대한 정보를 가진 데이터 블록/레코드

: 프로세스의 모든 변화 정보의 기억 장소 역할

 

: 포인터

: 프로세스 상태(state)

: 프로세스 넘버

: 프로그램 카운터 - 프로세스가 어디까지 실행되었는지

: 레지스터

: 메모리 용량

: 열려있는 파일들

 

 

 

 

 

 

 

 

- 프로세스 간 CPU 스위칭 

: 다중 프로그래밍을 위한 문맥 교환

 

 

 

 

 

 

 

 

 

 

 

2. 프로세스 스케줄링

- 스케줄링 큐

: 스케줄링을 위해 PCB들이 연결되는 큐가 필요

 

- 큐의 종류

1) 작업큐 : 프로세스가 시스템에 들어가면 작업큐에 입력

2) 준비큐 : 주기억 장치에 상주하면서 준비 상태에서 실행을 기다리는 프로세스들로 구성

3) 장치큐 : 특정 입출력 장치를 대기하는 프로세스들의 리스트

 

 

 

- 스케줄러의 종류

1) 단기 스케줄러 : 준비 상태의 프로세스(준비큐)들 중에서 하나의 CPU에 할당

2) 장기 스케줄러: 프로세스를 준비 상태(준비큐)로 만듦

 

 

 

 

 

 

3) 중기 스케줄러

: 메모리 공간의 확보 등을 위해 실행중인 프로세스를 디스크로 교체(Swap out)

: 교체된 프로세스를 다시 메모리에 적재(Swap in)

 

 

 

 

- 문맥 교환 : CPU를 다른 프로세스로 전환하기 위해 이전의 프로세스 상태를 보관하고 새로운 프로세스의 보관된 상태를 적재하는 작업

* 문맥 교환 시간

: 하드웨어 지원에 의해 결정

 

 

 

 

 

 

 

 

 

3. 프로세스에 대한 연산

 

- 프로세스의 생성

: 한 프로세스 병행 도중에도 다른 프로세스를 생성하여 병행 진행합니다.(UNIX의 fork명령)

: 부모와 자식 프로세스가 모든 자원 공유합니다.

: 부모와 자식 프로세스가 함께 실행합니다.

 

 

 

- 프로세스 종료

: 부모는 자식 프로세스를 종료시킬 수 있습니다.(abort)

 

 

 

-프로세스 일시중단과 재시작

: 시스템에 장애가 발생하면 프로세스는 잠시 중단했다가 시스템이 기능을 회복하면 재시작

 

 

 

 

 

 

 

 

4. 프로세스 간 통신(IPC)

 

- 프로세스들 간의 관계는 독립적이거나 협동적 입니다.

: 독립적일 경우, 다른 프로세스에 영향주지 않습니다.

: 협동적일 경우, 다른 프로세스에게 영향을 주거나 받습니다.

 

 

 

- 협동 프로세스가 필요한 이유

: 정보의 공유, 연산속도증가, 모듈성

 

- 협동 프로세스는 프로세스 간의 통신과 동기화 메커니즘이 필요합니다.

 

 

 

- IPC(InterProcess Communication)

: 프로세스 간의 통신동기화 기능 제공합니다.

: 메시지 전달 시스템입니다.

 

< 기본 구조 >

send(message) / receive(message)

 

 

 

 

- 통신의 동기화

1) 봉쇄형(blocking) : send했는데 receive가 안오면 계속해서 기다림 (synchronous)

2) 비봉쇄형(non-blocking) : send했는데 receive가 안와도 저장해놓고 다른 작업을 함 (asynchronous)

 

 

 

 

 

 

반응형

+ Recent posts