2012-10-01 5 views
1

운영체제 개념에 익숙하지 않습니다. 나는 PCB가 레지스터에 관한 정보를 담고 있다는 것을 읽었다. 그것은 그것이 "특정 프로세스에 속한 레지스터들"또는 "특정 레지스터에서의 모든 레지스터들의 내용"을 포함한다는 것을 의미 하는가? 두 번째 경우에는 os가 어떤 레지스터가 어떤 프로세스에 속하는지 어떻게 추적하는지 알려주시겠습니까?PCB에 등록 정보

+0

그냥 PCB 란 무엇입니까? 인쇄 회로 기판? 프로세스 제어 블록? 아, 아마 후자. 예, OS는 특별히 지정된 데이터 구조에서 프로세스/스레드 상태 (프로세스/스레드가 실행되지 않을 때 레지스터의 상태 포함)를 유지합니다. 이것은 좋은 질문처럼 보이지 않습니다. –

+0

@AlexeyFrunze 나는 프로세스 제어 블록을 의미합니다 ... 모든 레지스터가 단일 프로세스 또는 소수만 할당되는 경우 단일 시점을 알고 싶었습니까? –

+1

일부 시스템 레지스터는 스레드/프로세스간에 전환 할 때 수정할 필요가없는 지속 값을 가질 수 있습니다. 따라서 모든 CPU 레지스터가 특정 스레드/프로세스에 독점적으로 속해있는 것은 아니며 일부는 모든 스레드에서 공유됩니다. –

답변

4

레지스터는 아키텍처에 특정

덕분에,이 x86 아키텍처

http://en.wikipedia.org/wiki/X86_architecture#x86_registers의 레지스터에 대한 설명입니다.

CPU 아키텍처 사양은 각 레지스터와 그 용도를 정의합니다. 이러한 지침은 OS 개발자가 OS를 설계하고 개발하는 과정에서 따라야하는 지침입니다. 프로세스 측면에서 중요한 레지스터는 SP (스택 포인터), BP (기본 포인터) 및 IP (명령 포인터)입니다. 제어 레지스터 (cr0 ~ cr8)는 계산을 위해 프로세스에서 사용됩니다. 인터럽트 설명자 테이블을 가리 키기 위해 OS가 사용하는 IDTR과 같은 운영 체제에서 사용되는 레지스터가 있습니다. IDT는 인터럽트가 발생할 때 올바른 함수를 호출하는 데 사용됩니다.

PCB의 레지스터에 대해 말하면 데이터 구조입니다. 프로세스가 실행 중이고 타임 슬라이스가 만료되면 프로세스 특정 레지스터의 현재 값이 PCB에 저장되고 프로세스가 스왑 아웃됩니다. 프로세스가 실행되도록 스케줄되면 레지스터 값이 PCB에서 읽혀 CPU 레지스터에 기록됩니다. 이것은 PCB의 레지스터의 주요 목적이다.