Linux进程全面解析:从基础到高级管理(1/3)

  • 认识冯诺依曼系统

  • 操作系统概念与定位,理解 "管理"

  • 深入理解进程概念,了解 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.*总结

操作系统对进程的管理逻辑,与硬件管理逻辑完全一致,核心思路可总结为:先通过数据结构描述进程,再通过特定结构组织进程,最终实现对所有进程的统一管理、调度与控制


预告:下一节将具体的展示进程。

看完的朋友们可以多多支持下!!!

相关推荐
实心儿儿1 小时前
Linux —— 线程池(1)
linux
卧室小白1 小时前
K8S-Pod基本配置
linux·运维·服务器
yyuuuzz1 小时前
谷歌云基础服务的入门认知
linux·运维·服务器·数据库·人工智能·github
煜声远播1 小时前
相册卡顿的系统级排查复盘:fsync 不要在锁里调用
linux
syagain_zsx1 小时前
Linux进程全面解析:从基础到高级管理(2/3)
linux·运维·服务器
Irissgwe2 小时前
8-1\IP 分片和组装的具体过程
linux·网络·tcp/ip·网络层·分片·组装
Zevalin爱灰灰2 小时前
makefile从入门到实战 第一章 认识makefile(一)
linux·makefile
Shadow(⊙o⊙)2 小时前
进程间通信0.0-pipe()匿名管道,详细分析进程池调度队列执行逻辑,进程池模拟实现。
linux·运维·服务器·开发语言·c++
CQU_JIAKE2 小时前
6.6aaaaaa
linux·运维·服务器