(答え)アリ、Baiduは、Jingdongは(SP)、オペレーティングシステム、Huawei社の顔の質問のハイライト

EDITORIAL:

最後に来て仕事、たくさんの時の経験を探している、だけでなく、多くの質問を考えて、そして最終的にいくつか重いものを得る - とアリ、Baiduは、Jingdongは(SP)、華為や他の植物からのオファーの数を栽培。幸いなことに、すべてが私はいくつかの筆記試験/面接の経験を命じている間にこの経験を、いくつかの良い要約を取るために、バックトラック上の次の唯一の価値がある、パブリックで乾燥、シェアを作りました。

(答え)アリ、Baiduは、Jingdongは(SP)、オペレーティングシステム、Huawei社の顔の質問のハイライト

プロセスとスレッドとその差

  1. カプセル化プロセスは、システムがリソースのスケジューリングおよび割り当て、同時オペレーティング・システムを実現するための基本的な単位で、プログラムを実行することです。
  2. スレッドは、サブタスクの処理であるCPUスケジューリングの基本単位であり、同時内部プロセスを達成するために、リアルタイム保証手順のためにディスパッチ。
  3. プログラムプロセスは、スレッドが存在するプロセスに依存している少なくとも一つのねじ山を有し、少なくとも1つのプロセスを有します。
  4. プロセスは、実装工程において別々のメモリユニットを有しており、複数のスレッドは、メモリのプロセスを共有します。

プロセス間通信のいくつかの方法

  1. 導管(パイプ)と名前付きパイプ(名前付きパイプ):パイプは親と遺伝的関係の添加が、それは遺伝的関係のプロセスの間の自由な通信機能を可能にするた有するパイプを有する子名前付きパイプとの間の通信のために使用することができます。
  2. シグナル(信号)の信号は受信処理を通知するために使用されるイベントが発生した、通信のより洗練された手段です。
  3. メッセージキュー:メッセージキューは、書き込み権限が特定のルールに従うことをメッセージ・キューに追加することができる新たな情報を持って処理する必要が持っている欠点の限られた量の通信信号の2つの手段を克服メッセージのリンクされたテーブルであり、メッセージキューへのアクセスを読み取り情報を取得するプロセスは、メッセージキューから読み取ることができます。
  4. 共有メモリ:あなたは、これは通信のプロセスの最も有用なの間であると言うことができます。これは、互いに異なるプロセスは、共有メモリ内のデータを処理することができます参照するための時間に更新された、複数のプロセスが同じメモリ空間にアクセスすることができることができます。このようにして、このようなミューテックスやセマフォなどの同期、のいくつかの並べ替えに依存しています。
  5. セマフォ:主にプロセス間と同じプロセスの異なるスレッドと排他的手段との間の同期を取得するなど、
  6. ソケット:これは、より一般的には異なるマシン間のネットワークプロセス間通信のために使用することができるプロセス間通信機構を有する、広く使用されています。

スレッド同期モード

  1. ミューテックス同期/ロック:ミューテックス・メカニズムを使用して、のみ許可ミューテックススレッドでは、パブリックリソースへのアクセスを持っています。唯一のミューテックスオブジェクトなので、公共の資源が複数のスレッドから同時にアクセスすることができないようにすることができます
  2. セマフォSemphare:それは複数のスレッドが同じリソースにアクセスすると同時にすることができますが、スレッドの時間の最大数でこのリソースのアクセスを制御する必要があります
  3. 通知/イベント(信号)、待機:通知の方法によってマルチスレッド同期動作を維持するだけでなく、比較演算のマルチスレッドの優先度の実現を容易にします

デッドロックとは何ですか?条件は、デッドロックを生成しましたか?

コンセプトのデッドロック

各プロセスがリソースを保持しているが、それを解放するために、他のプロセスを待つか、彼らが今言って、変更されません。この状態でリソースを保持している場合は二つ以上の同時プロセスでは、我々は前に前方に移動することはできませんグループのプロセスがデッドロックを持っていました。人気話すには、それぞれが1つの状態を待って、無期限にブロックされた2つの以上のプロセスです。

デッドロックのために必要な4つの条件

  1. 相互に排他的:少なくとも1つのリソースは、唯一のプロセスで使用できる非共有モードに属している必要があり、他のアプリケーションがこのリソースを使用する場合は、リソースが解放されるまで、アプリケーション・プロセスが待機する必要があります。
  2. 所持して待って:プロセスは、少なくとも1つのリソースを占有し、他のリソースを待って、そのリソースを他のプロセスによって占有されている必要があります。
  3. ノンプリエンプティブ:プロセスは、自発的にタスク処理リソースの完了後に解放することができる、先取りすることができません
  4. サイクルを待つ:環状端部との間のリソース関係を待っている複数のプロセスを形成するために終了します

