[동시 프로그래밍 프로세스의 필수 기초 --2019-08-06 16시 2분 14초]

원본 링크 : http://106.13.73.98/__/10/

디렉토리

1. 운영 체제 배경

2. 프로세스 무엇입니까

3. 프로세스 스케줄링

4. 병렬 동시 처리

5. 동기 비동기 차단 블로킹

생성 및 종료 항에있어서,


 

1. 운영 체제 배경

이름에서 알 수 있듯이 , 실행중인 프로세스입니다 프로세스, 프로세스는 실행중인 프로그램의 추상화입니다. 개념은 운영 체제의 과정에서 유래, 운영 체제의 핵심 개념, 가장 오래된 중 하나뿐만 아니라 운영 체제에서 제공하는 가장 중요한 추상화, 다른 모든 운영 체제는 프로세스의 개념 주위 모든 공전 있습니다.

그래서 당신이 정말로 과정을 이해하려면, 먼저 운영 체제를 이해한다, 도입 운영 체제를 입력합니다

PS : 당신은 단지 CPU를 (초기 컴퓨터가 true)를 사용할 수 있습니다뿐만 아니라, 동시에 (의사)을 지원하는 능력을 보장하는 경우에도 마찬가지입니다. 별도의 여러 가상 CPU의 CPU 될 것입니다 : 프로세스가 추상적이 아닌 경우 (멀티 채널 기술을 시분할 다중 + + 공간 다중화 분리 하드웨어를 지원), 현대 컴퓨터는 더 이상 존재하지 않게된다.

  • 필요한 이론적 기초

1 오퍼레이팅 시스템의 역할 :
. 1) 좋은 추상적 인터페이스를 제공하는 하드웨어 인터페이스의 복잡성을 숨기는
하드웨어 날치기 2) 관리, 스케줄링 처리, 복수 공정하게 질서

2. 다중 채널 기술
1) 배경 : 단핵구, 동시
2) 공간 다중화 : 프로그램 메모리로서 동시에 여러 채널을
시간 다중화 3) : CPU의 시간 다중화 슬라이스 강조 : 다음에 스위치를 다시 마지막 컷 멀리에 따라 작동 위치를 계속 확인하기 위해 상태, 다운로드 프로세스를 저장하기 전에 너무 오래도 잘라 점유 컷 발생 IO, CPU는 코어가 절단된다.

PS는 : 지금 멀티 코어 CPU들은 일반적으로 동일하며, 각각의 코어는 다중 채널 기술을 사용한다. 예를 들어, 네 개의 코어 차단 IO는 IO의 재 스케줄링이 끝날 때까지 기다리는 코어 1 만남에 프로그램을 실행 있는데,이 때 운영 체제에 의해 특정 스케줄링 네 코어 스케줄링 기관 일 수도 알고리즘을 결정한다.


2. 프로세스 무엇입니까

프로세스는 세 부분으로 구성 코드 세그먼트, 데이터 세그먼트, PCB를 (공정 제어 블록 프로세스 제어 블록)

공정 (프로세스), 데이터 세트에 실행중인 활동에 대한 컴퓨터 프로그램이 시스템 자원 할당 및 스케줄링의 기본 단위입니다 기본 운영 체제 아키텍처, 컴퓨터 아키텍처 초기 프로세스 중심 설계, 프로세스는 프로그램입니다 컴퓨터 아키텍처 현대 스레드 지향 설계의 기본 실행 엔티티, 프로세스는 컨테이너의 스레드입니다. 프로그램 명령, 데이터를 조직하고 그 처리의 설명은 고체 프로그램이다.

좁은 정의 : 프로세스가 프로그램 실행의 인스턴스입니다.

넓은 정의 : 프로세스가 데이터 세트의 특정 프로그램 실행 독립적 인 활동의 함수 (프로그램)입니다. 그것의 운영 체제 실행 동적 인 기본 단위 전통적인 운영체제에서 프로세스가 모두 기본이며, 분배 장치 , 실행의 기본 단위이다.

  • 프로세스의 개념

우선, 프로세스는 엔티티는 각각의 프로세스는 일반적으로, 텍스트 영역 (문자 영역), 데이터 영역 (데이터 영역), 스택 (더미 영역)을 포함하고, 자신의 주소 공간을 갖는다. 상기 프로세서에 의해 실행되는 텍스트 지역 코드, 동적 프로세스 변수 및 실행시 사용되는 메모리 영역의 데이터를 저장 할당은, 기억 영역 지시하고 호출 프로 시저 활동 로컬 변수 스택.

