프로세스
-실행중인 프로그램
Ps -ef를 통해 확인했을 때
사용자가 볼 수 있는 공간에서 실행되는 프로세스
-포워드 프로세스
사용자가 보지못하는 공간에서 실행되는 프로세스
-백그라운드 프로세스
사용자와 소통하지는 않지만 묵묵히 자기일을하는 백그라운드 프로세스
-데몬 프로세스
프로세스가 생성된다.
-커널영역에는 PCB
-사용자영역에는 코드,데이터,힙,스택
프로세스 제어 블록
-프로세스는 CPU자원을 필요로한다.
-그렇지만 모든 프로세스에게 CPU가 할당되지않는다.
-순사대로 돌아가며 할당받는다.
-자기차례가 되면 타이머 인터럽트를 통해 다음차례를 기다린다.
-이 때, 다음차례에서 원활히 수행되기 위해 프로세스 관련 정보를 저장하는 자료구조를 프로세스제어블록(PCB)라고 한다.
-PCB는 커널영역에서 생성된다.
-프로세스 생성 시 만들어지고, 끝나면 폐기된다.
-PID, 레지스터값, 프로세스상태, CPU스케줄링정보, 메모리관리정보, ㅅ사용한파일과 입출력장치 정보 ..
-이것들을 문맥이라고 하고, CPU를 할당받는 프로세스가 교환되어 PCB에 저장되고 다음 프로세스의 PCB를 사용해 CPU할당을 받는 과정을 문맥교환이라고 함
프로세스 메모리 영역
-프로세스가 생성되면 커널에는 PCB, 사용자영역에는 코드,데이터,힙,스택 영역으로 나뉘어 저장된다.
-코드영역은 기계어롤 이루어진 명령어가 저장된다.
-데이터영역은 잠깐썼다없앨데이터가 아닌 프로그램이 실행되는 동안 유지할 데이터가 존재 ( ex 전역변수 )
위 두 영역(코드, 데이터)는 크기가 변하지않는다. - 정적할당영역
반면 나머지 영역(힙, 스택)은 그 크기가 변한다 - 동적할당영역
-힙영역은 프로그래머가 직접할당할 수 있는 공간이다. 힙 영역에 메모리를 할당하여 사용한다면 반드시 반환해야하며, 이것이 안될 시 메모리누수가 발생된다.
-스택영역은 데이터를 일시적으로 저장하는 공간. 데이터영역과 다르게 일시적인 저장공간이다. (Ex 지역변수)
-그래서 힙영역은 메모리의 낮은 주소에서 높은주소로 할당
스택영역은 메모리의 높은 주소에서 낮은 주소로 할당된다
=> 메모리가 서로 겹칠일이 없게
'재학습 > OS' 카테고리의 다른 글
[운영체제] 스레드, 멀티프로세스 vs 멀티스레드 (0) | 2022.12.09 |
---|---|
[운영체제] 프로세스 상태와 계층구조 (0) | 2022.12.07 |
[운영체제] 운영체제의 큰그림 (0) | 2022.11.27 |
[운영체제] 란? (2) | 2022.11.23 |