关于进程调度的基本过程

目录

一、进程是什么

二、如何管理

1)描述

2)组织

三、虚拟地址空间


一、进程是什么

        进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。(科普中国)

        进程也叫做任务,一个跑起来的程序就称作进程,打开一个文件扩展名为.exe的文件,操作系统就会把这个文件的核心数据加载到内存当中,同时系统会生成 ”进程“ 可在任务管理器中查看。

二、如何管理

        这么多的进程操作系统需要进行管理,管理可以分为两块描述、组织。

1)描述

就是详细的表达一个进程有哪些属性和信息。为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。

2)组织

通过一定的数据结构把用来描述的实体放到一起进行增删改查,系统中一般使用双向链表来把这些PCB组织起来 。

PCB里的关键要素

1、PID 进程的身份标识,它是唯一的,一个进程都必须对应一个PID

2、内存指针,描述了进程持有的内存资源,就是描述哪块内存是干什么用的

3、文件描述符表,描述了进程持有的文件资源,记录了当前进程打开了哪些文件

4、进程状态,运行、就绪、阻塞,表示进程现的运行情况 

5、进程优先级,表示获得CPU控制权的优先级大小

6、进程上下文,进程在执行一段时间后,需要切换到别的进程时就需要保存当前的数据,下次轮到它执行时可以进行数据恢复继续执行

7、进程记账信息,统计每个进程在CPU上执行了多久等等信息,来辅助进程调度

有了上面这些之后,所谓的进程调度就是通过”并行"和“并发”的方式让计算机可以同时执行多个进程。

并发执行:把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。就是说一个CPU核心先运行一下进程1,再运行一下进程2,再运行一下进程3,只要微观上切换的足够快,宏观上看好像就是同时运行的。

并行执行:把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。就是说每个CPU核心上都可以独立的运行一个进程,多个CPU核心就可以同时独立的运行多个进程。

三、虚拟地址空间

一个进程要想运行,就需要给它分配一些内存。

我们直接在物理内存上分配空间的话,如果进程1使用的内存范围是0x1000x200,进程2使用的内存范围是0x2010x300,假如出现极端情况进程1访问了0x201,进程2可能就会出现bug,所以我们不能让进程1的指针越界影响到进程2。

为了解决这个问题,就需要给每个进程划分的内存空间叫做”虚拟地址空间“,通过专门的设备内存管理单元(MMU)来完成虚拟地址到物理地址的映射。

这样一来进程1和进程2的内存空间就只有0x0到0xFFFF这一段,如果出现访问越界MMU映射的时候就能及时发现并进行处理避免影响的其他进程,就有了隔离性。

有了隔离性之后进程之间不会相互干扰了,但是有一些场景下需要多个进程进行配合操作,于是系统又引入了一个机制,进程间通信,就是找一个多个进程都能访问到的一个公共资源,通过这个公共资源来进行交换数据。

有写的不好和错误的地方希望大家指正,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值