操作系统学习笔记:基本概念

几个基本概念的简要介绍

进程

  • 进程 (process) 本质上是正在执行的一个程序。
  • 与每个进程相关的是进程的地址空间 (address space), 这是从某个最小值的存储位置(通常是零)到某个最大值存储位置的列表。在这个地址空间中,进程可以进行读写。
  • 在许多操作系统中,与一个进程有关的所有信息,除了该进程自身地址空间的内容以外,均存放在操作系统的一张表中,称为进程表 (process table),进程表是数组(或链表)结构,当前存在的每个进程都要占用其中一项。
  • 系统管理器授权每个进程使用一个给定的 UID 标识 (User IDentification)。每个被启动的进程都有一个启动该进程的用户 UID。子进程拥有与父进程一样的 UID。

文件

  • 操作系统的一项主要功能是隐藏磁盘和其他 I/O 设备的细节特性,并提供给程序员一个良好的、清晰的独立于设备的抽象文件模型。
  • 在读写文件之前,首先要打开文件,检查其访问权限。若权限许可,系统将返回一个小整数,称作文件描述符 (file descriptor),供后续操作使用。若禁止访问,系统则返回一个错误码。
  • 在 UNIX 中的另一个重要概念是安装文件系统。如下图,在 mount 调用之前,根文件系统在硬盘上,而第二个文件系统在 CD-ROM 上,它们是分离和无关的。
  • 在 UNIX 中,另一个重要的概念是特殊文件 (special file)。提供特殊文件是为了使 I/O 设备看起来像文件一般。按照惯例,特殊文件保存在 /dev 目录中。有两类特殊文件:
    • 块特殊文件:
      由可随机存取的块组成的设备,如磁盘等。比如打开一个块特殊文件,然后读第 4 块,程序可以直接访问设备的第 4 块而不必考虑存放该文件的文件系统结构。
    • 字符特殊文件:
      打印机、调制解调器等接收或输出字符流的设备。
  • 管道 (pipe) 是是一种虚文件,可连接两个进程。(关于管道的详细介绍,参见我的另一篇博客:Hello, named pipe