cyendra

Azarath Metrion Zinthos

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

操作系统为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理所有设备。

与用户交互的程序,基于文本的通常称为shell,基于图标的则称为图形用户界面Graphical User Interface(GUI)。

什么是操作系统

  • 操作系统扩展机器,操作系统的一个主要任务是隐藏硬件,呈现给程序一个良好清晰优雅一致的抽象。
  • 操作系统做资源管理,现代操作系统允许同时运行多道程序,操作系统把潜在的混乱有序化。操作系统的任务是记录那个程序在使用什么资源,对资源请求进行分配,评估使用代价,并且为不同的程序和用户调解互相冲的的资源请求。

多路复用资源:

  • 时间上复用,不同的程序或用户轮流使用它。先是第一个获得资源的使用,然后下一个,以此类推。例如打印机共享。
  • 空间复用,每个客户得到资源的一部分,从而取代了排队。例如在若干运行程序之间分割内存,这样每个运行程序都可以同时入住内存。其他例子还有磁盘。

操作系统的历史

操作系统的历史:

  1. 第一代(1945~1955):真空管和穿孔卡片
  2. 第二代(1955~1965):晶体管和批处理系统
  3. 第三代(1965~1980):集成电路芯片和多道程序设计
  4. 第四代(1980至今):个人计算机

早期批处理系统 batch system:在输入室收集全部的作业,然后用一台较便宜的计算机将它们读到磁带上。用较昂贵的计算机完成真正的计算。

单一家族思想:计算机只在价格和性能上有差异,所有的计算机都有相同体系结构和指令集,为一种型号机器编写的程序可以在其他所有型号的机器上运行。

多道程序设计:将内存分为几个部分,每一部分存放不同的作业,当一个作业等待I/O操作完成时,另一个作业可以使用CPU。

同时的外部设备联机操作Simultaneous Peripheral Operation On Line(SPOOLing):任何 时刻当一个作业运行结束时,操作系统就能将一个新作业从磁盘读出,装进空出来的内存区域运行。该技术同时也用于输出。

DOS和Gates的故事与GUI和Steve Jobs的故事(黑历史)。

计算机硬件介绍

CPU从内存中取出指令并执行。在每个CPU基本周期中,首先从内存中取出指令,解码以确定其类型和操作数,接着执行,然后取指、解码并执行下一条指令。CPU内部有用来保存关键变量和临时数据的寄存器。程序计数器、堆栈指针、程序状态字等。在时间多路复用CPU中,操作系统会终止正在运行的某个程序并启动另一个程序。每次停止一个运行着的程序时,操作系统保存所有的寄存器,在稍后程序再次运行时,把寄存器重新装入。

流水线机制 pipeline:CPU同时取出多条指令的机制。例如,CPU有分开的取指单元、解码单元和执行单元,当他执行指令n时,它还可以对指令n+1解码,并读取指令n+2。

超标量CPU:有多个执行单元,两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们执行完毕。

系统调用 system call:系统调用陷入内核并调用操作系统,从操作系统中获得服务。

多线程 multithreading:多线程允许CPU保持两个不同的线程状态,然后在纳秒级的时间尺度内来回切换。

存储器系统采用一种分层次的结构:寄存器、高速缓存、内存、磁盘、磁带。

高速缓存:当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否存在高速缓存中。如果是,称为高速缓存命中,缓存满足了请求,就不需要通过总线把访问请求送往主存。

随机访问存储器 Random Access Memory(RAM):存储器系统的主力,断电易失,不能在高速缓存中的得到满足的访问请求会转入主存。

只读存储器 Read Only Memory(ROM):在工厂中被编程完毕,再也不能被修改,电源切断后不丢失其内容。ROM速度快且便宜,用于启动计算机的引导加载模块就存放在ROM中。一些I/O卡也采用ROM处理底层设备控制。

电可擦除可编程ROM Electrically Erasable PROM、闪存 flash memory:非易失性,可以擦除和重写。

