반응형
SMALL

=== PCB ===
- PCB (Process Control Block)은 운영 체제에서 프로세스에 대한 메타데이터를 저장한 '데이터' 를 말한다.
- 프로세스 제어 블록이라고도 한다.
- 프로세스가 생성될지 운영체제에 의해 생성된다.
- 프로그램이 실행될때의 프로세스 주소값들이 스택 힙 등의 구조를 기반으로 메모리가 할당된다.
그리고 이 프로세스의 '메타데이터' 들이 PCB에 저장되어 관리된다. - 프로세스의 중요한 정보를 포함하기 때문에 일반사용자들이 접근할수 없도록 커널 스택의 가장 앞부분에서 관리된다.
=== 여기서 메타데이터란? ===
- 데이터에 관한 구조화된 데이터이자 데이터를 설명하는 작은 데이터 이다.
- 대량의 정보 가운데 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 규칙에따라 콘텐츠에 부여된다.
=== PCB의 구조 ===
- 프로세스 스케줄링 상태
- 준비 , 일시중단 등 프로세스가 CPU에 대한 소유권을 얻은 이후의 상태
- 프로세스 ID
- 해당 프로세스의 자식 프로세스 ID
- 프로세스 권한
- 컴퓨터 자원 또는 I/O 디바이스에 대한 권한 정보
- 프로그램 카운터
- 실행해야할 다음 명령어의 주소에 대한 포인터
- CPU 레지스터
- 프로세스를 실행하기 위해 저장해야 할 레지스터에 대한 정보
- CPU 스케줄링 정보
- CPU 스케줄러에 의해 중단된 시간등에 대한 정보
- 계정 정보
- 프로세스 실행에 사용된 CPU 사용량 실행한 유저의 정보
- I/O 상태 정보
- 프로세스에 할당된 I/O 디바이스 목록
=== 컨텍스트 스위칭 ===
- 컨텍스트 스위칭 (context switching) 은 PCB를 교환하는 과정을 말한다.
- 한 프로세스에 할당된 시간이 끝나거나 인터럽트에 의해 발생한다.
- 컴퓨터는 실제로 실행되고 있는 프로세스는 단 한개이다.(이는 스위칭이 빠르게 진행됨으로 인해 동시에 구동되는 것 처럼 보인다.)
- 이는 현대 컴퓨터의 멀티코어 CPU 를 기준으로는 틀린 설명이지만 일단은 싱글코어 기준으로 보았을때의 기준으로 이해하면 된다
- 예를 들자면 A라는 프로그램과 B 라는 프로그램의 컨텍스트 스위칭이 일어난다면 중간 중간 유휴시간 (idle time) 이 발생한다.
=== 비용 : 캐시미스 ===
- 컨텍스트 스위칭이 일어날떄 프로세스가 가지고 있는 메모리주소가 그대로 있으면 주소변환이 생김으로 캐시 클리어 과정이 생기고 이로 인해 발생할수 있다.
== 스레드에서의 컨텍스트 스위칭 ===
- 스레드에서도 컨텍스트 스위칭은 일어날수 있다.
- 스레드는 스택 영역을 제외한 모든 메모리를 공유하기 때문에 컨텍스트 스위칭의 경우 비용이 더 적고 시간도 더 적게 걸린다 (스레드의 특성을 생각해보면 당연한 부분이다.)
반응형
LIST
'CS > CS 정리' 카테고리의 다른 글
| [CS] 멀티 프로세싱 & 멀티 스레딩 간단 정리 . 2 (1) | 2023.04.15 |
|---|---|
| [CS] 멀티 프로세싱 간단 정리 . 1 (0) | 2023.04.09 |
| [CS] 프로세스 메모리 구조 간단 정리 (0) | 2023.04.06 |
| [CS] 프로세스와 스레드 with 소스코드 파일 처리 과정 (간단 정리) (0) | 2023.04.04 |
| [CS] 프로그램 패러다임 (객체지향의 설계원칙 : SOLID) (0) | 2023.02.13 |