2023. 12. 13. 23:53 용어 관련

Process에 대해서

반응형

우리는 개발을 하면서 process라는 말을 자주 접한다. 이번 포스팅에서는 process란 무엇인가를 포함해서 다양한 내용을 다뤄 볼 것이다.

process란 무엇인가?
process는 컴퓨터에서 연속적으로 실행되고 있는 program을 의미하며
종종 cpu scheduling 대상인 task와 동일한 의미로 사용된다.
process는 program 그 자체 또는 program의 상태가 memory 상에서 실행되는 작업 단위를 지칭한다.
- program A를 여러개 실행하면 여러개의 process가 생성된다.

process의 구조
process의 구조는 크게 아래와 같이 구분된다.
. text : 컴파일 된 code 가 저장된느 영역
. data : 전역변수 및 초기화된 data가 저장되는 영역
. heap : code 상에서 동적으로 생성되는 ata가 저장되는 영역
. stack : 함수 콜스택, 지역변수 등이 저장되는 영역

process의 상태와 그에 대한 설명
process는 아래와 같은 상태를 가진다.
. create
- proces를 생성하는 상태
. running
- process가 cpu를 점유하고 관련 명령어들을 실행 중인 상태
. ready
- process가 CPU를 사용하고 잇지는 않지만 점유를 준비중인 상태.
. waiting
- process가 특정 input 혹은 signal을 기다리는 상태.
. terminated
- process가 종료된 상태


process의 상태 변화
하나의 program이 실행되면 그에 대응하는process가 생성되어 준비 리스트에 들어간다.

그 후 이미 준비 리스트에 있던 다른 process가 CPU를 할당받아 떠나면 순차적으로 앞으로 나아간다.

process가 겪는 상태 변화는 아래와 같다

. dispatch : ready -> running

. block : running -> blocked

. wakeup : blocked -> ready

. timeout : running -> ready

process mode

process는 두가지의 mode가 존재한다. 각각 UserMode와 KernelMode이다.

우선 간단하게 알아둘 것으로는 운영체제는 기본적으로 가상 메모리를 user 영역과 kernel 영역으로 구분한다.

 kernel 영역은 kernel, kernel 확장기능, 대부분의 장치 driver를 실행하기 위한 예비 공간이다.

반면, user 영역은 모든 사용자 모드의 application들이 동작하는 영역으로 해당 메모리는 필요할 때 Paging 처리 될 수 있다.

User 영역의 process는 일반적으로 고유한 가상 메모리 영역에서 실행되며, 다른 process의 메모리에 접근할 수 없다.

 


참고 -
https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4

반응형

'용어 관련' 카테고리의 다른 글

UUID란  (0) 2023.12.16
thread란  (0) 2023.12.15
proxy server , reverse proxy server  (0) 2021.07.18
Zero Trust Model  (0) 2021.07.18
DeadLock, Live Lock  (0) 2021.06.20
Posted by Sweetmeats_boy

블로그 이미지
Sweetmeats_boy

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.9
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
29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함