
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86


목차
1. PCB구조분석
2. 프로세스의 생성 분석
3. 프로세스의 실행 분석
4. 프로세스의 소멸 분석
5. 리눅스 스케줄러 분석
2. 프로세스의 생성 분석
3. 프로세스의 실행 분석
4. 프로세스의 소멸 분석
5. 리눅스 스케줄러 분석
본문내용
struct task_struct
어떤 어셈블리 코드들은 이 구조체의 멤버들을 byte offset으로 찾아간다. 따라서 구조체 멤버들의 선언 순서를 바꾸면 이 코드들이 오동작하게 되므로, 건드려선 안된다.
프로세스의 STATE를 지정한다. 프로세스의 STATE는 다음 5가지 중 하나다.
TASK_RUNNING : 프로세스가 실행 중, 또는 실행을 기다리는 중이다.
TASK_INTERRUPTIBLE : 프로세스가 block되어있는 상태이다, 적절한 인터럽트나 시그널로 TASK_RUNNING 상태로 복귀한다.
TASK_UNINTERRUPTIBLE : 프로세스가 block되어 있는 상태이지만, 인터럽트나 시그널을 받지 않는다. 따라서 blocking된 이유가 없어질 때까지 block된 상태로 남아있는다.
TASK_STOPPED : SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU 시그널에 의해 프로세스의 실행이 중단된 상태이다.
TASK_ZOMBIE : 프로세스의 실행이 종료되었으나 부모 프로세스가 wait()를 호출하지 않아 자원이 해제되지 않은 상태이다. wait()호출 후 자원을 반납하고 소멸한다.프로세스의 상태들은 (root)/include/linux/sched.h에 정의되어 있다.
#define TASK_RUNNING 0
#define TASK_INTERRUPTIBLE 1
#define TASK_UNINTERRUPTIBLE 2
#define TASK_ZOMBIE 4
#define TASK_STOPPED 8
프로세스의 각종 상태를 flag로 세팅하며 flag는 PF_접두어를 갖는다.
flag는 (root)/include/linux/sched.h에 정의되어 있다.
#define PF_ALIGNWARN 0x00000001 : alignment 경고 시그널
#define PF_STARTING 0x00000002 : 프로세스 만들어짐
#define PF_EXITING 0x00000004 : 프로세스 죽어감
#define PF_FORKNOEXEC 0x00000040 : fork()하나 exec()함수는 호출안함
#define PF_SUPERPRIV 0x00000100 : root권한으로 프로세스 사용
#define PF_DUMPCORE 0x00000200 : core dump
#define PF_SIGNALED 0x00000400 : 시그널을 받고 죽음
#define PF_MEMALLOC 0x00000800 : 메모리 할당중
어떤 어셈블리 코드들은 이 구조체의 멤버들을 byte offset으로 찾아간다. 따라서 구조체 멤버들의 선언 순서를 바꾸면 이 코드들이 오동작하게 되므로, 건드려선 안된다.
프로세스의 STATE를 지정한다. 프로세스의 STATE는 다음 5가지 중 하나다.
TASK_RUNNING : 프로세스가 실행 중, 또는 실행을 기다리는 중이다.
TASK_INTERRUPTIBLE : 프로세스가 block되어있는 상태이다, 적절한 인터럽트나 시그널로 TASK_RUNNING 상태로 복귀한다.
TASK_UNINTERRUPTIBLE : 프로세스가 block되어 있는 상태이지만, 인터럽트나 시그널을 받지 않는다. 따라서 blocking된 이유가 없어질 때까지 block된 상태로 남아있는다.
TASK_STOPPED : SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU 시그널에 의해 프로세스의 실행이 중단된 상태이다.
TASK_ZOMBIE : 프로세스의 실행이 종료되었으나 부모 프로세스가 wait()를 호출하지 않아 자원이 해제되지 않은 상태이다. wait()호출 후 자원을 반납하고 소멸한다.프로세스의 상태들은 (root)/include/linux/sched.h에 정의되어 있다.
#define TASK_RUNNING 0
#define TASK_INTERRUPTIBLE 1
#define TASK_UNINTERRUPTIBLE 2
#define TASK_ZOMBIE 4
#define TASK_STOPPED 8
프로세스의 각종 상태를 flag로 세팅하며 flag는 PF_접두어를 갖는다.
flag는 (root)/include/linux/sched.h에 정의되어 있다.
#define PF_ALIGNWARN 0x00000001 : alignment 경고 시그널
#define PF_STARTING 0x00000002 : 프로세스 만들어짐
#define PF_EXITING 0x00000004 : 프로세스 죽어감
#define PF_FORKNOEXEC 0x00000040 : fork()하나 exec()함수는 호출안함
#define PF_SUPERPRIV 0x00000100 : root권한으로 프로세스 사용
#define PF_DUMPCORE 0x00000200 : core dump
#define PF_SIGNALED 0x00000400 : 시그널을 받고 죽음
#define PF_MEMALLOC 0x00000800 : 메모리 할당중
추천자료
컴퓨터의 운영체제에 대해서
교육과정의 운영체제
운영체제의 개념과 그 이해
[공학/컴퓨터/통신] 운영체제의 종류와 특징
[공학/컴퓨터/통신] 운영체제란?
[운영체제]유닉스 명령어 사용
[운영체제] 운영체제론 용어정리
운영체제 용어정리
[운영체제] [운영체제] 핀토스(pintos)프로젝트 설치 및 소스코드 분석 보고서
스마트폰 운영체제의 종류
SCSI(스카시)와 BUS, SCSI(스카시)의 개념, SCSI(스카시)의 등장 배경, SCSI(스카시)의 장점,...
지방정부의 BSC(Balanced Score Card) 운영체제 및 BSC의 실무적 체계와 운영상의 이슈
소개글