目录

操作系统的定位

进程的概念

如何描述进程?

如何组织进程?

为什么要引入进程?

进程的特征

1.pid

2.内存指针

3.文件描述符

4.进程调度的相关属性

(1)进程的状态

(2)优先级

(3)上下文

(4)记账信息

寄存器

进程是如何利用cpu资源的?

进程的虚拟地址

物理地址

内存随机访问的特性

为什么程序不直接获取内存的物理地址?

虚拟地址


操作系统的定位

介绍进程之前我们先简单介绍一下操作系统

操作系统是一个搞管理的软件,它对下管理硬件设备,对上给软件提供稳定的运行环境,操作系统是:软件 硬件 用户之间交互的媒介

我们熟悉的操作系统有:Window Linux Mac......

进程的概念

一个正在运行的程序,就是一个进程.

比如我们打开任务管理器,这些都是进程,它们对应着一些cpu,内存,磁盘,网络资源,

进程是操作系统资源分配的基本单位.

进程是一个重要的软件资源,由操作系统负责管理的
操作系统是如何管理的呢?

简单来说就是,描述和组织进程,讲清楚进程有哪些属性和特征,通过一定的数据结构把多个这样的
基本单位串联起来.

如何描述进程?

使用结构体来描述进程,
用来描述进程的结构体我们称之为PCB(进程控制块)

如何组织进程?

通过双向链表,把多个PCB串联在一起,
创建一个进程,本质上就是创建一个pcb这样的结构体对象,把它插入到双向链表当中
销毁一个进程,本质上就是把链表上的pcb节点删除掉
用任务管理器查看进程,本质上就是遍历整个pcb链表

为什么要引入进程?

引入进程的主要目的是,为了解决"并发编程"这样的问题.
cpu再往小的做比较困难,cpu进入了多核时代,想要进一步提高程序的执行速度就要利用好cpu的多核资源.
但也不是说cpu的核心越多,程序跑的就越快!取决于程序代码是否能把多个核心给用上

进程的特征

我们用pcb这个结构体来描述进程,那么pcb描述了进程的哪些特征?

1.pid

进程的身份标识符,是唯一的一串数字

2.内存指针

指向了说自己要用到哪些内存

3.文件描述符

硬盘上的文件等其他资源

4.进程调度的相关属性

(1)进程的状态

就绪状态:随叫随到,随时准备到cpu上取执行

运行状态:正在cpu上执行

阻塞状态:短时间内无法在cpu上执行

(2)优先级

进程也是有优先级的.谁先排,谁后排也是有一定的算法逻辑的

(3)上下文

简单来说就是"存档"和"读档",操作系统在进行切换的时候,就需要把中间状态给记录下来,
下次这个进程再上cpu上执行时,就可以恢复上次的状态继续往下执行了.

本质上,进程的上下文,就是cpu中的各个寄存器的值.
寄存器:cpu内置的存储数据模块,保存的就是程序运行的中间结果
保存上下文:就是把这些cpu寄存器的值,记录到内存中
恢复上下文:就是把内存中这些cpu寄存的值,恢复回去

(4)记账信息

操作系统,统计在每个进程在cpu上占用的时间,和执行的指令数目,
根据这个来决定,下一阶段该如何调度.

寄存器

cpu里有一个重要的组成部分:寄存器
寄存器也能存储数据,空间更小,访问速度更快
cpu进行的运算都是针对寄存器中的数据进行的

cpu里的寄存器有很多种
有的是通用寄存器(用来参与运算)
有的是专用寄存器(有特定功能),例如保存上下文

进程是如何利用cpu资源的?

内存指针和文件描述符,其实就是描述了,进程持有了哪些硬件资源
进程的调度的相关属性,其实就描述了进程是如何利用cpu资源的.

硬件资源,内存,硬盘,网卡等比较好分,而cpu资源不好分,
一般我们的电脑进程有上百个,而cpu只有一个,尽管现在cpu是多核的,每个核心都可以看作一个独立的cpu,但是往往也就是8核,12核,16核......还是不够进程分!

狼多肉少,这些进程都希望能够同时运行,这时我们就要用到并行核并发了.

并行:微观上,同一时刻,俩个核心上的进程,就是同时执行的

并发:微观上同一时刻,一个核心上只能运行一个进程,但是能够进行快速切换
比如一个cpu核心上,先运行谷歌浏览器,再运行qq音乐,再运行微信......
只有切换速度足够快,宏观上,让人感知不到

操作系统内核处理的应用程序,我们感知不到是并行还是并发
因此,往往把并行和并发统称为并发

操作系统也有一个重要的模块调度器,负责让有限的cpu调度执行这么多的进程.

进程的虚拟地址

物理地址

内存:物理上是一条内存条,可以存很多数据,
内存可以想象成一条大走廊,有很多房间,每个房间的大小都是1Byte
每个房间都有一个编号,从0开始依次累加
这个内存编号,就是地址,
这个地址我们称之为物理地址.

内存随机访问的特性

随机访问:访问内存上任意地址的数据,速度都极快,时间上都差不多.
数组取下标时间复杂度是O(1),也是因为内存随机访问的特点.

为什么程序不直接获取内存的物理地址?

虚拟地址

