第6章インフラストラクチャーの抽象化層:オペレーティングシステム
6.3 Processes and Concurrency6.3 プロセスと並行性
• Concurrent processing is a computing model that improves performance when multiple processors are executing instructions simultaneously.
• 並行処理は、複数のプロセッサが同時に命令を実行することで、性能を高めるコンピューティングモデルである。
• A process consists of at least an address space, a CPU state, and a set of OS resources.
• プロセスは、少なくともアドレス空間、CPUの状態、OSリソースの集合から構成される。
• The OS’s process namespace particulars depend on the specific OS, but in general, the name of a process is called a PID (process ID), which is a set of unique numbers that identify processes.
• OSのプロセス名前空間の詳細はOSによって異なるが、一般に、プロセスの名前はPID(プロセスID)と呼ばれる。これは、プロセスを識別する一意の数値の集合である。
• The OS maintains a data structure to keep track of a process state, which is called the process control block (PCB) or process descriptor.
• OSは、プロセスの状態を追跡するために、プロセス制御ブロック(PCB)またはプロセス記述子というデータ構造を保持する。
• Concurrency refers to multiple activities and processes happening at the same time. An OS can achieve concurrent processing via the use of threads or one of three different processing environments: multiprogramming, multiprocessing, or distributed processing.
• 並行性は、複数の活動やプロセスが同時期に進むことを指す。OSは、スレッドを使うか、マルチプログラミング、マルチプロセッシング、分散処理という三つの処理環境のいずれかによって、並行処理を実現できる。
• Scheduling is the act of determining which process is in the ready state and should be moved to the running state when more resources are requested than can be granted immediately, and in which order the requests should be serviced.
• スケジューリングとは、直ちに提供できる量を超えるリソースが要求されたとき、実行可能状態にあるどのプロセスを実行中の状態へ移すべきか、また、要求をどの順序で処理すべきかを決めることである。
• A good scheduling algorithm minimizes response time, efficiently utilizes resources, and implements fairness by distributing CPU cycles equitably. Four simple scheduling algorithms are FCFS, RR, STCF, and SRPT.
英語のヒント
• よいスケジューリングアルゴリズムは、応答時間を最小にし、リソースを効率よく使い、CPUサイクルを公平に配分する。単純なスケジューリングアルゴリズムには、FCFS、RR、STCF、SRPTという四つがある。
• Synchronization is a way of coordinating multiple concurrent activities that use a shared state.
• 同期は、共有状態を使う、複数の並行した活動を調整する方法である。
• Allocation is a method that defines how data is stored in the memory by providing a set of requests for resources and identifying which processes should be given which resources to make the most efficient use of the resources. There are three main forms of allocation: contiguous allocation, linked allocation, and indexed allocation.
• 割り当ては、リソース要求の集合を与え、リソースを最も効率よく使うために、どのプロセスへどのリソースを与えるかを識別し、メモリ内のデータの保存方法を定める方法である。主な形式には、連続割り当て、連結割り当て、索引割り当ての三つがある。
6.4 Memory Management6.4 メモリ管理
• The OS loads executable files into memory, allows several different processes to share memory, and provides facilities for processes to exceed the memory size after they have started running.
• OSは、実行可能ファイルをメモリへ読み込み、複数の異なるプロセスがメモリを共有できるようにし、実行開始後にプロセスがメモリ容量を超えられるようにする機能を提供する。
• Memory multiplexing is dividing the capacity of the communication channel into multiple logical channels.
• メモリの多重化は、通信チャネルの容量を、複数の論理チャネルへ分けることである。
• There are several concepts that are critical to memory multiplexing, namely, isolation, sharing, virtualization, and utilization.
• メモリの多重化に重要な概念には、分離、共有、仮想化、利用率がある。
• Time slicing is a time frame for each process to run in a preemptive multitasking CPU such that each process will be run every single time slice.
• タイムスライスは、プリエンプティブなマルチタスクCPUで、各タイムスライスに各プロセスが動くようにする、実行のための時間枠である。
• Sharing means that multiple processes can share the same piece of data concurrently.
• 共有とは、複数のプロセスが同じデータを並行して共有できることである。
• Memory sharing improves the performance of the system because the data is not copied from one address space to another, so memory allocation is done only once.
• メモリ共有では、あるアドレス空間から別の空間へデータをコピーせず、メモリの割り当ても一度だけで済むため、システムの性能が向上する。
• Virtualization is a technique that gives an application the impression that it has its own logical memory and that it is independent from the available physical memory.
• 仮想化は、アプリケーションに、自分専用の論理メモリがあり、それが利用可能な物理メモリから独立しているように見せる技法である。
• Fragmentation is a problem where the memory blocks cannot be allocated to the processes due to their small individual size and the distribution of sizes in the pool; there might be enough total free memory to satisfy the demand, but the available chunks cannot be allocated contiguously.
英語のヒント
• 断片化は、個々のメモリブロックが小さいことや、プール内の大きさの分布のために、プロセスへブロックを割り当てられない問題である。要求を満たすだけの空きメモリの総量はあっても、利用可能な塊を連続した領域として割り当てられない場合がある。
• Linkers combine many separate pieces of a program, reorganize storage allocation so that all the pieces can fit together, and touch up addresses so that the program can run under the new memory organization.
• リンカーは、プログラムの多数の独立した部分を結合し、すべてを収められるよう記憶領域の割り当てを再編し、新しいメモリ構成で動くようにアドレスを調整する。
• There are two basic operations used in dynamic storage management to manage a memory or storage to satisfy various needs: allocate a block with a given number of bytes or free a previously allocated block.
• 動的記憶管理では、さまざまな要求に応じてメモリや記憶領域を管理するために、二つの基本操作を使う。指定されたバイト数のブロックを割り当てることと、以前に割り当てたブロックを解放することである。
• Virtual memory is a key component of the operating system for ensuring process isolation by guaranteeing that each process gets its own view of the memory.
• 仮想メモリは、各プロセスに固有のメモリの見え方を保証し、プロセスの分離を確保する、OSの重要な構成要素である。
6.5 File Systems6.5 ファイルシステム
• A file system is responsible for defining file names, storing files on a storage device, and retrieving files from a storage device.
• ファイルシステムは、ファイル名を定め、記憶装置へファイルを保存し、記憶装置からファイルを取り出す役割を担う。
• File systems define operations on objects such as create, read, and write, and they may also provide higher-level services, such as accounting and quotas, incremental backup indexing or search, file versioning, and encryption.
• ファイルシステムは、対象に対する作成、読み取り、書き込みなどの操作を定義する。また、使用量の集計とクォータ、増分バックアップの索引付けや検索、ファイルの版管理、暗号化など、より高い水準のサービスを提供する場合もある。
• File systems are concerned with lower-level characteristics such as performance and failure resilience.
• ファイルシステムは、性能や障害への強さなど、低い水準の特性に関わる。
• The file system interface defines standard operations such the creation and deletion of files (or directories), manipulation of files and directories, copy, and lock.
• ファイルシステムインターフェースは、ファイルやディレクトリーの作成・削除・操作、コピー、ロックなどの標準操作を定める。
• File systems are responsible for managing parts of the disk that are used (inodes) and parts of the disk that are not used (free blocks).
• ファイルシステムは、ディスク内の使用中の部分(inode)と、使っていない部分(空きブロック)を管理する。
• A distributed file system (DFS) is a file system that is distributed on multiple file servers or multiple locations that support network-wide sharing of files and devices.
• 分散ファイルシステム(DFS)は、ネットワーク全体でファイルやデバイスを共有できるよう、複数のファイルサーバーや場所に分散したファイルシステムである。
• A DFS provides an abstraction over physical disks that is akin to the abstraction that virtual memory provides over physical memory.
英語のヒント
• DFSが物理ディスク上に提供する抽象化は、仮想メモリが物理メモリ上に提供する抽象化に似ている。