저자 : 창병모
펴낸 곳: (주)생능출판사
초판 : 2014. 7. 7
1판 5쇄 : 2019. 8. 30
Chapter 02. 리눅스 사용
2.5 후면 처리 및 프로세스
- 후면 처리 : 명령어를 후면에서 처리하여 전면에서는 다른 작업을 할 수 있음
- 시간이 오래 걸리는 작업이나 동시에 여러 작업을 수행하고 할 때 이용
$ 명령어 &
- 후면 실행 중인 작업 리스트 확인 : jobs
$ jobs
- 후면 실행 중인 작업 선택하여 전면 실행
$ fg %작업번호
- 후면 프로세스의 출력이 전면 프로세스와의 충돌을 방지하기 위해 출력 재지정이나 파이프 이용
- 후면 프로세스가 입력 받기 위해서는 입력 재지정 이용
- [표 2.6] 프로세스 관련 명령어
명령어 | 의미 |
명령어 & | 후면에서 명령어 실행 |
^C (ctrl + c) | 전면 작업 죽이기 |
^Z (ctrl + z) | 전면 작업 중지 |
bg | 중지된 작업 후면 실행 |
jobs | 현재 작업 리스트 |
fg %1 | 1번 작업을 전면 실행 |
kill %1 | 1번 작업 종료 |
ps | 현재 프로세스 리스트 |
kill 8328 | 8328번 프로세스 종료 |
Chapter 08. 프로세스
8.5 프로세스 이미지
- 프로세스 이미지 : 프로그램을 실행하기 위해서는 텍스트(코드), 데이터, 힙, 스택 등의 영역(segment)들을 위한 메모리를 할당해야 한다. 이러한 메모리 배치를 프로세스 이미지라고 한다.
- 텍스트(text) : 프로세스가 실행하는 실행코드를 저장하는 영역
- 데이터(data) : 전역 변수(global variable) 및 정적 변수(static variable)를 위한 메모리 영역
1) 프로그램에서 초기화된 데이터를 저장하는 영역
2) 초기화 되지 않는 데이터를 저장하는 영역(보통 bss 영역이라고 함)
- 힙(heap) : 동적 메모리 할당을 위한 영역
- 스택(stack area) : 함수 호출을 구현하기 위한 실행시간 스택(runtime stack)을 위한 영역
: 함수가 호출될 때마다 해당 함수의 지역 변수, 매개변수, 반환주소, 반환값 등을 포함하는 활성 레코드(activation record)가 저장
- U-영역(user-area) : 열린 파일 디스크립터, 현재 작업 디렉터리 등과 같은 프로세스의 정보를 저장하는 영역
Chapter 09. 프로세스 제어
9.4 프로세스 그룹
- 프로세스 그룹 : 여러 프로세스들의 집합을 의미
- 리눅스 시스템 내에서 각 프로세스는 하나의 프로세스 그룹에 속한다.
- 각 프로세스는 자신의 프로세스 ID와 자신이 속한 프로세스 그룹 ID를 갖는다.
- 보통 부모가 생성하는 자식 프로세스는 부모와 하나의 프로세스 그룹을 형성
- 프로세스 그룹 리더 : 그룹마다 하나씩 있으며 리더는 PID와 GID가 같다.
#include <unistd.h>
pid_t getprgp(void); //호출한 프로세스의 프로세스 그룹 ID 반환
- 사용처 : 그룹 내의 모든 프로세스들을 대상으로 액션을 취할 수 있다.
1) 시그널(signal) 전송
$ kill -9 pid // 해당 pid에 시그널을 보내 종료
$ kill -9 0 // 현재 속한 프로세스 그룹 내의 모든 프로세스들에 시그널을 보내 종료
$ kill -9 -pid // pid음수표시는 프로세스 그룹을 의미, 그룹 내 모든 프로세스들에 시그널을 보내 종료
'책을 읽.쓰.' 카테고리의 다른 글
<전문가를 위한 오라클 데이터베이스 아키텍처> (0) | 2020.02.26 |
---|---|
<파이썬으로 웹 크롤러 만들기> (0) | 2020.02.20 |
<재무제표 모르면 주식투자 절대로 하지마라> (8) | 2020.02.11 |
<Operating System Concepts> (0) | 2020.02.07 |
<컴퓨터 시스템> UPDATE.20200225 (0) | 2020.02.07 |