내 잡다한 노트
챕터3 프로세스의 개요 본문
프로세스와 프로그램의 차이점
프로그램은 PCB(프로세스 제어 블록)을 받지 않은 상태이고 메모리에 올라가지 않은 것을 뜻한다.
프로세스는 PCB를 받아 메모리에 올라간 상태를 말한다.
프로그램은 정적이고, 프로세스는 동적인 것이다.
프로세스의 다섯가지 상태
생성 -> 준비 -> 실행 -> 완료
-> 대기
생성은 프로그램을 메모리에 올려 PCB를 준 상태이다.
그렇게 되면 준비상태로 가게 된다.
준비 상태에서는 준비 큐가 있어 CPU 스케쥴링의 선택을 기다리며 준비한다.
각각의 프로세스들은 우선순위가 존재해 그 우선순위에 따라 CPU 스케쥴링은 선택을 하게 된다.
선택을 받으면 CPU가 프로세스를 실행시키게 된다.
이때 프로세스들은 타임 슬라이스를 받고 주어진 시간동안 실행을 하지 못하면 다시 준비상태로 가게끔 한다.
준비상태에서 실행상태로 가는 것을 디스패치라고 하고 실행상태에서 준비상태로 가는 것을 타임아웃이라고 한다.
그리고 성공적으로 실행한다면 PCB를 반납하고 프로세스를 종료시키는데 그것을 완료상태라고 한다.
만약, 실행 상태에서 입출력을 기다려야 한다면 기다리는 동안 CPU가 일을 못하는 것은 비효율적이므로
대기 상태로 프로세스를 보낸다. 입출력 관리자에게 일을 맡긴후 CPU는 다른 프로세스를 실행상태로 옮겨
새로운 일을 실행하고 입출력 관리자는 일을 마치면 CPU에게 인터럽트를 보내 일이 끝났다는걸 알린다.
그러면 대기상태에 있던 프로세스는 준비상태로 가서 다시 CPU가 부를때까지 기다린다.
활성상태 보류상태
위에 말한 5가지 상태가 활성상태이고, 새로운 상태들이 존재한다. 이것들은 프로세스에 문제가 있거나
컴퓨터에 안좋은 영향을 끼칠때 보류상태로 보내지게 된다.
휴식 상태
휴식 상태는 프로세스가 실행되던 도중 모종의 이유로 잠시 중지된 상태이다.
그래서 메모리에 PCB등 프로세스의 정보는 계속 담겨있는 상태이다.
보류상태는 오류가 발생했을 때 프로세스가 메모리에서 잠시 쫓겨난 상태이다.
그래서 휴식 상태와 다르게 메모리에 데이터들이 존재하지 않는다.
보류 대기 상태, 보류 준비 상태가 존재하고, 보류 대기 상태는 입출력을 기다리는 도중 문제가 생겼을 때
대기 상태에서 보류 대기 상태로 가게 된다.
보류 상태에 들어간 프로세스는 메모리 밖으로 쫓겨나 스왑 영역으로 보관된다.스왑 영역은 메모리에서 쫓겨난 데이터가 임시로 보관되는 장소이다.보류의 2가지 상태에서 재시작을 하게 되면 다시 활성상태로 돌아가게 된다.
보류 대기 상태에서는 재시작을 하면 활성상태로 가지만 보류 대기 상태에서 입출력을 완료하면
보류 준비 상태로 옮겨간다.
'운영체제' 카테고리의 다른 글
챕터3 프로세스의 연산 (0) | 2022.07.24 |
---|---|
챕터3 프로세스 제어 블록과 문맥교환 (0) | 2022.07.24 |
챕터2 병렬 처리 (0) | 2022.07.08 |
챕터2 컴퓨터 성능 향상 기술 (0) | 2022.07.08 |
챕터2 CPU와 메모리 (0) | 2022.07.06 |