둘째로, 처리는 "실행 절차"이다. 프로그램이 수명 (운영체제 수행)의 프로그램에 부착 만 프로세서 생명이 엔티티, 우리는 처리를 요청 액티브 엔티티가 될 수있다.

운영 체제 프로세스는, 가장 기본적이고 중요한 개념이다 멀티 채널 프로그래밍 시스템 발생, 도입 된 도로 프로그램의 내부 법률 시스템에 기술 된 활동, 모든 설계 기반의 멀티 채널 프로그램 내부 시스템의 역학을 특성화하기 위해, 개념 나중에 등장은 운영 체제는 프로세스를 기반으로합니다.

이유는 운영 시스템은 프로세스의 개념을 소개 : 이론적 인 관점에서, 실행하는 추상적 인 절차는,보기의 구현 관점에서 명확하게하기위한 데이터 구조는, 동적 시스템, 효율적인 관리 및 일정 입력의 고유 한 법칙을 묘사하다 컴퓨터 시스템 메인 메모리는 프로그램을 실행합니다.

  • 프로세스 기능

1. 동적 : 프로세스의 본질은 다중 프로그래밍 시스템에서 프로그램의 제 실행되면, 프로세스는 동적, 동적 소멸 생성된다.

2. 동시성 : 어떤 프로세스가 다른 프로세스와 함께 동시에 실행할 수 있습니다.

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

4. 비동기 라인 : 프로세스가 진행할 독립적 예측 속도에 의한 처리의 간헐적 실행을 갖는 프로세스 사이의 상호 작용 때문에,되도록.

구조적 특성 : 프로그램, 데이터, 세 부분의 프로세스 제어 블록 방법.

다른 프로세스는 동일 프로그램을 복수 포함 할 수 있으며, 다른 데이터 세트 내의 프로그램이 다른 프로세스를 구성하고, 다른 결과가 얻어 질 수 있지만, 실행하는 동안, 프로그램의 변경이 발생할 수 없다.

  • 처리 절차의 차이점

1. 절차는 의미가없는 동작 명령 및 데이터의 정렬 된 컬렉션은 정적 개념이다.
(2) 공정은 처리 시스템에서의 프로그램이고, 그것은 동적 인 개념이다.
(3)이 프로그램 될 수있다 오랜 소프트웨어 정보 및 프로세스로 특정 수명주기가있다.
4. 프로그램이 영구적이며, 프로세스가 수명이 짧은이다.

두 개 이상의 프로세스가 운영 체제에서 발생, 두 번 같은 프로그램을 수행, 그래서 우리는 일반적으로 각각의 일을 여러 가지 혼란되지 않습니다, 동시에 소프트웨어를 실행할 수 있습니다.


3. 프로세스 스케줄링

교대 운영 체제가 이러한 프로세스에 예약해야합니다 여러 프로세스를 실행하려면이, 스케줄링 무작위로 수행하지만, 특정 규칙을 따를 필요가되지 않으며, 따라서 스케줄링 알고리즘의 과정이있다.

  • FCFS 스케줄링 알고리즘

선착순 (FCFS) 스케줄링 알고리즘이 작업 스케줄링에 사용할 수있는 간단한 스케줄링 알고리즘, 그것은 또한 프로세스 스케줄링에 사용할 수 있습니다. FCFS 알고리즘은 짧은 작업 (공정)의 손해, 긴 작업 (공정)에 더 도움이되는 것입니다. 또한이 알고리즘은 I / O 형과 무거운 작업 (프로세스)의 손해 무거운 CPU 형 작업에 적합하다 볼 수있다.

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

쇼트 (작업 공정) 스케줄링 알고리즘 (SJ / PF)는 작업 스케줄링을 위해 사용될 수있다 단기 또는 짧은 프로세스 우선 순위 작업 스케줄링 알고리즘을 지칭 스케줄링 처리가 사용될 수도있다. 그러나 불리한 긴 작업 시간에 할 작업 (공정)의 긴급 성을 보장 할 수의 작업의 길이는 단지 추정된다.

  • 라운드 로빈 방식

