Linux/Linux_programing

System - 01. Process 개념

sosal 2009. 10. 7. 16:34
반응형
/*
 http://sosal.tistory.com/
 * made by so_Sal
 */



프로세스 :: 컴퓨터 내에서 실행중인 프로그램을 일컫는 용어.

프로세스란건 아주 간단합니다.
Ctrl + Alt + delete로 작업관리자를 켜봅시다.
프로세스 텝을 가보시면 프로세스들의 목록을 쭉~ 보실 수 있습니다.


putty를 4개나 켜놨더니 프로세스에 4개가 올라와있네요.
항상 켜져있는 메신저 na**까지 보입니다.
프로세스, 쉽게 와닿나요?

리눅스는 위 그림의 윈도우와 같은 다중 태스킹 운영체제입니다.
한 시점에서 여러 개의 프로그램들이 실행되는데,
각 실행중인 프로그램은 하나의 프로세스가 되고,
물론 하나의 프로그램이 여러개의 프로세스가 될 수 있습니다.

따라서 여러 사용자들이 하나의 프로그램을 실행시 킬 수 있고,
또한 여러 개의 프로그램을 실행 할 수 있고,
한 사용자가 같은 프로그램의 여러 인스턴스들을 실행할 수 있습니다.
시스템 자체도 시스템 자원을 관리하고 사용자 접근을 제어하기 위해
여러 개의 프로그램들을 실행 합니다.

프로세스 :: 시스템 자원들을 포함하는 하나의 주소공간

좀더 어렵게 말했어요. 프로세스는 프로그램 코드, 자료, 변수들, 열린 파일들,
그리고 환경으로 구성됩니다.
하드 메모리에 저장되어 있는 프로그램을 시스템 메모리에 끌어와
하드메모리에 존재하는 하나의 복사본만 존재할 수 있도록
프로그램 코드와 시스템 라이브러리들을 여러 프로세스들이 공유하게 합니다.

sosal@ ~]$ pstree
pstree를 입력해보겠습니다.

엄청나게 뜨네요.
맨 위로 올려보니
init이란게 있습니다.

:: init ::
커널의 부팅에 필요한 초기화(cpu, 메모리 등)가 끝나면
init 프로세스가 만들어지고,
........ 어쩌고 저쩌고~

init은 프로세스들의 어머니격입니다. 아주 많은 프로세스들이 init 아래에 딸려있네요.
이 구조를 부모와 자식 구조라고 합니다. init을 부모 프로세스라고 한다면, 그 밑에 달려있는 여러 프로세스들은 자식 프로세스가 되는것이죠.




ps 명령어를 통해서 다양한 프로세스들을 볼 수 있습니다.
옵션은 'man ps'를 쉘에 치시면 메뉴얼을 통하여 다양한 옵션들을 볼 수 있습니다.
프로그래밍을 위한 글이므로 명령어 등에 대해서는 생략하겠습니다.

System 게시물들은
begining Linux programing.
유닉스 프로그래밍
Linux 언쉬리드' 를 참고하였습니다.