<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OS アーカイブ - Archive of Yone</title>
	<atom:link href="https://elite-lane.com/tag/os/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Wed, 24 Mar 2021 07:05:06 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.4</generator>

<image>
	<url>https://elite-lane.com/wp-content/uploads/2018/07/cropped-greenapple-logo2-1-32x32.jpg</url>
	<title>OS アーカイブ - Archive of Yone</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【図解】パソコンのOSとは？OSの仕組み･役割を解説</title>
		<link>https://elite-lane.com/operating-system/</link>
					<comments>https://elite-lane.com/operating-system/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 18 May 2019 13:17:11 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[OS]]></category>
		<guid isPermaLink="false">https://elite-lane.com/?p=4508</guid>

					<description><![CDATA[<p>【図解】パソコンのOSとは？OSの仕組み･役割を解説 OS（Operating System）とは、コンピュータの 操作 運用 運転 を司る基本ソフトウェアです。 OSは ユーザーやアプリケーションプログラムとハードウェ [&#8230;]</p>
<p>投稿 <a href="https://elite-lane.com/operating-system/">【図解】パソコンのOSとは？OSの仕組み･役割を解説</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<h1>【図解】パソコンのOSとは？OSの仕組み･役割を解説</h1>
<p><span class="bold">OS（Operating System）</span>とは、コンピュータの</p>
<ul>
<li>操作</li>
<li>運用</li>
<li>運転</li>
</ul>
<p>を司る基本ソフトウェアです。</p>
<p><span class="bold">OS</span>は</p>
<ul>
<li>ユーザーやアプリケーションプログラムとハードウェアの中間に位置</li>
<li>ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供</li>
<li>ハードウェアなどの各リソースに対して効率的な管理</li>
</ul>
<p>を行います。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-17-at-15.33.49.png"><img fetchpriority="high" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-17-at-15.33.49.png" alt="OS" width="538" height="366" class="aligncenter size-full wp-image-4554" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-17-at-15.33.49.png 538w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-17-at-15.33.49-300x204.png 300w" sizes="(max-width: 538px) 100vw, 538px" /></a></p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-11.03.16.png"><img decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-11.03.16.png" alt="ソフトウェア" width="589" height="381" class="aligncenter size-full wp-image-4491" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-11.03.16.png 589w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-11.03.16-300x194.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></a></p>
<p>この記事では<span class="bold">OS</span>の役割について解説していきます。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"></li><li><a href="#toc1" tabindex="0">OSの役割</a><ol><li><a href="#toc2" tabindex="0">プロセス管理</a><ol><li><a href="#toc3" tabindex="0">タスク（プロセス）の状態</a></li></ol></li><li><a href="#toc4" tabindex="0">記憶管理</a><ol><li><a href="#toc5" tabindex="0">実記憶管理</a></li><li><a href="#toc6" tabindex="0">仮想記憶管理</a></li></ol></li><li><a href="#toc7" tabindex="0">入出力装置管理</a><ol><li><a href="#toc8" tabindex="0">入出力制御方式</a></li></ol></li><li><a href="#toc9" tabindex="0">ファイル管理</a><ol><li><a href="#toc10" tabindex="0">ファイルシステムの種類</a></li><li><a href="#toc11" tabindex="0">ファイルシステムの構造</a></li><li><a href="#toc12" tabindex="0">ファイル構成</a></li></ol></li><li><a href="#toc13" tabindex="0">APIの提供</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">OSの役割</span></h2>
<p><img decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/os-min.jpeg" alt="OSの役割" width="640" height="426" class="aligncenter size-full wp-image-9544" srcset="https://elite-lane.com/wp-content/uploads/2020/05/os-min.jpeg 640w, https://elite-lane.com/wp-content/uploads/2020/05/os-min-300x200.jpeg 300w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p><span class="bold">OS</span>の主な役割には</p>
<ul>
<li>プロセス管理</li>
<li>記憶管理</li>
<li>入出力装置管理</li>
<li>ファイル管理</li>
<li>APIの提供</li>
</ul>
<p>があります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-6.46.17-min.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-6.46.17-min.png" alt="OSの役割" width="1258" height="483" class="aligncenter size-full wp-image-9543" srcset="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-6.46.17-min.png 1258w, https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-6.46.17-min-300x115.png 300w, https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-6.46.17-min-1024x393.png 1024w, https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-6.46.17-min-768x295.png 768w" sizes="(max-width: 1258px) 100vw, 1258px" /></a></p>
<h3><span id="toc2">プロセス管理</span></h3>
<p>プロセス（Process：手順）とは、ユーザが与えた仕事（ジョブ：Job）をする為の一連の操作系列を実行する事を指します。</p>
<p>プロセスはタスク（task）とも呼ばれます。</p>
<p>一般的にプロセスは実行中のプログラムと解釈されます。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.05.23.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.05.23.png" alt="プロセス管理" width="338" height="383" class="aligncenter size-full wp-image-4497" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.05.23.png 338w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.05.23-265x300.png 265w" sizes="(max-width: 338px) 100vw, 338px" /></a></p>
<h4><span id="toc3">タスク（プロセス）の状態</span></h4>
<p>タスク（プロセス）は、生成されてから消滅するまでに三つの状態の間を遷移します。</p>
<ol>
<li>実行状態・・・CPUを使用し実行中の状態</li>
<li>実行可能状態・・・タスク（プロセス）は実行可能だが、他の（優先順位の高い）タスク（プロセス）が実行中のため待機している状態</li>
<li>待ち状態・・・入出力待ち等によりCPUの使用権を与えられても使用できない待ちの状態</li>
</ol>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.14.01.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.14.01.png" alt="タスク（プロセス）の状態" width="710" height="267" class="aligncenter size-full wp-image-4496" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.14.01.png 710w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-13.14.01-300x113.png 300w" sizes="(max-width: 710px) 100vw, 710px" /></a></p>
<h3><span id="toc4">記憶管理</span></h3>
<p>プログラムをCPUが実行する為には、プログラムにある</p>
<ul>
<li>命令</li>
<li>データ</li>
</ul>
<p>をCPUがすぐに取り出せる場所に置いておく必要があります。</p>
<p>そのすぐに取り出せる場所がメモリになります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-17-at-9.10.24.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-17-at-9.10.24.png" alt="記憶管理" width="930" height="392" class="aligncenter size-full wp-image-4177" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-17-at-9.10.24.png 930w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-17-at-9.10.24-300x126.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-17-at-9.10.24-768x324.png 768w" sizes="(max-width: 930px) 100vw, 930px" /></a></p>
<p><span class="bold">OS</span>とCPUは相互に連携してメモリを効率よく管理するために様々な方式を利用しています。</p>
<ul>
<li>実記憶管理・・・明示的にプログラムをHDD・SSDへの追い出しを行う管理方式</li>
<li>仮想記憶管理・・・OSがプログラムのうち使用頻度が低い部分を自動的にHDD・SSDに追い出す管理方式
<ul>
<li>OSがアクセスしたアドレスをメモリに配置</li>
<li>残りをHDD・SSDに配置</li>
</ul>
</li>
</ul>
<h4><span id="toc5">実記憶管理</span></h4>
<p>プログラムをCPUが実行するためには、HDD・SSDに格納されているプログラムをメモリに読み込む必要があります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-11-at-9.44.43.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-11-at-9.44.43.png" alt="実記憶管理" width="838" height="331" class="aligncenter size-full wp-image-4115" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-11-at-9.44.43.png 838w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-11-at-9.44.43-300x118.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-11-at-9.44.43-768x303.png 768w" sizes="(max-width: 838px) 100vw, 838px" /></a></p>
<p>実記憶管理では、メモリにあるプログラムを効率的に配置し、メモリを有効に利用します。</p>
<p>実記憶管理には、</p>
<ul>
<li>固定区画方式</li>
<li>可変区画方式</li>
<li>スワッピング方式</li>
<li>オーバーレイ方式</li>
</ul>
<p>があります。</p>
<h5>固定区画方式</h5>
<p>メモリの容量を予め一定の大きさの区画に分け、その領域にプログラムを読み込む方法を指します。</p>
<p>プログラムの読み込み後、区画上に残っている空き領域は使用されません。</p>
<h6>単一区画方式</h6>
<p>単一区画方式では、メモリを一つの区画とし、この区画にプログラムを読み込見ます。</p>
<p>メモリ上には、一つのプログラムしか存在しません。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.46.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.46.png" alt="単一区画方式" width="304" height="428" class="aligncenter size-full wp-image-4515" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.46.png 304w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.46-213x300.png 213w" sizes="(max-width: 304px) 100vw, 304px" /></a></p>
<h6>多重区画方式</h6>
<p>多重区画方式は、メモリを一定の大きさの区画に分割し、区画ごとにプログラムを読み込む方式です。</p>
<p>この方式では、区画よりも大きなサイズのプログラムを読み込んで実行することは出来ません。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.55.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.55.png" alt="多重区画方式" width="412" height="426" class="aligncenter size-full wp-image-4514" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.55.png 412w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-18.42.55-290x300.png 290w" sizes="(max-width: 412px) 100vw, 412px" /></a></p>
<h5>可変区画方式</h5>
<p>プログラムの大きさに応じて、メモリ上の区画の大きさを変えることで、メモリを有効に利用する方式です。</p>
<p>可変区画方式では、プログラムの必要とするサイズがそれぞれ異なるため、様々なプログラムの実行や終了などを繰り返すことで、メモリ上の空き領域がさまざまな領域に散在してしまいます。</p>
<p>合計のメモリ空き容量が十分な大きさにもかかわらず、プログラムをメモリ上に読み込めなくなってしまうことがあります。</p>
<p>この状態をフラグメンテーション（断片化）と呼びます。</p>
<p>フラグメンテーションが起こると</p>
<ol>
<li>プログラムを読み込めなくなり</li>
<li>メモリ上のプログラムを再配置</li>
<li>メモリの空き領域を集め</li>
<li>一つの大きな空き領域を創造</li>
</ol>
<p>このメモリの空き領域の再配置をコンパクション（Compaction：圧縮）と言います。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-19.05.49.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-19.05.49.png" alt="可変区画方式" width="1237" height="413" class="aligncenter size-full wp-image-4513" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-19.05.49.png 1237w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-19.05.49-300x100.png 300w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-19.05.49-768x256.png 768w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-09-at-19.05.49-1024x342.png 1024w" sizes="(max-width: 1237px) 100vw, 1237px" /></a></p>
<h5>スワッピング方式</h5>
<p>スワッピング方式は、</p>
<ul>
<li>複数プログラムの実行中を想定</li>
<li>実行待ちなどのプログラムをHDD・SSDに追い出す</li>
</ul>
<p>という方式になります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.19.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.19.png" alt="スワッピング方式" width="560" height="402" class="aligncenter size-full wp-image-4505" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.19.png 560w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.19-300x215.png 300w" sizes="(max-width: 560px) 100vw, 560px" /></a></p>
<h5>オーバーレイ方式</h5>
<p>オーバーレイ方式は</p>
<ul>
<li>一つのプログラムを分割してHDD・SSDに追い出すことを想定</li>
<li>プログラムの一部（セグメント）は管理部として必ず残す</li>
</ul>
<p>という方式になります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.28.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.28.png" alt="オーバーレイ方式" width="546" height="411" class="aligncenter size-full wp-image-4504" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.28.png 546w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-20.24.28-300x226.png 300w" sizes="(max-width: 546px) 100vw, 546px" /></a></p>
<h4><span id="toc6">仮想記憶管理</span></h4>
<p>CPUで処理されるプログラムのデータや命令は，メモリに準備され格納されている必要があります。</p>
<p>つまり、メモリの容量が不足すると、プログラムの実行は出来ません。</p>
<p>その問題を解決するのが，仮想記憶管理という仕組みです。</p>
<p>仮想記憶管理により、コンピュータに搭載されているメモリ容量よりも大きなメモリ空間が提供され、物理的なメモリの量を超えて</p>
<ul>
<li>プログラムを複数起動</li>
<li>大きなデータファイルを扱える</li>
</ul>
<p>事が出来ます。</p>
<p>実際の仮想記憶管理は，</p>
<ul>
<li>メモリ</li>
<li>HDD・SSD</li>
</ul>
<p>のハードウェアから成り立っています。</p>
<p>仮想記憶管理を使うことで、</p>
<ul>
<li>物理メモリ空間・・・実装されているメモリ全体が扱う空間</li>
<li>仮想アドレス空間・・・プログラムが扱う空間</li>
</ul>
<p>と分離が可能です。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.38.14.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.38.14.png" alt="仮想記憶管理" width="1220" height="356" class="aligncenter size-full wp-image-4547" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.38.14.png 1220w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.38.14-300x88.png 300w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.38.14-768x224.png 768w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.38.14-1024x299.png 1024w" sizes="(max-width: 1220px) 100vw, 1220px" /></a></p>
<p><span class="bold">OS</span>が持つ仮想記憶管理機能は、メモリ管理ユニット（Memory Management Unit：MMU）が管理しています。</p>
<p>メモリ管理ユニット（Memory Management Unit：MMU）ではCPUの要求するメモリアクセスを処理しており、主な機能には、</p>
<ul>
<li>仮想アドレスを物理アドレスに変換する機能（仮想記憶管理機能）</li>
<li>メモリ保護機能</li>
<li>キャッシュ制御機能</li>
<li>バス調停機能 等々</li>
</ul>
<p>があります。</p>
<p>特に、この仮想アドレスを物理アドレスに変換を行うCPU内部のハードウェアを「動的アドレス変換機構（DAT：Dynamic Address Translation）」と言います。</p>
<p>仮想記憶管理の具体的な仕組みを、アプリケーションAというプログラムの実行を例に取って説明します。</p>
<p>前提条件として、物理メモリ空間のメモリ上ではアプリケーションAというプログラム以外にも複数のプログラムがプロセス中だとします。</p>
<ol>
<li>アプリケーションAのプロセス実行</li>
<li>アプリケーションAのプロセス実行により物理メモリ空間のメモリの容量を使い果たす</li>
<li>OSの仮想記憶管理により物理メモリ空間のメモリの中で、アプリケーションAを
<ul>
<li>CPUに使用されていない部分 -> 補助記憶装置（HDD・SSD）に移動・保存</li>
<li>CPUに使用されている部分 -> メモリに保存</li>
</ul>
<p>とそれぞれに分割</li>
<li>物理メモリ空間のメモリに未使用領域を確保</li>
</ol>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.40.04.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.40.04.png" alt="仮想記憶管理" width="1138" height="345" class="aligncenter size-full wp-image-4545" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.40.04.png 1138w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.40.04-300x91.png 300w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.40.04-768x233.png 768w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.40.04-1024x310.png 1024w" sizes="(max-width: 1138px) 100vw, 1138px" /></a></p>
<p>プログラム（アプリケーション）はブロックに分割されています。</p>
<p>各ブロックは，</p>
<ul>
<li>物理メモリ空間のメモリ</li>
<li>補助記憶装置（HDD・SSD）</li>
</ul>
<p>どちらかにあります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.39.45.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.39.45.png" alt="仮想記憶管理" width="1223" height="345" class="aligncenter size-full wp-image-4546" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.39.45.png 1223w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.39.45-300x85.png 300w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.39.45-768x217.png 768w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-18.39.45-1024x289.png 1024w" sizes="(max-width: 1223px) 100vw, 1223px" /></a></p>
<p>各ブロックが</p>
<ul>
<li>物理メモリ空間のメモリ</li>
<li>補助記憶装置（HDD・SSD）</li>
</ul>
<p>のどちらに存在するかの対応付けを行うのが「変換テーブル」になります。</p>
<p>「変換テーブル」によって，各ブロックごとに</p>
<ul>
<li>フラグビットでは、そのブロックが
<ul>
<li>物理メモリ空間のメモリ</li>
<li>補助記憶装置（HDD・SSD）</li>
</ul>
<p>どちらにあるのかを区別</li>
<li>実際のブロック・アドレスでは、
<ul>
<li>物理メモリ空間のメモリのアドレス（物理アドレス）</li>
<li>補助記憶装置（HDD・SSD）上のアドレス</li>
</ul>
<p>を記録
</li>
</ul>
<p>このように認識されており、「変換テーブル」によって，仮想アドレス空間のブロックが実際にどこにあるかが分かります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-15-at-18.44.39.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-15-at-18.44.39.png" alt="変換テーブル" width="775" height="494" class="aligncenter size-full wp-image-4525" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-15-at-18.44.39.png 775w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-15-at-18.44.39-300x191.png 300w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-15-at-18.44.39-768x490.png 768w" sizes="(max-width: 775px) 100vw, 775px" /></a></p>
<p>仮想記憶管理には大きく分けて</p>
<ul>
<li>ページング方式</li>
<li>セグメント方式</li>
</ul>
<p>の二種類があります。</p>
<p>ページング方式とセグメント方式の違いを一冊の本で例えると</p>
<ul>
<li>ページング方式・・・文字通り「ページ」、固定長</li>
<li>セグメント方式・・・「章」，不定長（一章のページ数は章によって様々）</li>
</ul>
<p>になります。</p>
<h5>ページング方式</h5>
<p>ページング方式とは、プログラムをページと呼ばれる固定長に区切り、仮想アドレス空間を使い、</p>
<ul>
<li>物理メモリ空間のメモリ</li>
<li>補助記憶装置（HDD・SSD）</li>
</ul>
<p>に効率的に配置する方式です。</p>
<div class="information-box">
ページング方式では実際に、プログラムを 1 ～ 4 Kの固定長の大きさのページに分割しています。
</div>
<p>CPUの各命令・実行ごとに「動的アドレス変換機構（DAT：Dynamic Address Translation）」が「変換テーブル」にアクセスし、仮想アドレス空間の仮想アドレスから</p>
<ul>
<li>物理アドレス</li>
<li>補助記憶装置（HDD・SSD）上のアドレス</li>
</ul>
<p>を導き出します。</p>
<p>ページフォルト（物理メモリ空間のメモリ上に必要なページが存在しない）が発生した場合、</p>
<ul>
<li>ページイン・・・必要なページを物理メモリ空間のメモリへ転送</li>
<li>ページアウト・・・物理メモリ空間のメモリ上で最も使用頻度の低いページから順に補助記憶装置に転送</li>
</ul>
<p>ページの入れ替えをします。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.05.11.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.05.11.png" alt="ページング方式" width="1139" height="341" class="aligncenter size-full wp-image-4548" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.05.11.png 1139w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.05.11-300x90.png 300w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.05.11-768x230.png 768w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.05.11-1024x307.png 1024w" sizes="(max-width: 1139px) 100vw, 1139px" /></a></p>
<h5>セグメント方式</h5>
<p>セグメント方式はページング方式とほぼ同様の方式です。</p>
<p>プログラムのブロックの大きさが固定長では無く、セグメントという論理的な可変長になります。</p>
<p>ページング方式の</p>
<ul>
<li>ページイン</li>
<li>ページアウト</li>
</ul>
<p>の事をセグメント方式では、</p>
<ul>
<li>ロールイン</li>
<li>ロールアウト</li>
</ul>
<p>と言います。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.09.03.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.09.03.png" alt="セグメント方式" width="1142" height="340" class="aligncenter size-full wp-image-4549" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.09.03.png 1142w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.09.03-300x89.png 300w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.09.03-768x229.png 768w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-16-at-19.09.03-1024x305.png 1024w" sizes="(max-width: 1142px) 100vw, 1142px" /></a></p>
<h3><span id="toc7">入出力装置管理</span></h3>
<p>入出力装置管理とは、コンピュータ本体と入出力装置との間の入出力の管理の事を指します。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-17.00.39.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-17.00.39.png" alt="入出力装置管理" width="534" height="334" class="aligncenter size-full wp-image-4500" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-17.00.39.png 534w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-17.00.39-300x188.png 300w" sizes="(max-width: 534px) 100vw, 534px" /></a></p>
<p>入出力方式には、</p>
<ul>
<li>OS全体での標準的な入出力方式</li>
<li>装置ごとの固有の処理を仲介する方式</li>
</ul>
<p>があります。</p>
<p>装置ごとの固有の処理のアダプタとなるプログラムをデバイスドライバといいます。</p>
<p>データの入出力は、</p>
<ul>
<li>バッファリング（buffering）・・・バッファリング（buffering）とは、バッファを経由させることによって、コンピュータ本体と入出力装置を並行処理させて性能を向上させる方法です。
<p>バッファ（buffer：保存領域）とは入出力のためのメモリ上に確保される領域の事です。</li>
<li>スプーリング（spooling）・・・プリンタなどの低速な装置の入出力データを、高速な外部記憶装置を経由させることによって性能を向上させる方法</li>
</ul>
<p>があります。</p>
<h4><span id="toc8">入出力制御方式</span></h4>
<p>各種の入出力装置を効率よく動作させる方式として</p>
<ul>
<li>プログラム制御方式</li>
<li>DMA（Direct Memory Access）方式</li>
<li>チャネル制御方式</li>
</ul>
<p>があります。</p>
<h5>プログラム制御方式</h5>
<p>プログラム制御方式では</p>
<ol>
<li>プログラム中の入出力命令を実行</li>
<li>レジスタを経由</li>
<li>メモリと入出力装置間でデータをやり取り</li>
</ol>
<p>という流れになります。</p>
<p>低速な入出力処理の間、CPUが待機されます。</p>
<p><font size="2">レジスタに関する記事はこちら</font></p>

<a rel="follow noopener" target="_blank" href="https://elite-lane.com/central-processing-unit/" title="CPUの仕組みとCPU構造・動作原理を図解で説明" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://elite-lane.com/wp-content/uploads/2020/06/cpu-min-160x90.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://elite-lane.com/wp-content/uploads/2020/06/cpu-min-160x90.jpeg 160w, https://elite-lane.com/wp-content/uploads/2020/06/cpu-min-120x68.jpeg 120w, https://elite-lane.com/wp-content/uploads/2020/06/cpu-min-320x180.jpeg 320w, https://elite-lane.com/wp-content/uploads/2020/06/cpu-min-376x212.jpeg 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">CPUの仕組みとCPU構造・動作原理を図解で説明</div><div class="blogcard-snippet internal-blogcard-snippet">CPUの仕組みとCPU構造・動作原理を図解で説明 CPU【Central Processing Unit】（以降、CPUと呼ぶ）は中央処理装置と呼ばれ、プログラムを解釈・実行してコンピュータ全体の動作を制御しています。 コンピュータの中央処...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://elite-lane.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">elite-lane.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.04.14</div></div></div></div></a>
<h5>DMA（Direct Memory Access）方式</h5>
<p>DMA方式とはプログラムが入出力命令を実行した際、DMAコントローラという専用のハードウェアが</p>
<ul>
<li>メモリ</li>
<li>入出力装置</li>
</ul>
<p>間のデータをやり取りします。</p>
<p>CPUと入出力装置が並行処理されます。</p>
<h5>チャネル制御方式</h5>
<p>チャネル制御方式では、チャネル制御装置という専用のプロセッサが</p>
<ul>
<li>メモリ上のチャネルプログラムを解読</li>
<li>一連の入出力命令とCPUを並行処理</li>
</ul>
<p>してくれます。</p>
<div class="information-box">
チャネル・・・入出力や通信のためのデータの通路のこと
</div>
<h3><span id="toc9">ファイル管理</span></h3>
<p>コンピュータ上で、ユーザは意識する事なくファイルを</p>
<ul>
<li>開く・閉じる</li>
<li>読み込む</li>
<li>編集・再編集</li>
<li>ファイル名を付けて保存</li>
</ul>
<p>をする事が出来ます。</p>
<p>これらの機能に加え、一連の操作後、ファイルを補助記憶装置等々で管理することを、ファイル管理（ファイルシステム）と呼びます。</p>
<h4><span id="toc10">ファイルシステムの種類</span></h4>
<p>ファイルシステムは</p>
<ul>
<li>ディスク・ファイルシステム</li>
<li>分散ファイルシステム</li>
<li>特殊用途のファイルシステム</li>
</ul>
<p>に分類できます。</p>
<h5>ディスク・ファイルシステム</h5>
<p>ディスクファイルシステムとは、コンピュータに接続された補助記憶装置、特にHDD上にファイルを格納するためのシステムです。</p>
<p>ディスク・ファイルシステムの例として、</p>
<ul>
<li>FAT（File Allocation Table）・・・MS-DOSのファイルシステム</li>
<li>NTFS（NT File System）・・・Windows NT系の標準ファイルシステム</li>
<li>ext（extended filesystem）・・・LinuxOSで広く利用されていたファイルシステム</li>
<li>HFS（Hierarchical File System）・・・Mac OS標準フォーマット</li>
</ul>
<p>があります。</p>
<h5>分散ファイルシステム</h5>
<p>分散ファイルシステムとは</p>
<ul>
<li>ファイル共有のためのプロトコルを準備</li>
<li>ネットワークに対応</li>
</ul>
<p>しているファイルシステムの事です。</p>
<p>分散ファイルシステムの例として、</p>
<ul>
<li>Windows標準・・・SMB/CIFS（Server Message Block / Common Internet File System）は、主にWindowsを中心とした環境でLANを通じて
<ul>
<li>ファイル共有</li>
<li>プリンタ共有 等々</li>
</ul>
<p>に使用される通信プロトコル</li>
<li>Macintosh・・・AFP（AppleTalk Filing Protocol）は、アップルが開発した、Classic Mac OS / macOSのファイル共有の為のプロトコル</li>
<li>UNIX・・・NFS（Network File System）は、主にUNIXで利用される分散ファイルシステムおよびそのプロトコル</li>
</ul>
<p>があります。</p>
<h5>特殊用途のファイルシステム</h5>
<p>特殊用途のファイルシステムとは、ディスクファイルシステムでも分散ファイルシステムでもないファイルシステムの事を指します。</p>
<p>特殊用途のファイルシステムの例として、</p>
<ul>
<li>procfs（Process Filesystem）・・・Unix系システムにある擬似ファイルシステム</li>
</ul>
<p>があります。</p>
<h4><span id="toc11">ファイルシステムの構造</span></h4>
<p>二つ以上のファイルの名前が重なると区別出来なくなるので、ファイル名の有効範囲を限定する為に、「ディレクトリ階層」という木（ツリー）構造でファイルシステムを構成します。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-20.38.31.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-20.38.31.png" alt="ディレクトリ階層" width="594" height="485" class="aligncenter size-full wp-image-4569" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-20.38.31.png 594w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-20.38.31-300x245.png 300w" sizes="(max-width: 594px) 100vw, 594px" /></a></p>
<ul>
<li>ファイル・・・個々のユーザ・データ</li>
<li>ディレクトリ・・・ファイルの管理情報とファイル本体を結ぶ部分。階層構造でその頂点にいるディレクトリをルートディレクトリと呼びます。</li>
</ul>
<div class="information-box">
OSによりディレクトリをフォルダーと呼ぶことがあります
</div>
<h4><span id="toc12">ファイル構成</span></h4>
<p>各ファイルの構成方法として一般的に三つあります。</p>
<ul>
<li>バイト並び・・・特定のファイル構造を持ちません<br />
使用OS）UNIX、Windows NT（FAT）</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.49.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.49.png" alt="バイト並び" width="704" height="72" class="aligncenter size-full wp-image-4566" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.49.png 704w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.49-300x31.png 300w" sizes="(max-width: 704px) 100vw, 704px" /></a></p>
</li>
<li>レコード並び・・・レコード（ブロック）は<span class="bold">OS</span>によって区分される最小情報単位<br />
使用OS）メインフレーム用OS</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.56.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.56.png" alt="レコード並び" width="690" height="66" class="aligncenter size-full wp-image-4565" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.56.png 690w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.42.56-300x29.png 300w" sizes="(max-width: 690px) 100vw, 690px" /></a></p>
</li>
<li>属性並び・・・データ以外にデータに関する属性情報（メタデータ）を持ちます<br />
使用OS）MacOS、WindowsNT（NTFS）</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.43.08.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.43.08.png" alt="属性並び" width="686" height="57" class="aligncenter size-full wp-image-4564" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.43.08.png 686w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-18-at-15.43.08-300x25.png 300w" sizes="(max-width: 686px) 100vw, 686px" /></a>
</li>
</ul>
<h3><span id="toc13">APIの提供</span></h3>
<p>OS上で動作するプログラムをアプリケーションと呼びます。</p>
<ul>
<li>OS（Operating System）・・・基本ソフトウェア</li>
<li>アプリケーション（Application）・・・応用ソフトウェア</li>
</ul>
<p>とも呼ばれており、アプリケーションの使用時にはOSに対してシステムコールする事でOSの機能の一部を利用しています。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-9.43.22.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-9.43.22.png" alt="APIの提供" width="592" height="285" class="aligncenter size-full wp-image-4487" srcset="https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-9.43.22.png 592w, https://elite-lane.com/wp-content/uploads/2019/05/Screen-Shot-2019-05-08-at-9.43.22-300x144.png 300w" sizes="(max-width: 592px) 100vw, 592px" /></a></p>
<p>システムコールとは、<span class="bold">OS</span>の機能を呼び出す（Call）ために使用される機構の事を指します。</p>
<p>プログラミングにおいては、<span class="bold">OS</span>の機能は関数（API）呼び出しによって実現されます。</p>
<p>API（Application Programming Interface）とは、自己のソフトウェアを一部公開する事で、他のソフトウェアと機能を共有できるようにしたものを指します。</p>
<p>以上が<span class="bold">OS</span>の役割についての解説になります。</p>
<p>投稿 <a href="https://elite-lane.com/operating-system/">【図解】パソコンのOSとは？OSの仕組み･役割を解説</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://elite-lane.com/operating-system/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