라운드 로빈 방식 (라운드 로빈, RR) 방식의 기본 아이디어는 대기 시간을 준비 큐에있는 각 프로세스를 가지고 서비스 시간은 정비례 즐길 수있다. 라운드 로빈 방식으로 CPU 처리 시간은 소정의 처리 시간 슬라이스가 선택한 시스템에서 스케줄링 된 후 배출되는 경우, (수백 밀리 수십 밀리 초) 고정 크기의 타임 슬라이스들로 분할 될 필요가 있지만, 요청을 수행하지 않았다 작업은, 그것은 다음 예약 된 시간을 기다리고, 준비 큐의 말에 옆에 자신의자가 점유 CPU 측의 방출 될 것입니다. 동시에, 프로세스 스케줄러는 준비 큐에서 현재 프로세스를 예약했다.

분명히, 라운드 로빈 스케줄링은 이러한 자원이 항상 거부 할 수 있습니다 잡을 수 있고, 일부 리소스 점유 할 수있다 할당하는 데 사용할 수 있습니다, 그들은 다른 프로세스에 재 할당 할 수 있습니다. 스케줄링 작업이 아닌 선제 리소스가 포함 된 CPU의 하드웨어 리소스, 회전을 사용하지 않는 작업 스케줄링 방법을 제외한 모든 시스템에 할당되기 때문에 CPU를 선점 자원이 있지만, 프린터와 같은 자원을 선점하지 않습니다 .

회전 방법에있어서, 선택된 타임 슬라이스의 기간이 중요하다. 타임 슬라이스의 길이가 너무 짧은 경우, 우선, 타임 슬라이스 선택의 길이가 직접 시스템의 비용 및 해당 시간에 영향을 미칠 것이며, 스케줄러시켜 시스템 오버 헤드를 증가시키는 프로세서의 수가 증가하면,도 크게 증가한다 프로세스 콘텍스트 스위치의 개수를 선점 . 시간 슬라이스 길이 선택이 너무 오래 예를 들어 경우 반대로 : 타임 슬라이스가 가장 긴 코스 준비 큐 실행이 완료 보장 할 수는 라운드 로빈은 선착순 방법이 될 것을 의미합니다. 칩 길이는 절차에 따라 허용 준비 큐 및 최대 수의 시스템 응답 시간 요건을 결정하기 위해 선택된다.

라운드 로빈에서 프로세스 준비 큐에 추가하는 세 가지 경우가 있습니다 :
1. 계속하려면 다음 예약 실행을 기다리는 준비 큐의 끝으로 돌아가, 처리 시간 슬라이스가 최대 사용되지만 프로세스가 완료되지 않은 제공합니다.
2. 포인트 프로세스의 타임 슬라이스에, 밖으로 실행되지 않았기 때문에 요청 I / O 또는 동기화 프로세스와 상호 배타적 인 관계가 준비 큐에 반환 차단을 해제 한 후, 차단에 의한.
3. 새로 생성 된 프로세스가 준비 큐에 추가

이러한 프로세스는 서로 다른 우선 순위와 타임 슬라이스를 제공 다르게 취급하는 경우, 직관적으로, 시스템은 더 서비스의 질과 효율성을 향상시킬 수 있습니다. 준비 큐와 프로세스의 유형이 다른 준비 큐에 차단 될 때 예를 들어, 우리는하지만 같은에서 즐길 서로 다른 우선 순위 큐 중 FCFS의 원칙, 과정에 따라 각 배열, 이유를 차단 준비 큐에 도달하는 과정을 따를 수 동일한 우선 순위 큐. 이러한 방법으로, 모든 잠에서 타임 슬라이스 또는 웨이크 업의 이행의 완료 후 프로그램 후 시간과는 다른 입력 할 준비 큐 이후에 만들어졌다.

  • 다단계 큐 스케줄링

앞서 설명한 프로세스 스케줄링 알고리즘의 다양한 특정 한계를 갖는다. 이러한 짧은 프로세스 우선 순위 스케줄링 알고리즘은 단지 긴 과정을 무시하고 짧은 과정 알아서하지만 프로세스의 길이가 짧은 프로세스 우선 순위 기반 선점 스케줄링 알고리즘과 프로세스의 길이는 사용하지 않을 경우 지정하지 않았습니다.

멀티 극성 피드백 큐 스케줄링 알고리즘은 사전에 다양한 공정을 수행하는 데 필요한 시간을 알고, 또한 프로세스의 여러 유형의 요구를 충족 할 필요가 없습니다, 그래서 지금은 더 나은 프로세스 스케줄링 알고리즘으로 인식되고있다. 특정 작품은 다음과 같습니다 :

