OS履歴


オペレーティングシステムの登場と発展


以前から、私たちが知っているパソコンの様子は続いていません.コンピューターは20世紀40年代末から登場し、徐々に発展してきたが、今はその様子を見てみよう.

1.オペレーティングシステムのないコンピュータ


現在のコンピュータにはhddにプログラムがあり、osはメモリにhddのプログラムをロードします.しかし、最初からosがあるわけではありません.
プログラムの実行過程から見ると、コンパイル、コンパイル、ロードなどの過程を経て、osのないコンピュータでは、このような仕事はオペレータが自分で完成した.
プログラム実行プロセスは,(1)ソースコードをリーダにアップロードし,ソースコードをメモリにロードする,(2)コンパイラをリーダにアップロードし,ソースコードをマシン言語に翻訳する,(3)cpu上で実行する.(4)そして、出力装置を介して実行結果を受信する.

現代のコンピュータでは、ソースコードを記述し、コンパイラに変換し、ループするプロセスはosによって実行され、osのないシステムではオペレータによって実行される.次のバッチ・システムは、常駐モニタによって実行されます.

2.バックアップ処理システム:最初のオペレーティングシステム


バッチ・システムでバッチをバッチするという意味のように、このシステムでは、オペレータの代わりに常駐モニタ・プログラムがソース・コード、コンパイラ、リンクのプロセスを実行します.このバッチシステムは最初のオペレーティングシステムです.

3. Multi Programming


マルチプログラム設計は,CPUとメモリの使用問題を克服するために導入された.
たとえば、次の簡単なソースコードがあるとします.
int main(void)
{
    int i = 0;//cpu
    i++;//cpu
    printf("%d", i);//io장치
    return (0);
}
上のコードから見ると、cpuを使用するALU(演算装置)のコード部分があり、printfのようなI/O機器を使用するコードがあります.
cpuは極めて速い時間で演算されるが,i/oデバイスはcpuの速度に追いつかない.また,計算結果をメモリに再ロードし,hddから他の変数値を取得するメモリロード速度もcpu操作と大きく異なる.
I/Oデバイスやメモリマウントなどの処理速度の遅いタスクの場合、CPUは空き状態になるしかなく、この空き状態の無駄を減らすためにマルチプログラム設計が導入されている.

上記の場合、ジョブAはI/O操作を行っている.このときcpuのidleを減らすためにマルチプログラミングを導入し,cpuにジョブBを行わせる.これがマルチプログラミングです.
また,複数のジョブを導入する際に,ジョブをどのような順序で実行するかを考慮したcpuスケジューリングや,ジョブが互いの領域に侵入することを防止するメモリ管理や保護機能もマルチプログラミングオペレーティングシステムに導入されている.

4. Time Sharing System(TSS)


時間共有システム(TSS、時空共有システム):コンピュータ技術の発展に伴い、ディスプレイとキーボードを導入し、1台のコンピュータに複数の端末(端末)を接続することで、複数のユーザーが1つのシステムを使用できるようにした.
コンピュータのコストの問題により、1台のコンピュータは複数のユーザーで使用できます.

時間共有システム(時空共有システム)は、複数のユーザが1つのメモリに接続できるようにし、各ユーザが一定時間CPUを占有することができる.
1/100秒以内に1人のユーザが占有でき、合計n人のユーザがいる場合、各ユーザは1秒以内に100/n回のcpuを割り当てることができる.
これらの時空流システムは現代の多様な運行メカニズムに影響を及ぼした.Unix、linux、windowなどのオペレーティングシステムは時空ストリームシステムの影響を受けている.現在使用されているシステムの多くはTSSベースである.
そのため、メモリの重要性はますます顕著になり、仮想メモリとプロセス間の通信、同期(どのユーザのプロセスを先に処理し、その後どのユーザのプロセスを処理するか)のホットスポットとなっている.