The state of a process such as program counter (PC), the value of the CPU registers, the process state, and memory-management information, etc. is called a context of a process.
프로그램 카운터(PC), CPU 레지스터 값, 프로세스 상태, 메모리 관리 정보 등과 같은 프로세스의 상태를 프로세스의 context라고 합니다.
When CPU switches to another process, the system must save the state of the old process in its PCB and restore the saved state of the new process scheduled to run.
CPU가 다른 프로세스로 전환되면, 시스템은 PCB에 이전 프로세스의 상태를 저장하고 실행하도록 예약된 새 프로세스의 저장된 상태를 복원해야 합니다.
Context-switch time is pure overhead (i.e., system does no useful work while switching) and its speed varies from machine to machine.
컨텍스트 전환 시간은 순수 오버헤드(즉, 시스템이 전환하는 동안 유용한 작업을 수행하지 않음)이며 속도는 기계마다 다릅니다.
+) https://www.tutorialspoint.com/operating_system/os_process_scheduling.htm
A context switch is the mechanism to store and restore the state or context of a CPU in Process Control block so that a process execution can be resumed from the same point at a later time.
컨텍스트 스위치는 프로세스 제어 블록에 CPU의 상태 또는 컨텍스트를 저장하고 복원하여 나중에 동일한 지점에서 프로세스 실행을 재개할 수 있도록 하는 메커니즘입니다.
Using this technique, a context switcher enables multiple processes to share a single CPU.
Context switching is an essential part of a multitasking operating system features.
이 기술을 사용하면 컨텍스트 전환기를 통해 여러 프로세스가 단일 CPU를 공유할 수 있습니다.
컨텍스트 전환은 멀티태스킹 운영 체제 기능의 필수적인 부분입니다.
When the scheduler switches the CPU from executing one process to execute another, the state from the current running process is stored into the process control block.
스케줄러가 CPU를 한 프로세스 실행에서 다른 프로세스 실행으로 전환하면 현재 실행 중인 프로세스의 상태가 프로세스 제어 블록에 저장됩니다.
After this, the state for the process to run next is loaded from its own PCB and used to set the PC, registers, etc. At that point, the second process can start executing.
그 후, 다음에 실행할 공정의 상태는 자체 PCB에서 로드되어 PC, 레지스터 등을 설정하는 데 사용됩니다. 이 때 두 번째 프로세스의 실행을 시작할 수 있습니다.
Context switches are computationally intensive since register and memory state must be saved and restored.
To avoid the amount of context switching time, some hardware systems employ two or more sets of processor registers.
When the process is switched, the following information is stored for later use.
컨텍스트 스위치는 레지스터와 메모리 상태를 저장하고 복원해야 하므로 계산 집약적입니다.
컨텍스트 전환 시간을 피하기 위해 일부 하드웨어 시스템은 두 개 이상의 프로세서 레지스터 집합을 사용합니다.
프로세스가 전환되면 나중에 사용하기 위해 다음 정보가 저장됩니다.
Process is identified and managed via a process identifier (pid).
프로세스는 프로세스 식별자(pid)를 통해 식별 및 관리됩니다.
Parent process creates children processes, which, in turn create other processes, forming a tree of processes.
상위 프로세스는 하위 프로세스를 생성하고, 하위 프로세스는 프로세스 트리를 형성합니다.
리소스 공유 옵션
상위 및 하위는 모든 리소스를 공유합니다.
자녀가 부모 자원의 부분 집합을 공유합니다.
부모 및 자식 간에 리소스를 공유하지 않습니다.
실행 옵션
상위와 하위가 동시에 실행됩니다.
부모는 하위 항목이 종료될 때까지 기다립니다.
주소공간 옵션
하위 항목이 상위 항목의 복제 항목입니다.
하위 항목에 프로그램을 로드했습니다.
fork(), execlp(), wait() 개념을 제대로 이해하기
UNIX examples
상위 프로세스는 fork 시스템 호출을 사용하여 하위 프로세스를 만듭니다.
하위 프로세스는 상위 프로세스의 주소 공간 사본으로 구성됩니다.
exec system call는 fork 다음에 프로세스의 메모리 공간을 새 프로그램으로 바꾸기 위해 사용됩니다.
Process executes last statement and asks the operating system to delete it using the exit(status) system call.
Parent (or user) may terminate execution of children processes (or processes) via kill system call or via kill command.
부모(또는 사용자)는 kill 시스템 호출 또는 kill 명령을 통해 자식 프로세스(또는 프로세스) 실행을 종료할 수 있습니다.
A zombie process or defunct process is a process that has completed execution but still has an entry in the process table.
zombie 프로세스 또는 defected 프로세스는 실행을 완료했지만 여전히 프로세스 테이블에 항목이 있는 프로세스입니다.
When a parent didn’t invoke wait and instead terminated, its children processes are orphan processes (i.e., still executing).
부모가 대기를 호출하지 않고 대신 종료되면 하위 프로세스는 orphan* 프로세스(예: 여전히 실행 중)가 됩니다.