基本戦略と共通のメソッドデッドロックを処理します

主要な予防デッドロックのデッドロックに基本的な解決策とは、デッドロック、デッドロックの検出、デッドロックを持ち上げ、ダチョウの戦略を避けます。

デッドロックの防止

基本的な考え方は、ちょうど少なくとも一つが満たされていない中で、デッドロックのために必要な4つの条件の確認デッドロック防止が発生し、デッドロックの発生を防止することができるようにすることです、具体的な方法は次のとおりです。

  • 相互に排他的な条件を破る:プロセスが同時に特定のリソースにアクセスすることができます。しかし、いくつかのリソースは、リソース自体の特性によって決定される複数のプロセスで共有することができず、従って、このアプローチは、通常、実用的な値ではありません。
  • 休憩の所持や条件を待つ:あなたが事前に割り当てられたリソースの戦略を実行することができます(1回限りのアプリケーション・プロセスのすべてのそれは、すべての必要なリソースが満たされていない場合、一時的に実行します。このプロセスに任意のリソースを割り当てていない、前にシステムを実行するために必要なリソース。システムは、現在のプロセス、アプリケーションのスレッドにすべてのリソースの1回だけ割り当てのために必要)または(リソースのためにいくつかのリソースに適用し、それらを使用する可能性のあるプロセスを適用することができる占有リソースにはプロセスが存在しない場合にのみ許可されているすべてのリソースを満たすことができる場合にのみ、しかし、より多くのリソースを適用するには、現在のプロセスの前に、それは)現在占有すべてのリソースを解放する必要があります。しかし、この戦略はまた、いくつかの欠点があります。多くの場合、プロセスの実行前に必要なすべてのリソースを予測することはできない、プロセスを動的に実行されるため、予測できない。同時​​に、減少した過程で、その結果、リソース使用率を削減します同時実行。
  • ノンプリエンプティブな条件を破る:強制的にいくつかのリソース占有者から取られたプロセスができます。それはあるが、プロセスは、新たな資源のアプリケーション内のリソースの一部を占有し、満足できない、それが他のスレッドを可能にするために保持しているすべてのリソースを解放する必要があります。デッドロックの問題を防ぐために、このような方法を実現するために、それはシステムのパフォーマンスが低下する可能性があります。
  • 資源配分戦略の秩序実装:条件が悪循環を断ち切るするのを待ちます。すべてのためのリソースを番号付け、リソースのためのすべてのプロセスの要求は、リソース数の増加のために厳密に従ったものでなければならないデッドロックの発生を防止するために、ループを返却しないようにだけ、大規模なリソースを適用するために、小さなリソースを取ることを提案しました。

基本的な考え方のデッドロック回避

基本的な考え方は、動的循環待ち条件を確保するために、リソースの割り当て状態を検出デッドロックを回避することで、システムが安全な状態であることを確認するように、満足していません。いわゆる安全な状態を意味する:システムは、各プロセス(その最大値を超えない)の順序に従ってリソースを割り当てることができる場合は、システム状態が安全な配列が存在する場合、システムは安全な状態にある、換言すれば、安全です。リソース割当グラフアルゴリズムと銀行家のアルゴリズムは、システムが安全なままであることを保証2つの古典的なデッドロック回避アルゴリズムです。ここで、各リソースタイプの図シナリオのリソース割り当てアルゴリズムは一例に過ぎず銀行家のアルゴリズムは、各リソースタイプに適用されている間、(側分配アプリケーション側、需要側がリング分布を形成することが許可されていない)の複数のインスタンスを持つことができシーン。

デッドロックリフト

二つの方法が一般的にデッドロックやリソースプリエンプションプロセスの終了を緩和するために使用されます。**いわゆる横取りを意味し、すべてのプロセスのデッドロックを終了し、一度だけキャンセルデッドロックサイクルまでのプロセスを終了:**いわゆるプロセスが終了する2つの方法を含め、待ちの悪循環を断ち切るために1つ以上のプロセスを終了させるだけでいいそこに1つ以上のプロセスのデッドロックから1つ以上のリソースをつかむ、我々は今、3つの質問を検討する必要があります。

  1. 被害者を選択
  2. ロールバック:安全な状態にロールバックします
  3. 飢餓(プラスコスト要因でロールバックの数は、より多くのロールバックは、常にプロセスがロールバックされないよう、被害者であり続けることはできません)