使用物理地址有个明显的弊端,如果出bug了,明明是进程1的bug,可能会把其它进程给搞坏.
所以我们针对进程使用的内存空间,进行"隔离",使用虚拟地址空间,
由操作系统和专门的硬件设备(MMU),负责进行虚拟地址,到物理地址的转换

一旦访问越界了,比如进程1的指针地址成了0x3000
操作系统内核会发现这里的地址超出了进程1的访问范围了
此时就会直接反馈一个错误
因此,谁出bug,影响谁,其它进程不受影响.

从零了解进程(操作系统定位,进程的概念,特征,虚拟地址)相关推荐

  1. 从零入门 FreeRTOS 操作系统之任务的概念

    从零入门 FreeRTOS 操作系统之任务的概念 从系统的角度看,任务是竞争系统资源的最小运行单元.FreeRTOS 是一个支持多任务的操作系统.在 FreeRTOS 中,任务可以使用或等待 CPU. ...

  2. Linux 操作系统原理 — 进程与线程管理

    目录 文章目录 目录 前言 进程与线程 内核线程,用户线程与轻量级进程 内核线程 轻量级进程 用户线程 轻量级进程与用户线程的区别 用户线程与轻量级进程的混合模式 用户线程和内核线程的区别 线程的实现 ...

  3. 操作系统02进程管理Process_Description_and_Control

    作业的基本概念:用户再一次计算过程中或一次事务处理过程中,要求计算机系统所做的工作的集合. 包含多个程序.多个数据.作业控制说明书 系统调用时操作系统提供给编程人员的唯一接口. 1.文件操作类: 2. ...

  4. 【操作系统】进程管理(二)

    [操作系统]进程管理(二) 一.前言 二.进程的基本概念 2.1 程序的顺序执行 2.2 程序的并发执行 2.3 进程的特征 2.4 进程的状态 2.5 进程控制块 三.进程控制 3.1 进程的创建 ...

  5. 【JavaEE】简单了解操作系统、进程内存管理

    目录 前言: 一.操作系统: 操作系统的定位: 应用程序: 系统调用: 操作系统内核: 驱动程序: 硬件设备: 二.进程: 什么是进程? 进程的描述与组织: 描述: 组织: PCB中的 特征(属性) ...

  6. 计算机工作原理【操作系统和进程】

    目录 1.操作系统 什么是操作系统? 操作系统的定位结构 2.进程/任务 什么是进程/任务? 操作系统如何管理进程? PCB(进程控制块) 进程的虚拟地址空间 进程间通信 1.操作系统 什么是操作系统 ...

  7. 操作系统:进程和线程所有知识点

    01 什么是进程? 标准定义:进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的过程.进程是一个正在执行程序的实例,包括程序计数器.寄存器和程序变量的当前值. 简单来说进程就是一个程序的执 ...

  8. 操作系统之——进程管理:同步进程和进程互斥

    操作系统进程管理-同步和互斥 在看了操作系统关于进程管理中的同步互斥机制章节之后,甚是困惑,今天通过视频.网上博客资料学习之后,整理一下相关知识点. 进程管理 一.进程互斥 由于进程具有独立性和异步性 ...

  9. 操作系统 (二): 进程与线程

    本文为<现代操作系统>的读书笔记 目录 进程 (process) 多道程序设计模型 程序顺序执行与并发执行 前驱图和程序执行 并发执行 进程模型 进程控制 创建进程 进程是何时被创建的? ...

最新文章

  1. 每个 JavaScript 开发者都该懂的 Unicode
  2. R可视化绘制泊松分布(Poisson Distribution)
  3. 设计模式的理解:单例模式(Singleton)
  4. 为SSIS编写自定义数据流组件(DataFlow Component)之进阶篇:自定义编辑器
  5. 清华大学《操作系统》(九):进程和线程
  6. 蓝桥杯历届试题----分糖果(模拟)
  7. 2.3基本算法之递归变递推 1188 菲波那契数列(2)
  8. 基于jQuery实现垂直轮播效果
  9. 海龟交易法则05_掌握优势
  10. 传输层协议(13):拥塞控制(2)
  11. FFmpeg下载地址
  12. 实时股票数据接口 (转,以防有用)
  13. 计算机控制系统由硬件和软件组成部分,计算机控制系统的硬件一般由哪几个主要部分组成,各有何作用?...
  14. js 判断数组的4种方法
  15. python用嵌套if结构开发一个输入(input)快递价格的计算器
  16. 【CVPR2022】论文阅读:Revisiting Skeleton-based Action Recognition
  17. 企业微信好不好,OA软件何去何从?
  18. ESP8266最小系统
  19. vue rsa加密 php解密,Vue项目中的RSA加解密
  20. 渗透沉思录 - 转自亮神

热门文章

  1. 苹果在旧设备中修复了两个 iOS 零日漏洞
  2. 高校考的计算机应用能力一级,四川省普通高等学校计算机应用知识和能力等级考试一级考.PDF...
  3. 地图原点半径距离经纬度计算
  4. mapengpeng1999@163.com 数据库的设计
  5. 数组的扁平化方法总结
  6. python-matplotlib制作图表与中文正常显示
  7. Microsoft 365独家安全解决方案
  8. 十门峡旅游攻略:临安十门峡的春天
  9. 俄罗斯最大的盗版资源网站,解封了!
  10. iPhone 12易掉漆、边框太锋利还割手?库克快出来对线......