따..딱히 공부하려고 포스팅하는 건 아니니까..!
[리눅스]프로세스(Process) 본문
프로세스(Process)란?
간단히 말하자면 실행중인 프로그램을 말한다.
그러나 한 프로그램을 여러 번 실행하여 여러 개의 프로세스를 만들 수 있으므로 프로그램 자체가 프로세스인 것은 아니다.
(※ 커널에는 프로세스가 하나밖에 없다 = 커널에서는 모든 자료구조와 메모리를 공유할 수 있다)
<프로세스의 구조>
텍스트 : 프로세스가 실행하는 실행코드를 저장하는 영역
데이터 : 전역변수, 정적변수를 위한 메모리 영역
힙 : 동적 메모리 할당을 위한 영역
스택 : 함수 호출을 구현하기 위한 영역(함수 호출 시 해당 함수의 지역변수, 매개변수, 반환주소, 반환값 등을 포함하는 활성 레코드가 저장)
U-영역 : 열린 파일 디스크립터, 현재 작업 디렉터리 등과 같은 프로세스 정보를 저장하는 영역
프로세스를 유지하기 위해서는 커널 내의 프로세스에 대한 정보가 필요하고,
프로그램을 실행하기 위해서는 텍스트(코드), 데이터, 힙, 스택 등의 영역(Segment)들을 위한 메모리 할당이 필요하다.
'시스템|서버|네트워크' 카테고리의 다른 글
[리눅스]프로세스 제어 (프로세스 생성) (0) | 2015.04.30 |
---|---|
vagrant와 윈도우즈 연결하기 (0) | 2015.01.14 |
파일 시스템(File System) (1) | 2014.11.26 |
C 표준 파일 입출력 (0) | 2014.11.15 |
시스템 호출(System Call) (0) | 2014.11.13 |
Comments