-
认识冯诺依曼系统
-
操作系统概念与定位,理解 "管理"
-
深入理解进程概念,了解 PCB
-
学习进程状态,学会创建进程,掌握僵尸进程和孤儿进程,及 其形成原因和危害
-
了解进程调度,Linux 进程优先级,理解进程竞争性与独立性,理解并行与并发
-
理解进程切换,以及 Linux2.6 kernel,O (1) 调度算法架构
-
理解环境变量,熟悉常见环境变量及相关指令getenv/setenv函数
-
理解 C 内存空间分配规律,了解进程内存映像和应用程序区别,认识虚拟地址空间。
1. 冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

目前我们所接触的计算机,均由各类基础硬件组件构成,核心硬件模块分为三类:
-
输入单元:用于向计算机录入数据和指令,常见设备包含键盘、鼠标、扫描仪、数位手写板等。
-
中央处理器(CPU):计算机的核心运算与控制核心,主要集成运算器、控制器两大核心部件。
-
输出单元:用于展示、输出计算机处理完成的数据,常见设备包含显示器、打印机等。
针对冯诺依曼体系结构,核心规则重点总结如下,为必须掌握的关键点:
-
体系中所提及的存储器,特指计算机内存。
-
在不考虑CPU缓存的前提下,CPU仅能对内存进行数据读写操作,无法直接访问外设
-
所有外设的数据输入、输出操作,都必须依托内存完成:外设输入数据需先写入内存,输出数据需从内存读取。
-
核心总结:在冯诺依曼体系中,所有硬件设备仅能与内存进行直接数据交互。

2. 操作系统(Operator System)
2-1 操作系统概念
任何计算机系统中,都存在一套基础的程序集合,这套程序集合即为操作系统(OS)。广义层面,操作系统主要由两部分组成:
-
内核:操作系统的核心主体,主要负责四大核心管理工作,分别是进程管理、内存管理、文件管理、驱动管理。
-
其他配套程序:辅助系统运行与开发使用的程序,例如各类函数库、shell命令行程序等。
2-2 设计操作系统的目的
操作系统的设计目标可分为向下、向上两个维度,适配计算机软硬件整体工作逻辑:
-
对下管理硬件:直接与计算机各类硬件交互,统一管理整机所有硬件、软件资源,统筹硬件工作状态与资源分配。
-
对上服务用户:为上层的用户程序、应用程序提供稳定、安全、便捷的运行与执行环境。
2-3 操作系统核心功能
在计算机软硬件整体架构中,操作系统的核心定位十分明确:一款专门负责管理计算机软硬件资源的系统软件,所有工作均围绕"管理"展开。
2-4 深入理解操作系统的"管理"
1、管理通俗示例
可以通过校园管理逻辑类比理解操作系统管理机制:学生对应计算机各类软硬件资源,辅导员负责专项管理,校长(操作系统)统筹全局管理工作。
2、管理核心逻辑
操作系统对硬件、进程等对象的管理,核心分为两步,适配计算机程序的工作特性:
-
描述被管理对象:通过结构体(struct)对各类管理对象(硬件、进程等)的属性、状态、信息进行统一记录与描述。
-
组织被管理对象:通过链表等高效数据结构,将所有已描述的管理对象进行有序组织、统一调度,方便系统快速访问与管理。
3、硬件管理总结
操作系统管理计算机硬件的核心方式:借助结构体描述硬件信息,依托链表等数据结构组织硬件对象,实现智能化、系统化管理。
2-5 系统调用与库函数概念
1、系统调用
从开发角度来看,操作系统整体封装了底层硬件操作,同时会对外暴露部分专属接口,供上层开发者使用,这类由操作系统原生提供的底层接口,就是系统调用。
2、库函数
系统调用功能偏向底层、基础,使用门槛较高,对开发者的技术要求较高。因此开发者会对部分常用系统调用进行二次封装、优化,最终形成各类函数库。库函数基于系统调用实现,简化了操作逻辑,极大降低了上层开发门槛,方便开发者进行二次开发与程序迭代。

开发银行的自动取款机的人,难道能允许我们随意看到其内部原理吗?
只会将我们需要的功能UI显示出来。
2.*总结
操作系统对进程的管理逻辑,与硬件管理逻辑完全一致,核心思路可总结为:先通过数据结构描述进程,再通过特定结构组织进程,最终实现对所有进程的统一管理、调度与控制。
预告:下一节将具体的展示进程。
看完的朋友们可以多多支持下!!!