제 27 조 : 동시 프로그래밍

UDP 프로토콜 

사용자 데이터 그램 프로토콜의 OSI 모델의 전송 계층에 속하는 프로토콜로

다만, 신뢰할 수없는, 필요하지 않은 순차적 데이터의 소량의 빠른 전송 서비스

신뢰할 수 :

확인은 전송 완료 후 필요한 즉시 캐시에 데이터를 삭제하지 않습니다

이 순서를 필요로하지 않습니다 :

데이터 전송을위한 데이터 패킷의 큰 숫자로 구분하면, 상대방은 데이터의 순서를 알고, 완료 할 수 없습니다

작은 데이터 량 :

데이터 손실의 가능성이 큰이 높을수록, 그것은 1472을 통해 데이터의 양을하지 않는 것이 좋습니다

속도 :

TCP 상대 조건은 훨씬 더 빨리 정보,도 링크를 구축 할 필요성을 확인 할 필요가 없습니다

통신 프로세스

휴대 전화의 프로세스에 대한 TCP 은유는 UDP는 워키 토키로 볼 수 있도록하는 경우  

1. UDP 소켓을 만드는 기계를 구입

2. 고정 채널 의 IP와 포트를 결합

3. 송신 데이터에 recvfrom sendto를 수용

 

수신

1. UDP 소켓을 만드는 기계를 구입

2. 무전기 데이터에 recvfrom sendto를

데이터가 명확한 포트 번호 포트 번호를 접수되어야 수집 조심하지 될 것은 네트워크 서비스를 사용할 수 없습니다

 

 

TCP와 UDP의 다른 차이

1. 아무 관련이 없습니다 

2. 각 전송은 스틱 패키지 독립적 인 패킷 아니다   

 

TCP는 더 높은 데이터 무결성이 필요합니다 온라인 결제, 문자 메시지를

UDP : 데이터 무결성이 필요하지 않지만 빠른 : 비디오 게임 음성 

DNS

도메인 이름 서버 

도메인 이름을 IP를 결합하는 데 사용되는 일반 문자열의 문자열, 목적은 메모리를 촉진하는 것입니다

DNS 서버는 IP 주소에 도메인 이름을 변환하는 데 도움이됩니다 

기본적으로 데이터베이스는 도메인 이름과 IP의 대응 내부에 보관되어  

유한의 기계 성능

분할 된

루트 네임 서버는 도메인 이름 서버를 정의하는 정보를 저장 

최상위 도메인 서버 정보를 저장 전용 보조 도메인 이름 서버 

두 개의 메모리 세 가지 보조 도메인 이름 서버

세 번째 레벨 도메인은 일반적으로 저장 될 수있는 직접 네 개의 특정 IP 정보를 저장 

.....................

DNS는 로컬 가속을 해결하는 데 사용됩니다   

 

DNS에 자신의 역할을 구축

1.CDN 콘텐츠 전송 네트워크 서비스는 주위에 거울을 구축하는 것입니다   

2. 클러스터  

운영 체제

소프트웨어이며,

임의로 수정할 수 없습니다 보호 

코드를 커널의 엄청난 금액 5 억 이상

장수, 한 번 변경하지 마십시오 일반적으로 완료

리눅스는 (쉘 권리가 2011 예약!) minux이 생성 바인딩에 이식 양말입니다

운영 체제의 역할 :

추악한을 숨길 1. 복잡한 하드웨어 세부 사항은, 간단한 전화 인터페이스를 제공합니다

2. 하드웨어에 대한 응용 프로그램은 질서있는 경쟁을하게된다 

 

운영 시스템 개발의 역사 

어떤 프로세스가되지 않습니다와 컴퓨터 펀치 카드와 진공관 첫 번째 운영 체제 1.  

2. 2 세대 컴퓨터 트랜지스터 70941401 배치 시스템

입력 및 출력 장치가 느린 직렬 실행 그룹의 개발 그룹의 처리 효율에 관련된 사람들의 컴퓨팅 요구를 상호 연결 할 수 없습니다

3. 제 3 세대 컴퓨터 기술 집적 회로와 멀티 채널

멀티 터미널 라인 스풀링   같은 시스템을 과학 컴퓨팅 및 범용 컴퓨터 모두가 문자 처리를 할

다중 채널 기술은 시리얼로 인한 비 효율성을 해결하기 위해

다중 사용자 단말기는 동시에 자신에게 여러 사용자가 하나의 컴퓨터를 각 사용자의 생각에 서비스를 제공 할 수 있습니다  

4. 4 세대 PC

집적 회로의 대규모 사용은, 무엇보다도 GUI 인터페이스를 제공합니다 

다중 채널 기술  

배경, 모든 프로그램은 시리얼 자원의 낭비로 이어지는  

목적은 여러 프로그램을 동시에 실행할 수 있도록 동시에 여러 작업을 처리하는 것입니다  

핵심 기술

공간 다중화 (spatial multiplexing)

또한, 동시에 메모리에로드 된 다른 프로그램의 복수의 데이터를 지칭

각각의 프로세스 간 기억 영역은 각각의 실제 레벨로부터 분리된다 

시간 다중화  스위치 저장 +

조건을 전환 :

1. 프로세스의 실행은 다른 프로세스로 전환 IO 동작 조우

