동시 프로그래밍의 기본

프로세스 '의 정의

  1. 좁게 정의

    프로세스는 실행되는 프로그램 (실행되는 컴퓨터 프로그램의 인스턴스)의 인스턴스이다.

  2. 광범위하게 정의

    프로세스가 실행되는 활성 프로그램은 독립적 인 데이터 세트의 특정 기능을 가지고 있습니다. 동적으로 실행되는 운영 시스템의 기본 단위이다. 기존의 운영 시스템에서, 기본 할당 단위 인 프로세스 실행의 기본 단위이다.

 

프로세스의 둘째, 개념

  1. 프로세스 엔티티입니다. 각 프로세스는 텍스트 영역 (문자 영역), 데이터 영역 (데이터 영역)과 스택 (더미 영역)을 포함한 정상적인 환경 하에서 자신의 주소 공간을 갖는다. 코드는 프로세서에 저장된 텍스트 영역에 의해 실행되고, 동적으로 실행 프로세스 변수들 중 사용 메모리 영역의 데이터를 저장 할당, 스택 영역 프로 시저 호출 명령 활동 및 로컬 변수.

  2. 프로세스 '실행 절차'입니다. 프로그램은 삶의 프로그램에 연결된 상기 프로세서는, 그것이 처리하는 활성 엔티티가 될 수 있고, 생명이없는 개체이다.

 

세 가지 특성, 공정

  • 동적

    프로세스의 핵심 시스템에서 멀티 채널 프로그램 프로세스에서 실행되는 프로그램, 프로세스는 동적, 동적 소멸 생성된다.

  • 동시성

    모든 과정은 동시에 서로 다른 프로세스로 실행할 수 있습니다

  • 독립

    프로세스는 독립적으로 작동 할 수있는 기본 단위뿐만 아니라, 자원의 할당 및 스케줄링 독립 단위의 시스템이다.

  • 비동기

    그래서 인해 프로세스 사이의 상호 작용으로, 처리는 전진 독립적 예측 속도에 의한 처리의 간헐적 실행을 갖는다.

  • 구조

    세 프로세스 제어 프로그램 블록 부 및 상기 데이터를 처리 조성물

 

스케줄링 프로세스 IV

  1. FCFS 스케줄링 알고리즘

    무거운 I / O 형 프로세스의 손해에 CPU의 바쁜 과정에 적합합니다.

  2. 짧은 운영 우선 순위 스케줄링 알고리즘

    긴 과정에 도움이되지 않으며, 프로세스의 긴급의 적시에 처리를 보장 할 수있다, 프로세스의 길이는 밖으로을 추정하는 것이다.

  3. 라운드 로빈 방식

    프로세스가 슬라이스 처방 시스템 스케줄을 선택한 후 시간이 부족하면 CPU의 타임 슬라이스의 처리 시간은 고정 된 크기로 나누어 져 있지만, 임무 요구 사항을 완료하지 않은, 그것은 자신의자가 점유 CPU 준비 큐를 해제하고 라우팅 결국, 다음 일정을 기다리고. 동시에, 프로세스 스케줄러는 준비 큐에서 현재 프로세스를 예약했다.

  4. 다단계 큐 스케줄링

    • 준비 큐 복수의 서로 다른 우선 순위를 부여. 높은 우선 순위 큐마다 소정의 시트 처리 작게.

    • 상기 메모리에 새로운 공정 후, 제 큐의 끝에 넣어. 타임 슬라이스 내에 완료되지 않을 경우 턴 실행 처리는, 처리는 제 큐의 끝으로 진행한다 순차적으로 실행된다.

    • 경우에만 큐에 대기, 큐 프로세스는 다음 실행됩니다.

 

병렬 동시의 다섯째, 처리

  1. 평행

    모두 수행하는 복수의 프로세서를 필요로

  2. 복잡

    제한된 자원을 모두 번갈아 리소스를 사용집니다.

 

삼 상태 VI 프로세스

  1. 준비된

    이 프로세스는 CPU를 제외한 모든 필요한 자원에 할당 된, 한 프로세서가 즉시 실행을 얻을 수있는, 다음 상태의 프로세스는 준비 상태라고합니다.

  2. 운전 상태

    프로세스는 프로세서, 프로그램을 실행중인 프로세서되면, 이번에는 공정 상태의 실행 상태를 호출

  3. 상태를 차단

    때문에 이벤트를 대기로 프로세스를 실행하면 실행, 그들은 차단 프로세서를 포기 할 수 없습니다. 프로세스는, 예를 들어, I / O 완료를 기다리고있다 다양한 이벤트를 차단하게, 애플리케이션 버퍼는 신호 등을 대기 충족시킬 수 없다.

 

세븐, 동기 및 비동기

  1. 동기

    작업의 완료는 작업의 완료에 의존 기다리고, 다른 작업에 의존 할 필요가되면, 작업이 완료 의존 간주 될 수 있습니다. 이 신뢰할 수있는 작업 순서, 또는 중 성공 또는 실패, 두 작업은 일관성있는 상태.

  2. 비동기

    필요가 작업의 완료에 의존 기다릴 수 없다,하지만 통지는 그들이 작업이 완료되면 완료된 것으로, 즉시 실행 작업에 따라 완료하는 데 어떤 작업 작업에 따라 달라집니다. 최종 작업은 임무에 따라 진정으로 완벽한 판별 할 수 있는지 여부를 따라서 신뢰할 수없는 작업 순서에 의존한다.

 

여덟 생성하고 종료하는 프로세스

  1. 생성 과정

    새로운 프로세스가 생성 된 시스템 호출 프로세스를 생성하는 기존의 프로세스에 의해 실행 만들기

    1. 형태의 4 종류의 새로운 프로세스를 생성하는

      • 시스템 초기화 (사용자 데몬이 백그라운드에서 실행되며, 웨이크 업 과정을 필요로하는 경우에만 데몬이 될 전경 과정에 관계없이 사용자 상호 작용의 책임이있다.)

      • 프로세스는 (os.fork, subprocess.Popen 등)의 동작 동안에 자식 프로세스를 개방

      • 사용자 상호 작용 요청 (두 번 실행)

      • 일괄 초기화 작업 (전용 메인 프레임 배치 시스템에 응용 프로그램)

    2. 윈도우 프로세스를 생성

      CreateProcess를 시스템 호출은 CreateProcess를 모두 처리 공정을 생성, 또한 새로운 과정에 올바른 프로그램에 대한 책임이 있습니다.

  2. 프로세스의 종료

    1. 정상 종료

      십자가에 사용자가 클릭은 프로그램이 종료되도록 ExitProcess를 사용하여 Windows에서 정상 종료 시스템 호출

    2. 오류 종료

    3. 심각한 오류

      잘못된 명령을 실행, 존재하지 않는 메모리 등을 참조, 당신은 예외를 잡을 수 있습니다

    4. 다른 프로세스에 의해 살해되었다

      작업 죽이기

추천

출처www.cnblogs.com/binyuanxiang/p/11716853.html