티스토리 뷰
프로세스의 개요
프로세스의 개념
프로그램은 저장장치에 저장되어 있는 정적인 상태
프로세스는 실행을 위해 메모리에 올라온 동적인 상태
프로세스는 컴퓨터 시스템의 작업 단위로 태스크(Task)라고도 부른다.
*프로세스 제어 블록(PCB)
- 프로세스 실행 시 운영체제가 만드는 작업 지시서
☞ 프로세스를 처리하는 데 필요한 다양한 정보가 들어 있다.
다양한 정보 중 대표적인 세 가지 정보에 대해 알아보자
#프로세스 제어 블록(PCB)의 세 가지 대표적인 정보
- 프로세스 구분자
메모리에는 여러 개의 프로세스가 존재
그러므로 각 프로세스를 구분하는 프로세스 구분자(PID)가 있다. - 메모리 관련 정보
CPU는 실행하려는 프로세스가 어디에 저장되어 있는지 알아야 한다.
그래서 프로세스 제어 블록(PCB)에 위치 정보가 들어 있다.
또한, 메모리 보호를 위한 경계 레지스터와 한계 레지스터도 포함되어 있다. - 각종 중간 값
프로세스가 사용했던 중간 값 저장 (저장 기능)
그리고 그 다음 작업 위치 값인 프로그램 카운터(PC)도 같이 저장
*프로세스와 프로그램의 관계
프로세스 = 프로그램 + 프로세스 제어 블록(PCB) |
프로그램 = 프로세스 - 프로세스 제어 블록(PCB) |
프로세스의 상태
일괄 작업 시스템
생성 → 실행 → 완료
시분할 시스템
생성 → 준비 → 실행 → 완료
프로세스의 네 가지 상태
- 생성 상태 : 프로세스가 메모리에 올라와 실행 준비를 완료한 상태, 제어 블록 생성
- 준비 상태 : 생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태
- 실행 상태 : 준비 상태에 있는 프로세스 중 하나가 CPU를 얻어 실제 작업을 수행하는 상태(일정 시간만 부여)
->만약 일정 시간 안에 해결 못할 시 준비 상태 <-> 실행 상태 반복 - 완료 상태 : 실행 상태의 프로세스가 주어진 시간 안에 작업을 마친 상태 (PCB가 사라진 상태)
*스케줄러 : 준비 상태에 있는 프로세스 중 다음 실행할 프로세스 선정
*디스패치 : 준비 상태 -> 실행 상태로 바꾸는 CPU 스케줄러의 작업
*타임 슬라이스, 타임 퀀텀 : 프로세스에 배당된 작업 시간
*타임 아웃 : 주어진 시간(타임 슬라이스) 안에 작업이 끝나지 않아 준비 상태로 돌아간 상태
프로세스의 다섯 가지 상태 (★)
오늘날 운영체제는 효율성을 고려하여 "대기 상태"를 추가했다.
대기 상태 : 입출력을 요구한 프로세스가 입출력이 완료될 때까지 기다리는 상태
->효율성을 높이기 위해 프로세스를 실행 상태에 두지 않고 대기 상태로 옮김
휴식 상태와 보류 상태
대부분의 프로세스는 생성, 준비, 실행, 대기, 완료 상태 (5가지 상태)로 운영된다.
이러한 5가지 상태를 활성 상태라고 한다.
활성 상태 외에 조금 특별한 경우인 또 다른 상태, 휴식 상태와 보류 상태에 대해 알아보자.
휴식 상태 : 프로세스가 작업을 일시적을 쉬고 있는 상태
보류 상태 : 프로세스가 메모리에서 잠시 쫓겨난 상태 (바이러스, 오류 등)
프로세스 제어 블록과 문맥 교환
프로세스 제어 블록(PCB)
프로세스를 실행하는데 필요한 중요한 정보를 보관하는 자료구조로 TCB(Task Control Block)라고도 한다.
문맥 교환
CPU를 차지하던 프로세스가 나가고 새로운 프로세스를 받아들이는 작업
문맥 교환이 일어나는 경우
타임 퀀텀이 지나면 발생, 인터럽트 때 발생
좋아요는 로그인하지 않아도 누를 수 있습니다!
'운영체제' 카테고리의 다른 글
[쉽게 배우는 운영체제] 3장 연습문제(심화문제) 정답 [OS] (0) | 2021.08.27 |
---|---|
[쉽게 배우는 운영체제] 3장 : 프로세스와 스레드 (2/2) [OS] (0) | 2021.08.27 |
[쉽게 배우는 운영체제] 2장 연습문제(심화문제) 정답 [OS] (0) | 2021.08.25 |
[쉽게 배우는 운영체제] 2장 : 컴퓨터의 구조와 성능 향상 (2/2) [OS] (0) | 2021.08.25 |
[쉽게 배우는 운영체제] 2장 : 컴퓨터의 구조와 성능 향상 (1/2) [OS] (0) | 2021.08.23 |
- Total
- Today
- Yesterday
- 백준
- 우종정
- 파이썬
- 자바스크립트
- 문자열
- Web
- 정리
- BFS
- 해답
- 알고리즘
- 답
- 정답
- 운영체제
- 쉽게배우는자바프로그래밍
- 정렬
- 그리디
- 쉽게 배우는 자바 프로그래밍
- OS
- 프로그래머스
- py
- 연습문제
- 풀이
- java
- 쉽게배우는
- JS
- C++
- 구현
- Python
- 자바
- CPP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |