2012-02-29 7 views
5

process control block (PCB) 및 스레드 제어 블록 (TCB)은 모두 리눅스 커널에서 CPU 위임 시간에 사용됩니다. 이 둘의 차이점은 무엇입니까?차이점은 무엇입니까? TCB (스레드 제어 블록) 및 PCB (프로세스)

일반적으로 프로세스 제어 블록 (PCB)에서 어떤 정보가 유지 관리됩니까?

+1

이 답변은 OS 버전에 따라 크게 달라집니다. 주의 사항을 편집하고 좀 더 구체적으로 리눅스 답변을 요청하십시오. – Gray

+0

위와 같이 변경했습니다. 감사! –

+0

실제 정의를 살펴 보시지 않겠습니까? 그것은 모두 오픈 소스이며, 많은 사람들이 리눅스 커널을 해킹하기 때문에 들어가서 알아 내기가 쉽습니다. – Novelocrat

답변

8

PCB에 포함될 수있는 주목할만한 필드에는 프로세스 ID, 프로세스 그룹 ID, 상위 프로세스 및 하위 프로세스, 힙 포인터, 프로그램 카운터, 스케줄링 상태 (실행 중, 준비 됨, 차단됨), 사용 권한 (시스템 리소스 프로세스가 액세스 할 수 있음), 범용 레지스터의 내용 및 열린 파일.

TCB에는 스레드 ID 및 해당 스레드를 포함하는 프로세스에 대한 포인터와 같은 몇 가지 특정 값 이외에 PCB (레지스터 값, 스택 포인터, 프로그램 카운터, 스케줄링 상태)와 동일한 필드가 몇 개 있습니다 . 스레드 간에는 보호가 없다는 점에 유의하십시오.

리눅스에는 스레드 또는 프로세스에 대한 정보를 저장하는 struct task_struct가 있습니다. sched.h에 선언되어 있습니다.

2

PCB는 커널 프로세스에 대한 정보를 저장합니다. Adressspaces 등과 같이 ...

프로세스는 다른 커널 스레드를 포함 할 수 있습니다. 둘 다 디스패처 및 스케줄러에서 관리합니다.

TCB는 스레드 특정 정보를 포함합니다.

1

'프로세스 제어 블록 (PCB)과 스레드 제어 블록 (TCB) 모두 커널에서 위임 된 CPU 시간을 가지기 위해 사용됩니다. PCB에는 하나 이상의 TCB가 연결됩니다. TCB는 실행 컨텍스트 (예 : 스택 포인터), PCB를 환경 컨텍스트 (예 : 메모리 세그먼트 및 사용 권한)로 설명합니다.

관련 문제