磁盘:低速的机械装置。信息写在磁盘上的一系列同心圆上。在任意一个给定臂的位置,每个磁头可以读取一段环形区域,称为磁道(track)。把一个给定臂的位置上的所有磁道合并起来,组成了一个柱面(cylinder)。

虚拟内存机制:将程序放在磁盘上,将主存作为一种缓存,用来保存最频繁使用的部分程序。

内存器管理单元 Memory Management Unit:CPU中的一个部件。快速的映像内存地址,把程序生成的地址转换为有关字节在RAM中的物理地址。

上下文切换  context switch:在多道程序系统中,从一个程序切换到另一个程序。

集成驱动器电子设备 Integrated Drive Electronics(IDE):实际设备自身有一个相对简单的接口,接口被标准化,这样任何一个IDE磁盘控制器就可以适应任意一种IDE磁盘。

设备驱动程序 device driver:与控制器对话,发出命令并接收响应的软件。

将设备驱动程序装入操作系统的途径:

  1. 将内核与设备驱动程序重新链接,然后重启系统。UNIX系统。
  2. 在一个操作系统文件中设置一个入口,并通知该文件需要一个设备驱动程序,然后重启系统。Windows系统。
  3. 操作系统在运行时接受新的的设备驱动程序并且立即将其安装好,无需重启系统。热插拔设备如USB。

基本输入输出系统 Basic Input Output System(BIOS):在BIOS内有底层I/O软件,包括度键盘、写屏幕、进行磁盘I/O以及其他过程。

操作系统概念

进程 process:本质上是正在执行的一个程序。进程基本上是容纳运行一个程序所需要所有信息的容器。

地址空间 address space:从某个最小值的存储位置到某个最大值的存储位置的列表。在这个地址空间中,进程可以读写。该地址空间中存放有可执行程序、程序的数据以及程序的堆栈。

进程表 process table:与一个进程有关的所有信息,除了该进程自身地址空间的内容以外,均存放在操作系统的一张表中。是数组或链表结构,当前存在的每个进程都要占用其中一项。

一个进程被挂起后,再启动时的状态必须与先前暂停时完全相同。一个挂起的进程包括:进程的地址空间,对应的进程表项。

一个进程能够创建一个或多个子进程,这些进程又创建子进程,得到进程树。

进程间通信 interprocess communication:合作完成某些作业的进程常需要彼此通信以便同步它们的行为。

可用的进程系统调用有:申请更多内存、释放不需要的内存、等待一个子进程结束、用另一个程序覆盖程序。

警告信号 alarm signal:在限定的秒数流逝之后,操作系统向进程发送警告信号。引起该进程暂时挂起。

系统管理器授权每个进程使用一个给定的UID标识(User IDentification)。每个被启动的进程都有一个启动该进程的用户UID。子进程拥有父进程一样的UID。用户可以是某个组的成员,每个组也有一个GID标识。

目录(directory)把文件分类成组。目录层结构中的每个文件都可以通过从目录的顶部,即根目录开始的路径名来决定。每个进程有一个工作目录(working directory)。

文件描述符 file descriptor:在读写文件之前,首先要打开文件,检查其访问权限。若权限许可,系统将返回一个小整数,供后续操作使用。

管道 pipe:一种虚文件,可连接两个进程。两个进程通过管道对话。

所有计算机都有用来获取输入和产生输出的物理设备。每个操作系统都有管理其I/O设备的I/O子系统。

计算机中有大量的信息,用户希望对其进行保护,并保守秘密。UNIX操作系统通过对每个文件赋予一个9位的二进制保护代码,对UNIX中的文件实现保护。该保护代码有三个3位字段,一个用于所有者,一个用于所有者同组中的其他成员,而另一个用于其他人。每个字段中有一位用于读访问,一位用于写访问,一位用于执行访问。这就是rwx位。

UNIX的命令解释器称为shell。shell同时也是终端用户与操作系统之间的界面。

 

posted on 2014-09-03 16:57  cyendra  阅读(241)  评论(0编辑  收藏  举报