하나 제 큐이어서 각 대기열은 최고 우선 순위의 제 1 대기열을위한 준비 큐 복수의 주어진 상이한 우선 순위 (1), 나머지 하나는 우선 순위 큐를 감소시킨다. 이 알고리즘은 예를 들어, 슬라이스 크기가 변할 수있는 각각의 큐 프로세스 실행 시간을 제공한다 : 첫 번째 타임 슬라이스보다 제 큐 시간 슬라이스 배 제보다 큐의 길이, 제 1 대기열 I + 1 개 시간 슬라이스 나는 두 배 긴 시간 조각을 대기.

이 제 FCFS 큐 스케줄링되기를 기다리는의 원리에 따라, 큐의 제 1 단부에 배치 된 후 처리는 메모리 이른다. 그것은이 타임 슬라이스 내에 완료 할 수있는 절차를 수행 할 시간이 왔을 때 그는 타임 슬라이스의 말에 완료되지 않은 경우, 시스템이 대피 할 준비가되어 있습니다, 프로세스 스케줄러는 큐의 제 2 단부로 이동 한 다음 자신이 아직 완료되지 않은 타임 슬라이스 후의 제 큐에 실행하는 경우와 동일한 원리 FCFS 스케줄링 실행 대기에 따르면, 다음 등등 때 ...... 큐의 제 단부로 돌려서 한번에 긴 (작업 공정) 제 n 후 큐 제 1 대기열로부터 순차적으로, 제 n 큐 취할 것이다 실행 라운드 로빈

