프로세스
프로세스는 현재 컴퓨터에서 실행 중인 프로그램의 인스턴스입니다. 프로세스는 CPU가 프로그램을 활발하게 실행하는 것을 나타내며, 작은 백그라운드 작업부터 워드 프로세서나 웹 브라우저 같은 종합적인 애플리케이션까지 다양할 수 있습니다. 각 프로세스는 하나 이상의 스레드로 구성되며, 프로그램 코드에 포함된 명령과 현재 상태에서 필요한 리소스예: (입력, 출력, 중간 데이터)를 포함합니다.
많은 애플리케이션은 작업을 자식 프로세스로 나눕니다. 예를 들어 웹 브라우저는 사용자가 여는 각 탭과 설치하는 각 확장 프로그램 또는 플러그인마다 별도의 프로세스를 시작할 수 있습니다. 서로 다른 애플리케이션에서 실행되는 독립적인 프로세스는 충돌을 방지하고 데이터 보안을 유지하기 위해 일반적으로 서로 직접 통신할 수 없습니다. 그러나 소켓과 메시지 큐 같은 프로세스 간 통신(IPC) 기술을 사용하면 프로세스가 안전하고 통제된 방식으로 정보를 교환할 수 있습니다.
최신 운영 체제는 여러 프로세스를 동시에 실행할 수 있는 멀티태스킹을 지원합니다. 각 CPU 코어는 한 번에 하나의 프로세스를 실행할 수 있으므로 여러 프로세스를 병렬로 실행할 수 있습니다. 사용 가능한 코어보다 활성 프로세스가 항상 더 많기 때문에 운영 체제의 작업 스케줄러는 우선순위에 따라 프로세스 간에 CPU 시간을 나누고, 프로세스 사이를 빠르게 전환하여 거의 동시에 실행되는 것처럼 유지합니다. 대화형 프로세스는 우선순위가 가장 높은 경우가 많으므로 키 입력이나 마우스 클릭 같은 사용자 입력에는 리소스가 즉시 할당되고 백그라운드 프로세스는 차례를 기다립니다.
각 운영 체제는 사용자가 컴퓨터에서 실행 중인 프로세스를 확인하고 더 이상 응답하지 않는 프로세스를 직접 종료할 수 있도록 유틸리티도 제공합니다. Windows 사용자는 키보드 단축키( + + )를 사용하여 작업 관리자를 실행할 수 있습니다. macOS에서는 이에 해당하는 기능이 활성 상태 보기 앱입니다(응용 프로그램 / 유틸리티 폴더에 있음). Unix와 Linux에는 배포판에 따라 다양한 시스템 모니터 유틸리티가 포함되어 있으며, top 및 htop 유틸리티나 GNOME 시스템 모니터 애플리케이션을 예로 들 수 있습니다.
지식 테스트하기