章XXVII:並行プログラミング

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との間の対応の内側に保持されています  

有限マシンのパフォーマンス

分割します

ルートサーバは、ドメインネームサーバを定義する情報を格納します 

トップレベルドメインサーバの店舗情報だけでセカンダリドメインネームサーバ 

二つのメモリ3セカンダリドメインネームサーバ

三サードレベルドメインは、通常、直接4つの特定のIP情報を保存保存することができます 

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

DNSは、ローカル加速を解決するために使用されます   

 

DNSでの自分の役割を構築

1.CDNコンテンツ配信ネットワークサービスは、あなたの周りの複数のミラーを確立することです   

2.クラスタ  

オペレーティングシステム

ソフトウェアであり、

任意に変更することはできません保護されました 

コードカーネル5億以上の膨大な量

長寿、一度変更されません。一般的に完成

Linuxはminuxにグラフトされた靴下(シェル権は、2011年を予約!)が生成される結合します

オペレーティングシステムの役割:

醜いを非表示にするには、1.複雑なハードウェアの詳細は、シンプルなコール・インタフェースを提供します

2.ハードウェアのためのアプリケーションは、秩序ある競争になり 

 

オペレーティングシステムの開発の歴史 

無処理とコンピュータパンチカードと真空管1の第一のオペレーティングシステムではありません  

2.第二世代コンピュータトランジスタ70941401バッチ・システム

入力および出力デバイスが遅いとシリアル実行のグループの開発グループの処理効率に関わる人々のコンピューティング・ニーズを相互に接続することはできません

3.第三世代コンピュータ技術の集積回路およびマルチチャンネル

スプーリングマルチ端末回線  の両方の科学技術計算や汎用コンピュータのために、同じマシンは、文字処理を行います

シリアルに起因する非効率性を解決するためのマルチチャネル技術

マルチユーザ端末は、同時に自分自身に複数のユーザーに1台のコンピュータを各ユーザーの思考にサービスを提供することができます  

第4世代のPC

集積回路の大規模使用は、すべてのほとんどは、GUIインタフェースを提供します 

マルチチャネル技術  

背景、シリアル資源の浪費につながるすべてのプログラム  

目的は、複数のプログラムを同時に実行する複数のタスクを同時に処理できるようにすることです  

キーテクノロジー

空間多重化

これは、同時にメモリにロードされた別のプログラムの複数のデータを指し

各プロセス間の記憶領域は、各物理レベルから分離されます 

時間多重  スイッチセーブ+

スイッチング条件:

1.プロセスの実行は、他のプロセスに切り替えるIO操作に遭遇しました

2.実行している時間が長すぎる、オペレーティングシステムが強制的に強制力を奪われます  

単純に切り替えるには、あなたが実行を再開するために、切り替える前に現在の状態を保存する必要があり、十分ではありません 

 

プロセス

このプログラムは、呼び出されたプロセスで実行するプログラムの実施プロセス、抽象的な概念であるされています

オペレーティングシステムからプロセス 

 

 

マルチプロセス

プロセスおよび手順の間の差 

、プログラムが実行されていないファイルの束を識別することができ、コンピュータプログラムは、バイナリ、ハードドライブの杭の上に横たわっています

プログラムがメモリにハードディスクからデータを読み取るために、実行すると、CPUは、メモリから命令を読み取り、実行し、

操作は、プロセスを生じさせた後は   

プログラムは、複数のプロセスを生成するために複数回実行されますが、独立したプロセスですすることができます

我々は右PYファイルを実行すると、実際には、通訳の引数としてPythonインタプリタ、あなたが実際にPYファイルを開始しました  

 

非ブロッキング同時並列ブロッキング(フォーカス)

妨害:プログラム遭遇IO操作がブロックされた状態になっています    

本地IO入力された印刷睡眠読み書き      

ネットワークのIOのrecv送信

ノンブロッキング:プログラムはブロック解除任意のIO操作で実行されていません 

彼はプログラムの非ブロッキング状態の遮断が実行することであると述べました 

同時:複数のタスクを同時に処理するに表示され、基本的に非常に高速な切り替えを行います   

パラレル:複数のタスクを同時に本物の持っている必要がありますマルチコアCPUのみ可能並列に実行します 

彼は、同時並列タスクが処理されると

三つの状態を切り替えます

 

プログラマ永遠のトピック

効率を改善

基本的な方法は、プログラムが可能な限り実行させることです

できるだけIOマルチCPU時間を削減    

バッファは、IO操作を低減するために使用されます 

 

 

理解と破壊のプロセスを作成します。

 

レシピ:プログラムがあります 

プロセス料理:プロセスがあります

 

 

 

 

二つの方法の工程(フォーカス)

1.直接インスタンス化プロセス、タスクが受信対象で実行されます

  

2. Processクラスの継承、runメソッドが実行メソッドにタスクなりオーバーライド 

インポートOS 
からマルチプロセッシングのインポート   プロセスの
クラスMyProcess(プロセス):DEF __init __(自己、名):スーパー()__init __() 自己の名= 名の#はProceeは、runメソッドを実行するために送信されたタスクが実行されます上書き継承DEFの実行(セルフ) :(印刷。自己名)を印刷("!Sランニング子どもが%プロセス" %を。OSのGETPID()) 印刷"子プロセス%を超えるS!" 。OSのGETPID())IF __name__ == '__main__':あなたが作成したターゲットパラメータ#を指定する必要がないとき、P =
   
       
       
   
   
       
       
       


   
   MyProcess("ローズ")のp-。スタート()印刷("オーバー!親")
   
   

 

機能(フォーカス)に参加

 

プロセスオブジェクトは、参加機能を含みます

親プロセスは子プロセスが終了するのを待つように、子プロセスを改善するための優先順位 

 

ゾンビと孤立を理解します

孤立

子供がまだ実行されている間、親プロセスが終了することを意味し、

無害孤立し、その存在が必要とされます

例:QQはブラウザを開き、QQの最初のブラウザを終了は実行を継続すべきです 

孤立したオペレーティングシステムが引き継がれます   

 

ゾンビプロセス

価値は、子プロセスは終わったが、オペレーティングシステムが時間を実行している、などPIDなど、いくつかの情報プロセスを維持します、このプロセスのこの時間は、ゾンビプロセスと呼ばれています

あまりにも多くのゾンビプロセスは、リソースの多くを取る場合は、新しいシステムが得られ、新しいプロセスを開くことができません。

Linuxは、親リソースのための子供のWAI / waitpidの回復を持っています

Pythonは自動的にゾンビを回復します 

 

 

共通のプロパティ

子供が終了するための#P.join()#待ち
#のp.terminateを()プロセスを終了する#
名前#プリントを(p.name)#プロセス
#プリント(p.is_alive())#生きている
#のp.terminate()#遅延が発生しますので、startコマンドと同様に、オペレーティング・システムに送信されます
#印刷(p.is_alive())
印刷(p.pid)
印刷(p.exitcode)終了コード番号を取得します

 

 

 

 

おすすめ

転載: www.cnblogs.com/haojunliancheng/p/10956358.html