2019年5月25日
ページ置換アルゴリズム
メモリページフォルトが発生した場合、あなたが既にメモリに空きがある場合、あなたは、コールの直後に選択したページ・テーブルを変更することができます。
スペースがない場合は、それが特定のページを呼び出す必要があり、ページが、それらに転送されているので、具体的に関連したスケジューリングアルゴリズムに関連したページを思い出します。
1.いくつか持っているページング・アルゴリズム、?
プロセス
2019年5月30日
2.各プロセスは、単一のPCBに対応し、プロセス制御ブロック、使用することは何ですか?ユニークなプロセスの存在をどうされている識別?
2019年5月31日
3には何がPCB?
4.プロセスの5ライフサイクルのステージ?
5.あなたは下の3例のプロセスを作成することができますか?
6. 3例その下で、プロセスがブロッキング状態に入りますか?誰が実行状態からブロックされたプロセスに入ることを決定しますか?
7.両方のケースでは、プロセスが目を覚ます入りしてからの目覚めのプロセス、?
8.プロセスの三つの基本的な状況?それぞれのケースで動作状態がレディ状態または遮断状態に変換されますか?
2019年6月1日
9.中断プロセスとは何ですか?いくつかに分割して、プロセスをサスペンド?
10.どのようにOSの管理プロセス?
11.従来のプロセスの歴史、唯一のスレッドは、何も考えがない、なぜスレッドべきでしょうか?
12.スレッドが何であるか、プロセスとは何か、スレッドは、プロセスが持つことができないものの特性を持っていますか?
13.一般的にブラウザは、スレッドの崩壊、その共有コードの完全な崩壊である1ページの崩壊は、すべてのページが崩壊している場合は、使用されるページは、プロセスを共有達成するためのプロセスを使用することですが、GoogleのChorome各ブラウザは、ブラウザがプロセスを手配しているので、それらの間の干渉がありません。
14.高速スイッチングプロセスとスレッド、なぜ?
15.スレッド主な方法の3種類が達成するために?
16.スレッド複製フォークスレッドのために、子スレッドを生成することができ、親スレッドは、Linuxシステム、機能スレッドのフォークを作成していると)(二つの機能を実行し、子供を書き換えるためのexec、その後、親プロセス子スレッドは、これが理由で、終了を待ちますが、操作を待つのですか?
17.順位コンセプトを説明しました
- CPUの使用率
- スループット
- ターンアラウンド・タイム
- 応答時間
- 待ち時間
18.いくつかのスケジューリングアルゴリズムのプロセス?
19.プリエンプトされるプロセス上のオペレーティングシステムとは何か、そしてノンプリエンプティブ?
20. CPUバーストプロセスの場合、CPUはしばしば見積りとするとき、プロセス全体、前の2回のサイクルで、最後の実行について、正確にどのくらいそのプロセスを知ることは容易ではありません。
21.何HRRNプロセスのスケジューリングアルゴリズム?
22.ラウンドロビンアルゴリズム?
23.上記に示したように、単一のプロセスのスケジューリングアルゴリズムは、多くの場合、アカウントに、プロセスの平均所要時間、平均応答時間を取るために失敗し、オペレーティングシステムがどのようにこれらのアルゴリズムを行う両立するには?
24.スケジューリングアルゴリズムのプロセスでは、多段フィードバックキューは何ですか?
25.リアルタイムシステム、特徴は何リアルタイムシステムは、そのスケジューリングアルゴリズムとは何ですか?
26.プロセス間およびスイッチングのプロセス内のスレッドの切り替えは、それのカーネルによって制御されていますか?
27.リングのリソース間のデッドロックがなければなりませんが、リングは、必ずしも、サイクルが所有鳴りませんデッドロック、デッドロック、それではないでしょうか?
27.
示されるように、各リソース・クラスは、それぞれのインスタンスは1つだけ、すなわちリソース、デッドロックが必然的に発生した場合
28.デッドロック必要な4つの条件?
28。
- 排他的
- 持ち、待ち続けます
- 奪うことができません
- 円形待ち
29.デッドロックの態度やアプローチのためのオペレーティングシステム:
オペレーティングシステムの処理オーバーヘッドのデッドロックがあまりにも、この問題に対処するための制約の多くを作成する必要があるので、それがないことによって、一般的に書かれた手順に注意しなければならない問題ですオペレーティングシステムは完了です。
30.デッドロック防止、デッドロック回避、デッドロックとデッドロック解決の強度が減少している、どのように方法はありますか?
30。
デッドロック防止の
デッドロック防止の強さは、コアは、デッドロックのために必要な4つの条件を解決することであり、その目的は、絶対にデッドロックではありません、最大で
- ------これは比較的小さく、相互に排他的で相互に排他的なリソースは、相互に排他的ではないになりましょう。
- --------リソース要求とプロセスを維持するためには、すべてのリソースへの1回のアクセスを行うことができますが、飢餓のプロセスになりやすい、非効率的です。
- ------不可侵を奪わこと(プロセスを殺すために)利用可能になります。
- ------このようなシステムは、一般的に多くのリソースではないため、一般的に組み込みシステムで見つかった、特定の塩基配列決定のプロセスに従って、リソースのオーダーサイクルセットを待っています。
デッドロック回避
のデッドロック回避コア:システムが危険な状態に入ることはありませんことを確認します。
周知のアルゴリズム:銀行家のアルゴリズムは、
完全に、デッドロックを排除し、主にプロセスアプリケーションのための情報システムリソース、実行することはできませんチェックを、それがであるかどうかを判断するためにデッドロックは、発生した場合、対応するリソースが投与されていません。
主に起因します:
- 预先声明进程所需要的资源最大数,进行限定分配
- 动态检查资源分配情况,确保没有环形等待。
PS:环形等待状态并不意味着死锁,但这是一种不安全的状态。
31. 什么是管程,管程有哪些特点?
31.
管程是操作系统为进程并发管理所定义的一个数据结构,这个数据结构包含了对进程的操作。
管程的一些特性:
- 模块化:管程作为一个数据结构,可以作为程序单独编译。
- 封装性:具体内部的函数可以不可见,但提供接口外部供调用
- 抽象的数据结构:里面不仅有数据,还有对数据的操作。
- 互斥:每次只允许一个进程在管程中进行。
答案
1.
- 最优页面调度算法
- 最近最少使用页面调度算法(LRU)
- 时钟页面调度算法(Clock)
- 二次算法(改进时钟算法)
- 还有个奇怪的算法
2.
PCB控制块,是操作系统控制进程运行所用的信息集合。
当进程被创建时,一个PCB块页随之产生,da那个进程终止时,回收其PCB块。
一个进程对应一个单独的PCB控制块,所以PCB块是进城的唯一识别标识。
3.
PCB是一个进程存在的标识,所以其包括的内容有三类:
- 进程的标识信息,相当于身份证号,包括进程的标识,其父进程的标识,用户标识等。
- 进程的状态信息保存区,用来保存进程的运行现场。比如各种寄存器和栈指针等。
- 进程的控制信息。比如状态信息,进程间通信信息,所用资源等。
4.
分别是:创建、运行、等待(堵塞)、唤起、结束。
5.
进程创建的三种情况:
- 系统初始化创建
- 用户请求创建新进程
- 通过父进程创建,即正在执行的进程执行了创建新进程的系统调用。
6.
进程阻塞的三种情况:
- 请求并等待CPU的服务
- 等待数据资源
- 启动某种操作,无法马上完成
一般理解是进程自己阻塞了自己,因为只有进程自身才知道自己何时要等待某种事件的发生,即进入等待状态。
7.
- 等待的事件已下达,比如请求的CPU指令已下达
- 需要的资源已经满足
当进程被唤醒时,将该进程的PCB插入到就绪队列中。
8.
就绪、等待和运行状态。
状态与生命期不一样,线程的五个状态是,创建,就绪,等待,运行和死亡。
时间片用完时,运行态转为就绪态,等待事件时,转入堵塞态。
五种基本状态如图:
9.
挂起,顾名思义,就是挂出去,这里是指从内存挂到外存中去,基于需存的概念,当程序暂时不用时,可将进程挂起,放到磁盘上。
进程挂起分为就绪到就绪挂起、阻塞到阻塞挂起和运行到就绪挂起。
其中优先级的关系是,阻塞转为阻塞挂起>就绪专为就绪挂起>运行转为就绪挂起,但最优先考虑的还是进程本身的优先级,优先级高的自然先处理他的状态,不管是就绪、等待还是运行,都先考虑它。
如果要把阻塞挂起重新变为运行状态,需要把它变为就绪挂起,再变为就绪,再变为运行。
注意:阻塞挂起状态可以变为就绪挂起状态,如果其优先级高,也可以从外存写入内存,变为阻塞状态。
10.
OS通过PCB来控制和管理进程,进程有不同的状态,不同的状态下,各有一个队列。
严格意义上讲,不只是一个队列,如下图:
11.
对于以下问题:
如果是这样的程序,在解压的时候,就没有读取和播放,设备利用率很低。
如何实现并发和充分利用流水线操作,需要引入线程的概念,每一个线程单独执行任务。
12.
进程可以从两个方面来理解
- 资源平台
- 可执行的代码——也就是线程
线程是进程中的一条执行流程,线程可以并发,而且线程具有相同的存储空间。
线程也有对应的线程控制块TCB(Tread Control Block)
14.
切换线程快,因为线程都在同一个存储空间里,不需要切换页表,而不同进程的存储空间不同,需要切换页表,花费更多时间。
15.
- 用户线程:操作系统看不见(操作不了)的线程。
- 内核线程:操作系统看得见的线程。(TCB块放在内核中)
- 轻量级进程:目前Solaris和Linux操作系统采取的方式,是内核支持的用户线程,一个进程可以有一个或多个轻量级进程组成,每个轻量级进程由一个单独的内核线程来支持。
现在的Windows系统主要采取内核线程的实现方式,来实现线程的创建、终止、管理和调度等,缺点是切换线程、终止线程的开销要稍微大一点。
用户线程的优缺点
优点:快,因为无需在内核中进行
缺点:
- 当线程阻塞时,用户线程对应的进程也会堵塞,因为操作系统无法中断该线程,让其他线程继续运行。
- 操作系统无法控制线程,只能等线程主动交出CPU使用权后,该进程里的其他线程才可以使用对应的资源。
- 操作系统的时间片是按照进程分的,所以具体到线程的时间片会比较少,速度可能会比较慢。(而内核线程的时间片是按照线程分的,时间更多)
内核线程的优缺点
优点:时间片多,由操作系统直接操作,可停止线程,帮助协调使用CPU的资源。
缺点:开销大,每一次线程的切换都对应了从内核态到用户态的切换。(而用户线程则一直在用户态实现)
16.
因为操作系统只能处理父进程的资源回收,而子进程的资源回收需要父进程完成。所以需要用wait函数等到子进程的exit函数返回对应的值后,执行其资源回收。
17.
一个良好的操作系统进程调度算法希望实现:
18.
19.
当一个进程进行到一半,能够被其他进程打断抢占资源的时候,是抢占的。比如一个进程共用时9,已经用了2,但是来了一个新的进程,用时是5,那么可抢占的情况下,该进程会从运行态转为就绪态,换新的进程进行。
这种进程调度算法叫SRT:Shortest Remain-Time. 最短剩余时间算法,是SPN的变种
最短作业优先算法的平均周转时间是最小的:
算法的缺点:
20.
具体如下:
21.
不仅考虑进程执行的时间,还考虑了响应的时间
22.
轮训算法,也是时间片算法,就是给每个进程同样的时间片,比较公平,但是平均进程等待时间较久,而且切换上下文需要开销。
所以时间片的设置要合理,一般经验来说,早期Linux时间片为0.01秒,后来随着性能提升,变为了0.001秒。
23.
非常にシンプルな、オペレーティング・システムはFCFS、RR、SPNを学んだプロセスの異なる特性の異なるアルゴリズムスケジューリングを使用して、HRRNアルゴリズムが
レディ状態が異なるキューに分かれて処理することができます。
優先度の高いため、非常にために重要なのは、あなたはRRアルゴリズムを使用することができ
、非常に重要ではない、あなたは最初に、シンプルで実用的なFCFSを、サーブ、来まず、同様のアルゴリズムのバッチを取ることができ、低い優先順位を。
24. A
マルチレベルフィードバックキュースケジューリングアルゴリズムは、プロセス・スケジューリング・アルゴリズムは、短い運転優先順位に応答して得られた高優先度処理の優先度の両方のためのアルゴリズムであり、プロセスの異なる優先順位が異なる時間量に対応することを特徴とします、時間量子以内に、その優先順位が削減されるプロセスを完了しませんでした、
まとめプロセスのスケジューリングアルゴリズム:
25.
リアルタイムリアルタイムシステムは、一般に、時間の重要な要件ことを特徴とする工作機械やその他の機器のシステムを指し、それは時間の重要性ある性能よりも高くなる可能性があります。
- ハードリアルタイムシステム:例えば、マシンはそれ以外の場合は、死傷者が発生します、ポイントをオフにする必要があります
- そのようなビデオ分析を見ているように、スナップすることができますが、最高:ソフトリアルタイムシステム
26.
二段階で切り替えるプロセス:
1.ディレクトリを変更し、新しいページのアドレス空間を使用する
2.スイッチのハードウェアとカーネルスタックコンテキスト
Linux用には、最大の違いは、スレッドの切り替えのためにそのスレッドやプロセスのアドレス空間で、ステップ1行うのに必要な、第二は、スイッチングが行われ、プロセスのスレッドでされていません。