いくつかの状態を持っているプロセス、?

  1. 準備:プロセスは、プロセッサ以外の必要なリソースを受信し、プロセッサは、リソースの割り当てを待ちます。
  2. 動作状態:この状態のプロセスCPUの数に等しい数よりも少ないで、実行するプロセッサリソースを占有します。
  3. ブロックされた:プロセスは、いくつかの条件を待っている条件が満たされるまで実行できません。

(答え)アリ、Baiduは、Jingdongは(SP)、オペレーティングシステム、Huawei社の顔の質問のハイライト

いくつかの州でスレッド?

Java仮想マシンの状態数を通過する最初の作成から最終終焉まで、**スレッド、:(待機中)待って、(新)、レディ(実行可能/スタート)、ラン(ランニング)、閉塞(ブロック)を作成、(時間待ち)と消失(デッド/終了)を待ちます。**任意の時点で、唯一の状態のスレッドは、意味の各状態を以下に示します:

(答え)アリ、Baiduは、Jingdongは(SP)、オペレーティングシステム、Huawei社の顔の質問のハイライト

スレッドの状態間の遷移を次のように

(答え)アリ、Baiduは、Jingdongは(SP)、オペレーティングシステム、Huawei社の顔の質問のハイライト

ページングとセグメンテーションの違い(メモリ管理)とは何ですか?

ストレージ管理は、ユーザメモリ割当管理プログラムの視点に沿ったセグメントです。**プログラムのアドレス空間におけるストレージ管理セグメントは、コードセグメント、データセグメント、スタックセグメント(セグメント)などのいくつかのセグメントに分割され、各プロセスが互いを妨害することなく、互いに独立して、二次元のアドレス空間を有するようになっています。** - ステージ管理の利点がある:いいえ内部フラグメンテーション(可変セグメントサイズので、デブリを除去するために、セグメントのサイズを変更します)。しかし、セグメントがスワップアウトされ、外側の生成されたフラグメント(例えばセクション4K 5Kトランスデューサセグメントとして、1K外デブリを生成します)

ページのストレージ管理プログラムは、ユーザメモリと物理メモリ管理別々のメモリ割り当て方式の斜視図です。ページストレージ管理上、プログラムの論理アドレスは、固定サイズのページ(ページ)に分割され、プログラムがロードされるとき、物理メモリは、いずれか任意の1つのフレームのメモリ内に配置することができ、同じサイズのフレームに分割されていますフレームは、それによって別個の分離を実現し、連続的である必要はありません。(ページ・サイズが固定されているため)、外部断片化が、生成されたデブリ内(ページが不満を満たすことができる):ページメモリ管理が有利ではありません。

两者的不同点:

  1. 目的不同:分页是由于系统管理的需要而不是用户的需要,它是信息的物理单位;分段的目的是为了能更好地满足用户的需要,它是信息的逻辑单位,它含有一组其意义相对完整的信息;
  2. 大小不同:页的大小固定且由系统决定,而段的长度却不固定,由其所完成的功能决定;
  3. 地址空间不同: 段向用户提供二维地址空间;页向用户提供的是一维地址空间;
  4. 信息共享:段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制;
  5. 内存碎片:页式存储管理的优点是没有外碎片(因为页的大小固定),但会产生内碎片(一个页可能填充不满);而段式管理的优点是没有内碎片(因为段大小可变,改变段大小来消除内碎片)。但段换入换出时,会产生外碎片(比如4k的段换5k的段,会产生1k的外碎片)。

操作系统中进程调度策略有哪几种?

  • FCFS(先来先服务,队列实现,非抢占的):先请求CPU的进程先分配到CPU
  • SJF(最短作业优先调度算法):平均等待时间最短,但难以知道下一个CPU区间长度
  • 优先级调度算法(可以是抢占的,也可以是非抢占的):优先级越高越先分配到CPU,相同优先级先到先服务,存在的主要问题是:低优先级进程无穷等待CPU,会导致无穷阻塞或饥饿;解决方案:老化
  • 时间片轮转调度算法(可抢占的):队列中没有进程被分配超过一个时间片的CPU时间,除非它是唯一可运行的进程。如果进程的CPU区间超过了一个时间片,那么该进程就被抢占并放回就绪队列。
  • 多级队列调度算法:将就绪队列分成多个独立的队列,每个队列都有自己的调度算法,队列之间采用固定优先级抢占调度。其中,一个进程根据自身属性被永久地分配到一个队列中。
  • 多级反馈队列调度算法:与多级队列调度算法相比,其允许进程在队列之间移动:若进程使用过多CPU时间,那么它会被转移到更低的优先级队列;在较低优先级队列等待时间过长的进程会被转移到更高优先级队列,以防止饥饿发生。

