moc 发表于 2018-11-4 20:17:48

008-系统编程常识

本帖最后由 moc 于 2018-11-4 20:16 编辑

1、计算机系统硬件组成

1. 总线
贯穿整个系统的一组电子管道称为总线.
① 片内总线
② 系统总线 ==> 数据总线DB   地址总线AB    控制总线CB
③ 外部总线
2. IO设备
I/O设备是系统与外界联系的通道。
        键盘鼠标是输入设备;显式器是输出设备;磁盘既是输入设备也是输出设备...
        输入输出是相对于内存来说的。
3. 内存
        内存(主存储器)是一个重要的部件,它是与CPU进行沟通的桥梁。它用来存放程序以及程序要处理的数据,磁盘中的程序要加载到内存才能运行。
4. 处理器(运算器+控制器)
中央处理器(CPU),简称处理器。
        CPU主要有运算器、控制器、寄存器构成
        完成的工作:取指、译码、执行、写回、跳转等。
补充:
DMA: 将数据从一个地址空间传输复制到另外一个地址空间,当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成,CPU转而处理其他工作。在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。
计算机软硬件组成:

内核:
        系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序;它从用户那里接受命令并把命令送给内核去执行。
Shell:
        系统的用户界面,提供了用户与内核进行交互操作的一种接口;它接收用户输入的命令并把它送入内核去执行。
        实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。
2、操作系统
操作系统:
        有效地管理计算机系统中的资源,合理地管理计算机系统的工作流程,方便用户使用的程序的集合。
资源:
       硬件资源、软件资源。
操作系统五大任务:
        ① 文件管理
        ② 处理器管理
        ③ 内存管理
        ④ 设备管理
        ⑤ 作业管理

操作系统三个基本抽象:
        操作系统通过三个基本抽象概念来实现文件管理、作业管理(虚拟存储器和文件、进程)。文件是对I/O设备的抽象表示,虚拟存储器是对主存和磁盘I/O设备的抽象表示,进程则是对处理器、主存和I/O设备的抽象表示。

进程:
进程是操作系统对正在运行的程序的一种抽象。一个系统可以运行多个进程,而每个进程好像在独占使用硬件。
进程上下文切换(content change):

虚拟存储器
        虚拟存储器为每个进程提供了一个大的、一致的、私有的地址空间.
        它将内存看成是存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存与磁盘中来回交换数据。
        为每个进程提供一致的地址空间,简化了存储管理
        保护每个进程的地址空间不被其他进程破坏。
文件
        文件是一系列的字节序列;
        它向应用程序提供了一个统一的视角,来看待系统中各式各样的I/O设备, 一切设备皆文件。
虚拟文件系统VFS
        虚拟文件系统是内核实现的一种架构,为用户空间提供统一的文件操作接口,即文件系统调用。它在内核内部为不同的真实文件系统提供一致的抽象接口。
        用户通过系统用与内核中的虚拟文件系统交互,进而操作实际的文件系统和设备。

3、linux内核

系统调用接口SCI: 提供了某些机制执行从用户空间到内核的函数调用。直接api函数通过软中断的方式实现,让上层应用陷入内核态。

1. PM(Process Management) 进程管理
    进程调度、调度算法、进程三态。
    进程是CPU调度的最小单位。
2. VFS(Virtual File System)虚拟文件管理
        在Linux之下,一切设备皆文件。
        驱动总线模型2.4 -> 2.6(真正的支持即插即用pnp)。
3. MM(Memory Management) 内存管理
        进程逻辑地址转换为内存的物理地址
        段式管理==> 线性地址   页式管理==> 物理地址
       在32位数据线下,进程地址空间2^(32),4GB; 进程地址空间和CPU的寻址能力有关。
4. NS(Network Stack)网络协议栈管理
        为什么把tcp/ip协议栈放入Linux内核中....
        需要大量读写网卡;操作硬件资源(频繁的调用系统函数),会使整个系统的性能降低。
5. Arch 硬件体系管理
        Linux内核支持x86平台, 32、64、 arm、mips、PowerPC
6. DD(Device Drivers) 驱动管理
        驱动总线模型2.4 -> 2.6(真正的支持即插即用pnp)。
页: [1]
查看完整版本: 008-系统编程常识