进程的初识
创始人
2024-02-15 23:34:00

目录

  • 预备知识 -> 操作系统
    • 操作系统的定义
    • 操作系统的定位
  • 进程
    • 进程的概念
    • 进程调度的过程
    • 进程的管理
      • 描述
      • 组织
    • PCB描述进程的特征
      • 进程调度的相关属性
        • 进程的状态
        • 优先级
        • 上下文
        • 记账信息

预备知识 -> 操作系统

操作系统的定义

操作系统是一个搞管理的软件

  • 对上,要对硬件设备管理
  • 对下,要给软件提供稳定的运行环境
  • 操作系统是软件 硬件 用户之间交互的媒介
    常见的操作系统:Windows linux mac Android(本质上也是linux) IOS(和mac同宗同源)

操作系统的定位

在这里插入图片描述
一个应用程序想要操作一下硬件设备。就需要先通过系统调用,把操作系统命令告诉给系统内核,内核调用驱动程序,进一步的操作操作系统

进程包含线程
一个进程包含一个及以上的线程
进程是资源分配的基本单位
线程是系统调度的基本单位

进程

进程的概念

概念:一个跑起来的程序就是一个”进程“
电脑上有一个.exe 可执行程序。但是没有去运行它,没有运行的就不是进程(没有运行起来的叫做程序)

进程(process)也叫做任务(task)
Ctrl + Alt + delete => 打开任务管理器
在这里插入图片描述
上面每一个运行中的程序就是进程

每个进程都对应一些资源进程是操作系统资源分配的基本单位

进程调度的过程

进程调度是指操作系统按某种策略或规则选择进程占用CPU资源进行运行的过程。

硬件资源,内存,硬盘,网卡都好分。但是cup资源不好分!!
进程有上百个之多,但是cpu市面上流行的电脑都是多核cpu,多核大都是8核或者16核。
在这里插入图片描述
上图就是一个八核电脑。八核cup和几百个进程明显不够分,狼多肉少
这些进程,是希望能够同时运行
但是计算机并不能同时运行,计算机真正做到的是分时复用
分时复用分为并行并发
并行:微观上同一时刻,两个核心上的进程,就是同时进行的
并发:微观上,同一时刻,一个核心中只能运行一个进程,但是它能够对进程快速的进行切换。

比如在cpu核心上,先运行一下qq,再运行一下微信,再运行一下idea…只要切换的速度足够快(我的电脑3.2GHz,每秒运行32亿条指令),宏观上人感知不到,人们看起来感觉好像几个程序在同时运行。就好比电脑屏幕刷新的频率大都是60Hz,屏幕并不是连续的,但是刷新频率大于眼睛的反应,人看电脑屏幕就好像是连续的

并行和并发是由操作系统内核处理的,应用程序(程序员)感知不到,因此我们也把并行和并发统称为并发
除非有显式声明,否则谈到并发,并发 = 并行 + 并发
操作系统里有一个重要的模块调度器,就来负责让有限的CPU来调度执行这么多的进程

进程的管理

进程是一个重要的软件资源,是由操作系统内核负责管理的

管理:组织 + 描述

描述

描述:用结构体(C语言的结构体)来描述进程的属性。
因为操作系统基本上都是C/C++来写的,所以用C语言结构体来描述。
PCB:用来描述进程的这个结构体叫做进程控制块也叫做PCB,这是一个结构体,注意不要和硬件中的PCB板弄混

组织

通过双向链表,把多个PCB串联在一起。(并不是一个单纯的双向链表)

  • 创建一个进程,本质上就是创建一个PCB这样的结构体对象,把它插入到链表中。
  • 销毁一个进程,本质上就是把链表上的PCB结点删掉
  • 任务管理器查看进程列表,本质上就是遍历整个PCB链表

PCB描述进程的特征

pcb中包含的属性非常非常多,下面只介绍最核心的属性

  1. pid 进程身份标识符(唯一的数字)
  2. 内存指针 指向了说内存是那些
  3. 文件描述符表 硬盘上的文件等其他资源 (2和3描述了进程有哪些硬件资源)
  4. 进程调度相关属性:
    • 进程的状态
    • 优先级
    • 上下文
    • 记账信息

进程调度的相关属性

进程通过调度器对其以并行+并发的形式进行调度。但是它也需要PCB对他提供帮助。PCB就记录进程调度的相关属性。

一个很有名的日本游戏叫做约会大作战,里面的男主角五河士道通过与女生约会来拯救世界。假设现在有ABC三个女生,让男主角和他们约会,还不能让他们相互知到对方的存在就需要合理的安排,但是每个妹子的状态不同,有的妹子周二需要上课,有的妹子正在准备和你约会,有的妹子正在和你约会,每个妹子的状态不同所以得记录妹子们的状态,每个妹子不能平均分配时间有的是新攻略的需要多花时间培养感情,有的已经交往了很久有了深厚的感情,就可以先往后放放。每个妹子的约会是有优先级的。和很多女生约会得记录他们的交往的进度和信息,假如A女生说她想去海边旅游了,让你给他准备准备。B女生说亲戚结婚了想让你给她挑一件礼服。但是你没有记录上下文,
A女生问:你准备好了嘛?
主角回答:给你准备了件礼服
B女生问:你准备好了嘛?
主角回答:给你准备了件泳衣
这样就露馅了,所以必须得记录上下文来避免出现错误而导致功亏一篑
主角和ABC交往了一段时间,要每隔一段时间来做个总结,统计一下在每个人身上花费的精力,以此为标准保持好尺度,不能太近也不能太远。

以这个小故事用来理解进程的相关属性

进程的状态

进程的状态主要有下面三种

  • 就绪状态: 随叫随到,进程随时准备好了去CPU上执行
  • 运行状态:正在CPU上执行
  • 阻塞状态:短时间内无法到CPU上执行,比如 进程 正在进行密集的IO操作,读写数据

优先级

先给谁排,后给谁排,给谁排的多一点,给谁排的少点。
进程也是有优先级的,操作系统的调度并不是一碗水端平的

上下文

操作系统在进行进程切换的时候,就需要把执行的中间状态记录下来,保存好。下次这个进程再上CPU上运行时,就可以恢复上次的状态好继续执行下去。
读档,存档
上下文的本质上就是你存档的内容。
进程的上下文,就是cpu各个寄存器1的值。

记账信息

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


  1. 各个寄存器 :CPU内置的存储数据的模块,保存的就是程序运行过程中的中间结果
    保存上下文:就是把这些CPU寄存器的值,记录到内存(PCB)中。
    回复上下文:就是把内存中的这些寄存器中的值恢复回去 ↩︎

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...