Search
Duplicate
♟️

OS: Process

간단소개
운영체제론에서 소개하는 프로세스 이야기
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Operating System
Scrap
태그
Operating System
9 more properties
프로세스란
프로세스란 실행 중인 프로그램을 말합니다. 프로그램의 메모리 레이아웃은 다음과 같습니다.
Text section: 실행 가능한 코드
Data section: 전역 변수
Heap section: 프로그램 실행 중 동적으로 할당된 메모리
Stack section: 함수를 실행했을 때 일시적으로 데이터를 저장하는 곳 (인수 , 리턴 주소, 지역 변수)
text, data 영역은 고정되어 있으며 프로그램 실행 중 크기가 변하지 않습니다. 하지만, stack과 heap 영역은 프로그램 실행 중 크기가 동적으로 늘거나 줍니다. 함수가 호출될 때마다 activation record라는 매개 변수와 지역 변수 그리고 반환 주소 등을 가진 놈이 stack에 쌓입니다. 함수가 종료되면 이 activation record는 다시 스택에서 poped 됩니다. 그리고 시스템에 메모리가 반환됩니다. stack, heap이 서로를 향해 줄거나 늘어나지만 운영체제는 반드시 이 둘이 서로 오버랩하는 것을 막아야 합니다.
프로그램은 이 자체로 프로세스가 아닙니다. 프로그램은 수동적 녀석입니다. 하지만 반대로 프로세스는 능동적 녀석입니다. 실행 가능한 파일을 메모리에 올렸을 때 프로그램은 비로서 프로스세스가 됩니다. 메모리에 프로그램을 올리는 방법은 2가지 입니다. 파일을 더블클릭하거나 커멘드라인에 파일 이름을 넣는 것입니다.
포르세스는 이 자체로 다른 코드를 위한 실행 환경을 제공할 수 있습니다. java programming environment는 좋은 예입니다. 대부분의 상황에서 실행 가능한 자바 프로그램은 자바 가상 머신에서 실행됩니다. 자바 가상 머신은 프로세스를 실행하고 이 프로세스는 자바 코드와 그 코드의 행동을 실행합니다.
Process State
프로세스가 실행되면서 이는 상태를 변경합니다. 프로세의 state는 다음과 같습니다.
new: 프로세스가 생성되었습니다.
running: 명령이 실행 중 입니다.
waiting: 프로세스가 어떤 이벤트가 일어나길 기다리고 있습니다. (I/O)
ready: 프로세스가 할당되기를 기다리고 있습니다.
terminated: 프로세스가 실행을 끝냈습니다.
Process control Bock
각 프로세스는 PCB에서 관리됩니다. PCB는 특정 프로세스와 관련된 정보들을 가지고 있습니다. 다음과 같은 정보를 가지고 있습니다.
process state
program counter
CPU register
CPU scheduling information
memory management information
Accounting information
I/O status information
간단하게 말하면, PCB는 프로세스를 시작하거나 재시작하는데 필요한 모든 데이터의 레포를 가지고 있습니다.