프로세스 구조.
- text(CODE): 코드
- data : 변수/초기화된 데이터
- stack : 임시 데이터(함수 호출, 로컬 변수 등)
- heap : 코드에서 동적으로 만들어지는 데이터
PC와 SP.
PC와 SP는 컴퓨터 아키텍처에서 중요한 개념입니다:
PC (Program Counter):
PC는 명령어의 실행 위치를 가리키는 레지스터입니다. CPU가 프로그램을 실행할 때, 다음으로 실행할 명령어의 주소를 PC에 저장하고, 명령어를 실행한 후 PC를 증가시켜 다음 명령어로 이동합니다. PC는 명령어의 흐름을 제어하며, 프로그램의 실행 순서를 결정합니다.
SP (Stack Pointer):
SP는 스택의 최상단을 가리키는 포인터입니다. 스택은 메모리의 일부분으로, 데이터를 임시로 저장하는 용도로 사용됩니다. SP는 스택에 데이터를 저장하거나 가져올 때 사용되며, 데이터의 삽입 및 제거 작업을 관리합니다. 스택은 후입선출(LIFO) 구조로 동작하며, 함수 호출 및 반환, 지역 변수의 저장 등에 사용됩니다. SP는 스택의 크기와 상태를 추적하는 데 필요한 정보를 저장합니다.
PC는 다음으로 실행할 명령어를 지시하고, SP는 스택의 위치와 상태를 추적하여 데이터의 저장과 관리를 수행합니다.
문맥 전환(Context Switch).
실행 중인 프로세스의 상태를 보관하고 새로운 프로세스의 상태를 CPU에 적재하는 과정.
문맥 전환(Context Switch)은 CPU가 현재 실행 중인 프로세스 또는 스레드에서 다른 프로세스 또는 스레드로 실행을 전환하는 과정을 말합니다. 이 과정은 운영체제가 CPU 시간을 다른 작업에 할당하기 위해 필요한 작업입니다.
문맥 전환은 다음과 같은 상황에서 발생할 수 있습니다:
프로세스나 스레드가 I/O 작업을 요청한 경우: I/O 작업은 일반적으로 시간이 오래 걸리므로, CPU는 다른 프로세스나 스레드에게 할당되어 작업을 처리할 수 있도록 해야 합니다. 따라서 현재 실행 중인 프로세스나 스레드는 중지되고, I/O 작업이 완료되면 해당 프로세스나 스레드로 다시 전환됩니다.
우선순위가 더 높은 프로세스나 스레드가 준비 상태로 전환된 경우: 운영체제는 우선순위가 높은 작업을 먼저 처리하기 위해 문맥 전환을 수행합니다. 현재 실행 중인 작업은 중지되고, 우선순위가 높은 작업이 실행되도록 CPU가 할당됩니다.
타이머 인터럽트가 발생한 경우: 운영체제는 프로세스 또는 스레드에 할당된 시간이 만료되었을 때, 타이머 인터럽트를 발생시켜 문맥 전환을 수행합니다. 이를 통해 CPU 시간이 공정하게 분배되고, 각 작업이 일정 시간 동안 실행될 수 있도록 합니다.
문맥 전환은 추가적인 비용이 발생할 수 있기 때문에, 효율적인 문맥 전환 기법을 사용하여 오버헤드를 최소화하는 것이 중요합니다. 일반적으로 운영체제는 문맥 전환을 위한 저장 및 복원 작업을 수행하며, 프로세스 또는 스레드의 상태 정보를 저장하고 다시 복원함으로써 문맥 전환을 처리합니다.
'COMPUTER SCIENCE' 카테고리의 다른 글
스레드의 개념과 장단점, 데드락, 스타베이션 이해하기 (0) | 2023.06.09 |
---|---|
멀티 프로세서의 프로세스 커뮤니케이션(IPC) 이해 (0) | 2023.06.08 |
CPU 스케쥴링 및 스케쥴링 알고리즘 (0) | 2023.06.07 |
프로세스 개념과 프로세스 스케쥴링 (0) | 2023.06.07 |
운영체제 개념과 역할의 이해 (0) | 2023.06.07 |