1. 리눅스 환경에서의 프로세스

- ps 명령어: 현재 시스템에서 실행 중인 프로세스에 관한 정보를 출력하여 사용자에게 제공

- PID: 프로세스 고유식별자

- PPID: 부모 프로세스의 PID

 

2. C언어 프로세스 ID 구하기 함수

- getpid(): 실행중인 프로세스 ID를 구함

- getppid(): 부모 프로세스의 ID를 구함

 

3. 프로세스 생성(Process Creation)

- 부모 프로세스가 연산을 통해 자식 프로세스를 만들어냄

- 생성된 자식 프로세스 또한 새로운 자식 프로세스를 만들 수 있음

- 고유의 PID를 가지게 됨

- fork(): 새로운 프로세스를 생성하는 시스템콜

- exec(): 이진 파일을 메모리에 적재하고 그 프로그램을 실행하는 시스템콜

- wait(): 자식 프로세스가 종료할 때까지 기다리는 시스템콜

- exit(): 운영체제에게 자신의 삭제를 요청하고 종료하는 시스템콜

 

4. exec 계열 함수

- 현재 실행되고 있는 프로세스를 다른 프로세스로 대신하여 새로운 프로세스를 실행하는 함수

- 현재의 프로세스 이미지를 새로운 프로세스 이미지로 덮어씀

 

5. Copy On Write(COW)

- 자식 프로세스 생성시 발생하는 메모리 복사 비용을 줄이기 위한 기법

- 작성시 이전의 내용을 Copy한다는 뜻

- 프로세스가 copy on write 메모리 영역에 접근하게 되면 그 영역을 먼저 복사하고 작성하게 됨

 

6. 좀비 프로세스

- 자식 프로세스가 종료되었지만 부모 프로세스가 자식 프로세스의 종료 상태를 회수하지 않았을 경우에 자식 프로세스를 좀비 프로세스라고 함

 

7. 프로세스 스케쥴링 관련 함수

- nice(): 우선순위 변경하는 시스템콜

- getpriority(): 어떤 프로세스의 우선순위 값을 가져온다

- setpriority(): 어떤 프로세스의 우선순위 값을 변경한다

 

8. 프로세스간 커뮤니케이션(IPC, Inter-process Communication)

- Message Queue

- Pipe

- Shared memory

- Signal

- Socket

 

9. 셸 스크립트(Shell script)

- 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영체제를 위해 쓰인 스크립트

 

10. pthread(POSIX Thread)

- 유닉스 계열 POSIX 시스템에서 병렬적으로 작동하는 소프트웨어를 작성하기 위하여 제공하는 API

- libpthread 라이브러리에 포함되어 있으므로 컴파일 시 명시적으로 -pthread 옵션을 명시해야만 함

 

11. 메모리 매핑 함수

- mmap 함수를 사용하면 파일을 프로세스의 가상 메모리에 매핑할 수 있음

- 매핑할 메모리의 위치와 크기를 인자로 받음

 

12. inode

- 파일 시스템에 저장된 모든 파일과 디렉토리에 대한 메타데이터를 저장하는 데이터 구조

+ Recent posts