첫 번째 큐가 비어있는 경우에만 3. 스케줄러는, 두 번째 큐 프로세스가 실행 예약 할 경우에만 처음 1 ~ [I-1] 빈 큐 있으며, i 번째 실행 큐를 처리 할 스케줄러. 상기 프로세서는 서비스에 대한 큐에서의 i 번째의 처리뿐만 아니라, 높은 우선 순위 큐에 새로운 프로세스의 경우 ((1)의 임의의 큐 ~ [I-1), 이때 새로운 프로세스 실행을 선점 할 프로세서에있어서, 상기 제 I 큐의 끝으로 다시 실행하여, 즉 스케줄러 프로세스는, 프로세서는 우선 순위가 높은 처리 신상품에 할당.


4. 병렬 동시 처리

병렬 : 모두 실행 , 인종으로, 두 사람 (예 : 세 개의 스레드, 쿼드 코어 CPU로, 충분한 자원) 그 앞서서 유지
제한된 자원 모두가 자원을 사용하여 회전 취 동시 등을, 도로 (싱글 코어 CPU 리소스)의 섹션은 B가 B 후에는 같은 의미로 사용 산책을 간다 효율성을 개선하는 것을 목표로하자, 가자, 일부는 후 이동, 동시에 한 사람이 있었다.

병렬 동시 차이 :
행 평행, 즉 정확한 시간 순간에, 미시적으로 수행 다른 절차는 복수의 프로세서의 존재를 필요로하는 존재
시간주기에서, 매크로로부터 동시에 그러한 서버 프로세스 여러 세션으로 동시에 수행되는 알 수있다.


5. 동기 비동기 차단 블로킹

  • 프로세스 상태
! [여기에 그림 삽입 설명] (http://106.13.73.98/media/ai/2019-03/0442793f-4fba-4bc4-9c80-83f1e829cb40.png)

준비, 실행 및 차단 : 스케줄링 알고리즘은 컨트롤의 운영 체제이기 때문에 다른 개념을 이해하기 전에 우리가 먼저 처리의 몇 가지 상태를 이해하는 데 필요한 프로그램이 실행되고, 프로그램은 몇 가지 상태를 입력 할 수 있습니다.

1. 준비 (대기) 상태로 다음 처리를 한 프로세서가 실행할 수있는 바와 같이, CPU 이외의 모든 필요한 자원에 할당 된 때, 준비 상태로 상태 인 방법.

2. 실행 / 실행 (실행) 주 : 처리는 프로세서의 프로그램 상태라고 이때 프로세스 실행 상태에서 실행되고있는 프로세서되면.

3. 차단 (차단) 상태 : 처리를 실행하는 것은 내가 대기, 예를 들어, 다양한 이벤트를 차단하는 프로세스를 야기하고, 상기 프로세서를 포기 발생하는 이벤트를 기다리고 인해 수행 될 수 없으며, 차단 된 경우 / O 완료, 애플리케이션 버퍼 문자 (신호) 등을 기다린 충족되지 않는다.

! [여기에 그림 삽입 설명] (http://106.13.73.98/media/ai/2019-03/b7d527d7-923e-48f3-8af7-047fe86fd7d0.png)
  • 비동기 및 동기

동기화 : 다른 작업에 의존하는 작업이 필요의 완성에만 작업의 완료에 따라 대기 작업이 신뢰할 수있는 작업 시퀀스이다 완전한 의존, 고려 될 수있다, 하나는 모두 성공하거나, 두 개의 작업을 실패 상태 일관성.

비동기 : 기다릴 필요가 그들 만이 완료된 경우에도 작업을 완료로 최종 작업이 작업을 완료 여부에 의존하는 등, 한, 즉시 실행 작업에 따라 달라집니다 어떤 작업을 완료하는 작업의 통지에 의존하는, 작업의 완료에 의존하지 않으려면 에 종속 작업은 결정되지 않을 수 있으므로 신뢰할 수없는 작업 순서입니다.

예를 들어, 비즈니스를 수행하기 위해 은행에 가서, 두 가지 방법이있을 수 있습니다 :

첫 번째 : 대기 선택
두번째 : 위의 번호와 종이의 작은 조각을 선택, 당신이 방전 될 때까지 당신은 사람의 수는 카운터 것을 알 때 대기

; 첫 번째 이전 (대기 큐) 즉, 동기화 메시지 알림을 기다리고, 당신은 비즈니스 상황을 거래하는 은행을 기다릴 필요가
후자는 (다른 사람이 알 수 있도록 대기) 비동기 메시지 알림, 비동기 메시지 처리, 대기 기다리고 있습니다 : 초 트리거 될 이벤트를 기다리는 동안)이 경우, 카운터 사람 (트리거 메커니즘에 쓰기 여기 (메커니즘을 통해 콜백 메커니즘을 등록하는 경향이 메시지 알리미 (당신이 업무를 수행하는이 경우는 대기) 종이의 작은 조각, 전화 번호)에 번호가 이벤트를 기다리는 사람들에게 알리는합니다.

  • 차단 및 비 차단

차단이 두 개념 및 절차 (스레드) 메시지 알림을 기다리는 비 블로킹의 상태에 대한 (아무것도 동기 또는 비동기 없음). 즉, 차단, 비 - 차단 주로 프로그램 (스레드) 각도에서 상기 메시지 통지 상태를 기다린다.

중 대기 또는 대기 과정에서 메시지 알림을 기다리는 밖에서 기다리고 그 외에 다른 일을 할 수없는 경우에 사용하는 번호는, 그 메커니즘이 차단 프로그램의 성능, 즉, 위의 예를 계속하려면, 프로그램에서 호출이 기능을 계속할 수 없습니다 차단되었습니다.

자신의 일을하면서 카운터를 기다리는 동안 대신, 이러한 서비스를 기다리는 동안 은행, 이러한 상태는 비 블로킹이 때 통지를 대기에 차단 되었기 때문에, 잠시 채팅 메시지를 보낼 선호하지만, 통지.

참고 : 비 블로킹 동기 형태가 실제로 비효율적이다, 당신은 여전히 ​​하루에 팀을 관찰하는 것은 당신을 소진하지 않은 반면, 작은 채팅 및 준수 채팅을하면서 상상 경우,이 두 운영 절차, 같은 팀 프로그램 앞뒤로 두 행위 사이에 전환 할 필요가, 당신은 생각할 수과 효율성이 낮다. 비동기 비 차단 형태의 전화가 당신이 알 당신의 일이 카운터 (뉴스 트리거 메커니즘) 것들이기 때문에, 프로그램은 앞뒤로 두 개의 서로 다른 작업 간의 전환하지 않을 것이다, 그런 문제가 없었다.

  • 비동기 / 동기 및 차단 / 비 차단

1. 동기 차단 양식

최소 효율! 당신은 줄을주의하셔야합니다, 위의 예를 가지고, 그 밖의 무엇을 수행 할 수 있습니다

2. 비동기 차단 양식

비동기 작업이 살고 차단 될 수 있지만, 메시지를 처리하는 동안 그는이 차단되지 않습니다,하지만 통지를 기다리는 동안 메시지가 차단됩니다.

비즈니스의 남자를 기다리고 은행이 메시지가 트리거를 기다릴 비동기 방식을 사용 또는 위의 예는, 종이를 따기입니다 (알림 카운터를 기다리십시오). 이제 가정 :이 시간 동안 당신은 분명,이 작업을 기다리고 차단, 다른 일을하기 위해 은행을 떠날 수 없다.

3. 비 차단의 형태를 동기화

사실은 비효율적이다.

아 예는 위의 상상 일에도 팀을 관찰하면서, 당신을 소진하지 않은 경우 앞뒤로 두 동작 사이의 채팅을하면서 두 개의 운영 프로그램,이 프로그램으로이 채팅 및 관찰 팀 전환, 생각할 수있는 효율이 낮다.

4. 비 블로킹 비동기 형식

보다 효율적인!

당신 (준비 과정) 것은, 당신은주의 프로그램이 앞뒤로 두 개의 조작 스위치 사이되지 않습니다 카운터 (뉴스 트리거 메커니즘) 것들이기 때문 채팅입니다.

예를 들어, 이번에는 갑자기 연기하고 싶은, 그래서 그는 당신이 볼 수있는 문제를 호출 할 때이 번호를 당신에게 전달했다, 로비 매니저에게 말했다. 그런 다음 대기의 위의 조작으로 블록되지 않은이 비동기 + 비 - 블로킹 (non-blocking)의 자연적인 방법입니다.


생성 및 종료 항에있어서,

  • 생성 과정

그러나 모든 하드웨어, 운영 체제만큼 운영 체제의 개념, 과정이 있기 때문에, 당신은 프로세스와 같은 컨트롤러에서 에어컨, 하나의 응용 프로그램을 위해 설계 운영 시스템의 수를 만들 수있는 방법이 필요 관리해야 할 필요가, 한 번 시작 에어컨, 모든 프로세스가 이미 존재합니다.

일반적인 시스템 (당신은 Windows와 같은 많은 응용 프로그램을 실행할 수)에 관해서는, 당신이 만들 수있는 시스템의 폐기 프로세스가 실행되는 능력이 필요합니다.

네 가지 방법이 있습니다, 새로운 프로세스를 생성합니다 :

1. 시스템 초기화

2. 프로세스는 작동 중에 자식 프로세스를 엽니 다

3. 사용자 상호 작용 요청 (예를 들어, 사용자가 브라우저를 엽니 다)

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

우리가 프로세스가 이미 시스템 프로세스를 만들기위한 호출을 수행하기 위해 존재해야 할 필요가있는 방법을 창조의 과정인지 여부.

  • UNIX 및 Windows에서 프로세스를 만들기

1.UNIX : 전화는 모두 같은 메모리 맵, 같은 환경과 쉘 인터프리터 과정에서 (파일을 열 수있는 동일한 문자열, a의 구현을 가지고, 포크, 포크과 정확히 같은 부모 프로세스의 복사본을 생성 명령은) 자식 프로세스를 생성합니다.

2.Windows : 호출, CreateProcess를가 CreateProcess를 즉 창조 과정을 처리하는 것입니다 또한 새로운 과정에 올바른 프로그램에 대한 책임이 있습니다.

모두 동일한 지점 : 프로세스가 생성되면, 부모 및 자식 프로세스는 상이한 어드레스 공간 (프로세스 메모리 사이의 분리를 달성하기 위해 다중 채널을 물리 레벨에 대한 기술적 요구) 프로세스에 영향을주지한다 주소 공간에 대한 수정이 또 다른 방법.

두 개의 서로 다른 점 : UNIX에서, 자식 프로세스의 초기화 주소 공간은 상위 프로세스의 사본입니다 (자식 프로세스와 부모 프로세스가 할 수있는 읽기 전용 공유 메모리 영역을 가지고), 그리고 처음 아이 및 부모 프로세스에서 Windows 시스템 주소 공간이 다릅니다.

  • 프로세스의 종료

1. 정상 종료 : 자발적 , 같은 사용자가 클릭과 같은 대화 형 페이지 또는 리눅스 시스템은 윈도우 시스템 ExitProcess를 사용하여, 출구를 이용하여 정상 종료 시스템 종료 후 시작 호출 프로그램을 교차.

2. 오류 종료 : 자발적 , 같은 쉬 test.py 및 test.py 등은 존재하지 않습니다.

3. 심각한 오류 : 비자발적 불법 명령 실행 등 참조가 존재하지 않는 메모리 주소 의 I / O를, 당신은 예외를 잡을 수 있습니다.

4. 다른 프로세스에 의해 살해 : 비자발적 같은 죽 같은 -9

추천

출처www.cnblogs.com/gqy02/p/11309603.html