프로세스의 개념
- 프로그램 : 명령어의 집합 저장 위주
- 주기억장치(준비) -> CPU(실행), 비동기적 행위 -> 동기화 필요
- 프로세스란? 실행 중인 프로그램(동적)
- 디스크에 저장되어 있던 실행 가능한 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태. 해당 프로세스가 사용하고 있는 메모리 영역
- 프로세스는 반드시 한개의 PCB와 연결된다.
- 실행 중인 프로그램
- 비동기적 행위
- 실행 중인 프로시저
- 실행 중인 프로시저의 제어 추적
- 운영체제에 들어 있는 PCB와 연결
- 프로세서에 할당하여 실행 할 수 있는 개체 디스패치가 가능한 상태
프로세스 종류
- 시스템(커널) 프로세스
- 모든 시스템 메모리와 프로세서의 명령에 액세스 할 수 있음
- 프로세스 실행 순서 제어를
- 사용자 프로세스
- 사용자 코드를 수행 프로세스
- 병행 수행 방법에 따른 분류
- 독립 프로세스 : 다른 프로세서 영향 X, 영향 받지도 X 수행 하는 병행 프로세스
- 협력 프로세스 : 독립과 반대
프로세스의 상태 (Process State)
- 생, 준, 실, 대, 완
- 생성 : pcb 생성, 메모리 공간 확보
- 준비 : 메모리 + 자원 할당
- 실행 : cpu time-slice
- 대기 : 프로세서 어떤 이벤트가 일어나기를 기다리는 상태
- 완료 : pcb 삭제 + 자원 해제
상태 변환 1. 준비 -> 실행 (디스패칭) : 준비 상태의 프로세스는 디스패처에 의해 프로세서가 부여, 실행상태가 된다. 2. 실행 -> 준비 (time run out) : 어떤 프로세스가 프로세서를 계속 독점 방지. 지정된 시간동안만 독점 가능 3. 실행 -> 대기 (block) : 지정된 시간 이전에 입출력이 들어오면 스스로에게 양도된다. 4. 대기 -> 준비 (wake up) : 입출력 작업이 끝났으면, 대기는 준비로
Process Control Block(PCB)
- 프로세스 제어 블럭
- 운영체제에 특정 프로세스에 대한 중요 정보 제공
- 프로세스 생성할 떄 만들어지며, 주기억장치에 유지, 운영체제 내에서 한프로세스의 존재 정의
- 인터럽트 처리, 자원할당, 스케줄링 등 수행 모든 모듈에 의해 판독
프로세스 생성 시 필요한 세부 작업
- 새로운 프로세스에 프로세스 식별자 할당
- 프로세스의 모든 구성 요소 포함, 주소 공간과 프로세스 제어 블록 공간 할당
- 프로세스 제어 블록 초기화. 프로세스 상태, 가운터 초기화 자원 요청, 우선순위 등을 포함
- 해당 준비큐에 삽입
문맥 교환 (Context Switch)
- 상태정보 저장
- 이전 상태 레지스터 내용 보관, 다른 프로세스 레지스터를 적재
- 준비->실행, 실행->준비, 실행->대기 상태로 변화할때 발생
- 과부하가 발생
- 자주 발생 하기 때문에 효율적으로 구현되어야한다. 이를 위해 스레드를 사용
'정리노트 > 필요한것' 카테고리의 다른 글
[운영체제] 7장 교착상태 (0) | 2021.07.25 |
---|---|
[운영체제] 6장 프로세스 동기화 (0) | 2021.07.25 |
[운영체제] 4장 프로세스 관리 (0) | 2021.07.25 |
[운영체제 CS]1장~2장. 운영체제의 개요 (0) | 2021.07.22 |
GIT BRANCH 전략 (0) | 2021.07.22 |