Make Utility 목적
- 대규모 소프트웨어 생성을 위한 도구
- 소스의 consistency 유지
형식
- 의존성(dependency) 부분 : target이름과 target을 만들 때 필요한 파일을 명세
- 명령(command) 부분 : 반드시 tab으로 시작.
target1 : 의존성 부분
[탭키]명령어 부분
의존성 부분 all : shell에서 make만 입력하면 all부분을 실행한다.
매크로 변수 : $(매크로) 방식으로 사용한다.
프로세스
ps(shell 명령) : 프로세스 상태를 확인한다.
옵션
-a : session leader(터미널) 정보 제외
-f : full 정보를 보여준다.
-l : long list 정보를 보여준다.
상태
- O : 프로세스 수행 중.
- T : suspended. 신호에 의한 프로세스 정지상태.
- S : Sleeping, R : Runnable, Z : Zombie(부모가 기다리지 않는 상태)
※ nice : 프로세스 우선순위를 양보를 잘 하게 바꿔준다.
프로세스 관리에 사용되는 자료구조
- 사용자 구조 : 프로세스 수행 중에 필요한 정보 저장
- 프로세스 테이블
- 커널 스택 : 사용자 프로그램에서 기생.
- 프로세스 영역 : text, data, user stack, heap...
사용자 구조
- user.h에 정의
- 에러코드, 권한, proc 포인터, inode들(현재, 루트, 부모 디렉터리)
- file descriptor, handler, 수행된 시간(사용자 및 커널 모드)
- umask, kernel stack,
- text, data, stack segment 크기
- 시스템 호출 인자 = 시스템 콜에 필요한 인자
프로세스 테이블
- proc.h에 정의
- 프로세스 상태, 플래그, 우선순위, 대기 시간, 처리되지 않은(pending) 시그널
- 최상위 레벨 프로세스, 부모 프로세스
- swap 가능한 부분 주소와 크기
- 사용자 구조에 대한 포인터
- 등등
사용자 스택
- 지역변수(local variable), 스택 프레임 포인터, 리턴 주소, 호출에 사용한 인자(arguments)들.
- 참고주소 : http://churack.tistory.com/tag/Stack%20Frame
프로그램의 메모리 상 구조
- Text 영역(명령어 코드), 데이터 영역(초기값 가짐), 비초기화 데이터 영역(bss), 힙, 스택
'컴퓨터 공부 > Advanced UNIX System Programming' 카테고리의 다른 글
[5월 1일 1교시] 메모리 관리 (0) | 2009.05.01 |
---|---|
[4월 30일 3교시] 프로세스2 (0) | 2009.04.30 |
[4월 30일 1교시] 프로그램 개발 환경1 (0) | 2009.04.30 |
[4월 29일 3교시] 라이브러리 파일 관련 함수 3 (0) | 2009.04.29 |
[4월 29일 2교시] 라이브러리 파일 관련 함수 2 (0) | 2009.04.29 |