说一说进程同步有哪几种机制

原子操作、信号量机制、自旋锁管程、会合、分布式系统

什么是虚拟内存?

内存的发展历程

没有内存抽象(单进程,除去操作系统所用的内存之外,全部给用户程序使用) —> 有内存抽象(多进程,进程独立的地址空间,交换技术(内存大小不可能容纳下所有并发执行的进程)

)—> 连续内存分配(固定大小分区(多道程序的程度受限),可变分区(首次适应,最佳适应,最差适应),碎片) —> 不连续内存分配(分段,分页,段页式,虚拟内存)

虚拟内存

虚拟内存允许执行进程不必完全在内存中。虚拟内存的基本思想是:每个进程拥有独立的地址空间,这个空间被分为大小相等的多个块,称为页(Page),每个页都是一段连续的地址。这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序。当程序引用到一部分在物理内存中的地址空间时,由硬件立刻进行必要的映射;当程序引用到一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的命令。这样,**对于进程而言,逻辑上似乎有很大的内存空间,实际上其中一部分对应物理内存上的一块(称为帧,通常页和帧大小相等),还有一些没加载在内存中的对应在硬盘上,**如下图所示。

(答え)アリ、Baiduは、Jingdongは(SP)、オペレーティングシステム、Huawei社の顔の質問のハイライト

注意,请求分页系统、请求分段系统和请求段页式系统都是针对虚拟内存的,通过请求实现内存与外存的信息置换。

由上图可以看出,虚拟内存实际上可以比物理内存大。当访问虚拟内存时,会访问MMU(内存管理单元)去匹配对应的物理地址(比如上图的0,1,2)。如果虚拟内存的页并不存在于物理内存中(如上图的3,4),会产生缺页中断,从磁盘中取得缺的页放入内存,如果内存已满,还会根据某种算法将磁盘中的页换出。

页面置换算法

  1. FIFO先进先出算法:在操作系统中经常被用到,比如作业调度(主要实现简单,很容易想到);
  2. LRU(Least recently use)最近最少使用算法:根据使用时间到现在的长短来判断;
  3. LFU(Least frequently use)最少使用次数算法:根据使用次数来判断;
  4. OPT(最適交換)最適な置換アルゴリズム:最高の理論、理論は、つまり、交換がページの外に使用されなくなっていることを確認していない、または実メモリに最新のアルゴリズムを使用します。

仮想メモリの応用と利点

仮想メモリは、同時にメモリに格納されたマルチチャネル・プログラミング・システム、プログラムの多くの断片の使用に適しています。プログラムがメモリにその一部を待っているときは、別のプロセスにCPUを使用することができます。仮想メモリの使用は、次のような利点をもたらすことができます。

  1. メモリシステムの並行性を向上させる、複数のプロセスを保持することができ
  2. ユーザとメモリとの間の緊密な制約のリフティングは、プロセスは、全体のメモリ空間よりも大きくすることができます

バンプ

でこぼこで、本質的に頻繁にページのスケジューリング動作を指し、具体的には、ページフォルトが発生したプロセスは、それから、それはページに置き換える必要があります。しかし、他のすべてのページが使用されている、それがページに置き換えられますが、もう一度このページを必要としています。したがって、我々は、システム全体の効率の急激な低下、バンプとして知られる現象(ジッタ)が得られ、ページフォールトを発生し続けます。

メモリでこぼこ解決戦略は、次のとおりです。

  • 交換用のページ政策ミスので、それがある場合は、この問題を解決するために交換用のアルゴリズムを変更することができます。
  • 同時に実行されている、あまりにも多くのプログラムがメモリへのすべてのアクセス頻度の高いページへのプログラムは発生しませんので、それがある場合は、マルチチャネル・プログラムの数を減らす必要があります。
  • それ以外の場合は、2つのオプションがありました:プロセスを終了するか、物理メモリの量を増やします。

地域の原理

  1. 時間の地域:最近アクセスしたページは、近い将来にアクセスされます。
  2. 空間にローカライズ:アクセスされているページメモリ周りのページにもアクセスされる可能性が高いです。

終わり

友人が少し賞賛と注目、著者のサポートを覚えているように、あなたに感謝

おすすめ

転載: blog.csdn.net/qwe123147369/article/details/92646371