2. 실행 시간이 너무 길고, 운영 시스템은 강제 집행의 권한을 박탈한다  

간단하게 스위치를 사용하면 실행을 재개하기 위해 전환하기 전에 현재 상태를 저장해야합니다, 충분하지 않습니다 

 

방법

프로그램은 호출되는 과정에서 실행되는 프로그램 구현 프로세스, 추상적 인 개념이다되고

운영 체제에서 프로세스 

 

 

멀티 프로세스

처리 절차의 차이점 

파일들을 식별 할 수있는 컴퓨터 프로그램, 프로그램은 실행 바이너리 하드 드라이브의 더미에 누워되지

프로그램이 메모리에 하드 디스크에서 데이터를 읽어 실행하면 CPU는 메모리 및 실행에서 지침을 읽고

작업이 프로세스에 상승했다되면   

프로그램은 여러 프로세스를 생성하기 위해 여러 번 실행하지만, 독립적 인 프로세스입니다 수 있습니다

우리는 오른쪽 평 파일을 실행하면, 사실, 인터프리터에 대한 인수로 파이썬 인터프리터, 실제로 평 파일을 시작  

 

비 차단 동시 병렬 차단 (포커스)

방해 : 프로그램 발생 IO 작업이 차단 된 상태를 입력    

本地 IO 입력 인쇄 수면 읽기, 쓰기      

네트워크 IO의 RECV 보내기

비 차단 :이 프로그램은 차단 해제 어떤 IO 작업에서 실행되고 있지 않습니다 

그는 프로그램의 비 차단 상태가 실행하는 것입니다 차단했다 

동시 : 복수의 태스크를 처리하는 동시에 본질적으로 매우 고속 스위칭을 수행 나타나는   

병렬 : 여러 작업을 동시에 실시간해야합니다-이 수행하는 멀티 코어 CPU에서만 가능 평행 

그는 동시 병렬 작업을 처리했다

세 가지 상태를 전환

 

프로그래머의 영원한 주제

효율성 향상

기본적인 방법은 프로그램이 가능한 한 많이 실행하도록하는 것입니다

가능한 IO 멀티 CPU 시간 단축    

버퍼 IO 작업을 줄이기 위해 사용됩니다 

 

 

이해와 파괴의 과정을 만들기

 

레시피 : 프로그램입니다 

과정을 요리 : 프로세스가있다

 

 

 

 

두 가지 방법으로 처리 (초점)

1. 인스턴스를 직접 공정, 작업은 수신 대상으로 수행 할

  

2. Process 클래스 상속, 실행 방법은 실행 방법에 작업이 될 것 오버라이드 (override) 

가져 오기 운영 체제 
에서 멀티 프로세싱 가져 오기   프로세스
클래스 MyProcess ( 프로세스) : DEF __init __ ( 자기, 이름) : . 슈퍼 () __init __ () . 자기 이름 = 이름 #이 Procee가 run 메소드가 실행 전송 작업이 실행됩니다 우선 상속 DEF의 실행 ( 자기를) : 인쇄 ( . 자기 이름) 인쇄 ( "! 아이를 실행 S 것은 %를 처리하는 ' % . 운영 체제의 GETPID ()) 인쇄 ( "! S 자식 프로세스 % 이상 " % . 운영 체제의 GETPID ()) IF __name__ == '__main__ ': 사용자가 만든 대상 매개 변수 번호를 지정하지 않을 때 P =
   
       
       
   
   
       
       
       


   
   MyProcess ( "로즈") ρ-. 시작 () 인쇄 ( "부모 이상!")
   
   

 

함수 (포커스)에 가입

 

프로세스 개체가 조인 기능을 포함

, 자식 프로세스 개선을위한 우선 순위 있도록 부모 프로세스가 자식 프로세스 종료를 기다린다 

 

좀비와 고아 이해

고아

부모 프로세스가 자식이 아직 실행되는 동안, 종료 것을 의미한다,

해가 고아, 그 존재가 필요한다

예를 들면 : QQ 브라우저를 열고, 전분기 먼저 브라우저가 계속 실행해야 종료 

분리 된 운영 체제를 통해 이동합니다   

 

좀비 과정

가치, 자식 프로세스가 이상이지만, 운영 체제가 실행 시간, PID와 같은 일부 정보 처리를 계속합니다,이 과정에서 이번에는 좀비 프로세스라고합니다

너무 많은 좀비 프로세스가 자원을 많이 차지 경우, 새로운 시스템에서 발생하는 새로운 프로세스를 열 수 없습니다

리눅스는 상위 자원에 대한 아이의 와이 / waitpid를 복구있다

파이썬은 자동으로 좀비를 복구합니다 

 

 

공통 속성

#의 P.join () 아동에 대한 # 대기가 종료 
프로세스 종료 #의 p.terminate () #을
이름 # 프린트 (p.name) # 프로세스
# 인쇄 (p.is_alive ()) #이 살아
#의 p.terminate을 () # 지연이있을 수 있도록 시작 명령과 같은 운영 체제로 전송
# 인쇄 (p.is_alive ())
# 인쇄 (p.pid)
# 인쇄 (p.exitcode) 종료 코드 번호를 얻을 수

 

 

 

 

추천

출처www.cnblogs.com/haojunliancheng/p/10956358.html