第1章 引论

  与用户交互的程序:

  • 基于文本的shell
  • 基于图标的图形化用户界面(GUI)

  操作系统所处的位置:
  操作系统所处的位置

  多数计算机有两种运行模式:

  • 内核态(管态),操作系统运行在此模式,能够执行任何指令。
  • 用户态,用户软件运行在此模式,使用机器指令中的子集。

1 操作系统的概念

  自顶向下——作为扩展机器——为用户程序提供抽象。

  • 创建好的抽象,并实现和管理它所创建的抽象。
  • 隐藏硬件,呈现给用户良好、清晰、优雅、一致的抽象。

  自底向上——作为资源管理者——管理计算机资源。

  • 在相互竞争的程序之间管理资源分配。
  • 多路复用:
    • 时间上多路复用:不同程序轮流使用。
    • 空间上多路复用:每个竞争的程序都得到一部分资源。

2 操作系统发展历史

  1945~1955:真空管和穿孔卡片
  1955~1965:晶体管和批处理系统
  1965~1980:集成电路芯片和多道程序设计
  1980~至今:个人计算机
  1990~至今:移动计算机

3 计算机硬件

  • CPU
  • 存储器
  • 磁盘
  • I/O设备
  • 总线
  • 大型Pentium系统结构:此处输入图片的描述

  • Pentium系统的启动过程:

    • 主板上有一个基本输入输出系统(BIOS),其中有底层I/O软件。
    • 计算机启动时,BIOS开始运行。
    • 首先检查安装RAM数量,键盘和其他基本设备是否已安装并正常相应。
    • 开始扫描ISA和PCI总线并找出连接在上面的所有设备,记录下来。
    • 如果现有设备和系统上一次启动时的设备不同,则配置新的设备。
    • BISO通过存储在CMOS存储器中的设备清单决定启动设备。
    • 启动设备上的第一个扇区被读入内存并执行。
    • 启动扇面末尾的分区表检查的程序,确定哪个分区是活动的。
    • 从活动分区读入第二个启动装载模块,装在模块被读入操作系统。
    • 操作系统询问BIOS,以获得配置信息。
    • 系统检查每种设备驱动程序是否存在,有就将设备驱动程序调入内核。
    • 系统创建背景进程,在终端上启动登录程序或GUI。

4 操作系统大观园

  • 大型机OS
  • 服务器OS
  • 多处理器OS
  • 个人计算机OS
  • 掌上计算机OS
  • 嵌入式OS
  • 传感器节点OS
  • 实时OS
  • 智能卡OS

5 操作系统概念

  进程:进程本质是正在执行的一个程序,是分配资源的基本单位。与一个进程有关的所有信息,除了该进程自身地址空间的内容以外,均存放在操作系统的一张表中,称为进程表(数组或链表结构)。

  地址空间:现代操作系统通常使用虚拟内存技术。操作系统可以把部分地址空间装入主存,部分留在磁盘上,在需要时再交换它们。

  文件:大多数系统都有目录结构,目录项可以是文件或者目录,构成了一种层次结构(文件系统)。进程和文件层次都可以组织成树状结构,一般进程的树状结构层次不深,而且是暂时的;文件树的层次常常多达四层、五层或者更多层,存在时间可能达数年。

  输入/输出:所有计算机都有用来获取输入和产生输出的物理设备。包括键盘、显示器、打印机等。

  保护:例如UNIX系统中对文件实现保护,三个3位保护字段(rwxrwxrwx),分别表示所有者、所有者同组用户、其他用户的读、写、执行权限。

  shell:UNIX的命令解释器称为shell,不是操作系统的一部分。shell是终端用户与操作系统之间的界面,除非用户使用的是GUI界面。

6 系统调用

  系统调用read(fd, &buffer, nbytes)函数的过程:

  • 参数nbytes压栈
  • 参数&buffer压栈
  • 参数fd压栈
  • 对库过程read进行实际调用
  • 把系统调用的编号放在寄存器中
  • 执行TRAP指令,切换到内核态,在内核中一个固定地址开始执行
  • 内核代码检查系统调用编号,发出系统调用处理指令
  • 系统调用句柄执行
  • 控制返回给用户空间库过程
  • 以通常的过程调用返回的方式,返回到用户程序
  • 用户程序清除堆栈空间
  • 完成系统调用read的11个步骤
    系统调用

7 操作系统结构

  • 单体系统
  • 层次式系统
  • 微内核
  • 客户机-服务器模式
  • 虚拟机
  • 外核

8 C语言

  编译C和头文件,构件可执行程序的过程:

猜你喜欢

转载自blog.csdn.net/liao20081228/article/details/78649359