Windows 시스템 프로세스 종료 방법에 대한 자세한 설명
프로세스는 컴퓨터에서 프로그램을 실행하는 활동입니다. 프로그램을 실행하면 프로세스가 시작됩니다. 분명히 프로그램은 죽었고(정적) 프로세스는 살아있습니다(동적). 프로세스는 시스템 프로세스와 사용자 프로세스로 나눌 수 있습니다. 운영 체제의 다양한 기능을 완료하는 데 사용되는 모든 프로세스는 시스템 프로세스이며 실행 상태의 운영 체제 자체이며 사용자 프로세스는 모두 사용자가 시작한 프로세스입니다. 프로세스는 운영체제가 자원을 할당하는 단위이다. "작업 관리자"를 통해 종료할 수 없는 프로세스가 있습니다. 트로이 목마가 발생하면 어떻게 해야 합니까? 아래에 소개된 기술을 참조하십시오.
Windows 운영체제에서는 시스템, SMSS.EXE, CSRSS.EXE만 종료할 수 없습니다. 처음 두 개는 순수 커널 상태이고 마지막 하나는 ntsd 자체에 필요한 Win32 하위 시스템입니다. ntsd는 2000년부터 시스템과 함께 제공되는 사용자 모드 디버깅 도구였습니다. 디버거에 연결된 프로세스는 디버거와 함께 종료되므로 명령줄에서 프로세스를 종료하는 데 사용할 수 있습니다. ntsd를 사용하면 대부분의 프로세스가 종료될 수 있는 디버그 권한이 자동으로 획득됩니다. ntsd는 순수 명령줄에서 제어할 수 없는 새 디버깅 창을 엽니다. 그러나 이것이 단순한 명령인 경우(exit(q)), -c 매개변수를 사용하여 명령줄에서 전달하면 됩니다. NtsdNtsd는 규칙에 따라 소프트웨어 개발자에게도 제공됩니다. 시스템 개발자만 이 명령을 사용합니다. 자세한 내용은 NTSD에 첨부된 도움말 파일을 참조하세요. 사용법: cmd.exe 창을 열고 다음을 입력하십시오:
ntsd -c q -p PID
종료하려는 프로세스의 ID로 마지막 PID를 변경하십시오. 프로세스의 ID는 작업 관리자->프로세스 탭->보기->열 선택->"PID(프로세스 식별자)"를 확인하면 알 수 있습니다.
XP에는 모든 프로세스와 해당 정보를 나열할 수 있는 tasklist와 tskill.tasklist라는 두 가지 유용한 도구가 있습니다. tskill은 프로세스를 종료할 수 있으며 구문은 매우 간단합니다. tskill 프로그램 이름입니다. 1 Linux 프로세스의 휴면 및 깨우기
Linux에서는 CPU 시간만 기다리는 프로세스를 준비 프로세스라고 하며 실행 대기열에 배치되며 준비 프로세스의 상태 플래그 비트는 TASK_RUNNING입니다. 실행 중인 프로세스의 시간 조각이 모두 소모되면 Linux 커널 스케줄러는 프로세스의 CPU 제어 권한을 박탈하고 실행 대기열에서 실행할 적절한 프로세스를 선택합니다.
물론 프로세스는 CPU 제어를 적극적으로 해제할 수도 있습니다. Schedule() 함수는 다른 프로세스가 CPU를 점유하도록 예약하기 위해 프로세스에서 적극적으로 호출할 수 있는 예약 함수입니다. CPU를 적극적으로 포기한 프로세스가 CPU를 점유하도록 다시 예약되면 마지막 위치부터 실행이 시작됩니다. 실행이 중지되었습니다. 즉, Schedule()을 호출하는 다음 코드 줄부터 실행이 시작됩니다.
때때로 프로세스는 장치 초기화, I/O 작업 완료 또는 타이머 만료와 같은 특정 이벤트가 발생할 때까지 기다려야 합니다. 이 경우 프로세스는 실행 큐에서 제거되고 대기 큐에 추가되어야 합니다. 이때 프로세스는 슬립 상태에 진입합니다.