오래 못 할 짓 하지 않기
[ 운영체제 ] 4. 프로세스 본문
프로세스
: 실행중인 프로그램
● 현재 활동중인 상태의 프로세스는 PC값과 , Register들로 표현된다.
● 메모리에서 Process의 Layouts
1) 코드 영역 ( = 텍스트 영역)
- [ 실행할 수 있는 코드 = 기계어로 이루어진 명령어 ] 가 저장되어 있다.
- CPU가 실행할 명령어가 담긴St다.
2) 데이터 영역
- 프로그램이 실행되는 동안 유지할 데이터 저장 ex) 전역 변수
위에 나온 코드 영역 / 데이터 영역은 고정된 크기를 하는
즉, 메모리를 정적으로 할당하는 영역이다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
3) 힙 영역
- 실행되는 동안 동적으로 공간이 할당되는 영역
→ 낮은 주소에서 높은 주소로 할당
4) 스택 영역
- 데이터가 일시적으로 저장되는 공간 = 잠깐 쓰다 버릴 값들이 저장됨
ex) 매개 변수 , 지역 변수
→ 높은 주소에서 낮은 주소로 할당
위에 나온 힙,스택 영역 은 고정된 크기를 하는
즉, 메모리를 동적으로 할당하는 영역이다.
예시)
Layout을 보면
1) 코드, 초기에 선언된 전역변수들이 text 영역, data영역에 들어간다.
2) 동적으로 할당되는 건 Heap 영역,
3) main함수에서만 쓰이는 (그나마 지역변수??) 는 Stack에 저장된다.
● Process State
1) New (생성)
: 프로세스가 만들어짐
2) Running (실행)
: 명령이 실행되는 중
3) Waiting (대기)
: 프로세스가 어떤 일이 생기기를 기다리는 중
- 프로세스가 실행 도중에 입출력 장치를 사용하는 경우
- 입출력 작업은 CPU에 비해 느리기 때문에, 대기 상태로 한다.
- 입출력 작업이 끝나면 준비 상태로
4) Ready (준비)
: CPU를 할당받아 실행할 수 있지만, 자신의 차례를 기다리는 상태
- 자신의 차례가 되면 실행상태로 (= 디스패치)
5) Terminated (종료)
: 프로세스가 실행을 마침.
Process Control Block ( PCB )
: 각각의 Process 에 관련된 정보
PCB는 Structure 구조로 나타난다.
Thread
: 프로세스를 구성하는 실행 흐름의 단위
Process Scheduling
: CPU에서 실행될 Process를 고르는 것
● 목적
1) CPU 활용도 극대화하기.
● 특징
- 한 번에 오직 하나의 Process만 실행된다.
- Scheduler 는 다음에 실행될 수 있는 Process를 고른다.
- 그 외에 실행되지 않는 Process는 Scheduling queue에서 기다려야한다.
● Ready queue에는 Main memory에서 실행되기를 준비하여 기다리는 Process를 담고있다.
● Wait queue에는 특정 이벤트가 생기길 기다리고 있다.
더 세부적으로 보려면 아래 그림을 참고
Context Switch
: CPU가 하나의 Process에서 다른 Process로 전환하는 것
● 방법
1) 현재 프로세스 상태를 저장한다.
2) 새로운 프로세스의 상태를 가져온다.
※ 문맥 교환 하는 과정에서 일어난 시간은 고려하지 않는다.
https://min-h-study-review.tistory.com/245
(출처)
한동대학교 고윤민 교수님 - 운영체제
유튜브 한빛미디어
'3학년 1학기 > 운영체제 (OS)' 카테고리의 다른 글
[ 운영체제 ] 6. Inter Process Communication / PIPE (0) | 2024.04.01 |
---|---|
[ 운영체제 ] 5. 프로세스 - Parent,child (0) | 2024.03.25 |
[ 운영체제 ] 3. OS Structure ( 디자인,Implementation ) (0) | 2024.03.19 |
[ 운영체제 ] 2. System call (0) | 2024.03.16 |
[ 운영체제 ] 1. Introduction (0) | 2024.03.12 |