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)
'Computer Science > Operating System' 카테고리의 다른 글
이론 4) - 1 프로세스 동기화의 배경 (0) | 2020.10.21 |
---|---|
이론 3) - 2 스케줄링 알고리즘 (0) | 2020.10.18 |
이론 3) - 1 CPU 스케줄링 (0) | 2020.10.18 |
이론 2) 쓰레드(thread) (0) | 2020.10.17 |
1. 리눅스 설치하기 (0) | 2020.10.01 |