今天,为大家带来进程和进程的调度的学习
1.认识计算机
2.什么是操作系统
3.什么是进程
4.进程管理
5.进程的属性
6.进程的调度
7.进程调度的过程
8.内存分配
1.认识计算机
计算机的组成有五大部分
1.CPU(是计算机的大脑,负责逻辑运算和控制)
2.内存
3.外存
4.输入设备
5.输出设备
由存储空间排序
硬盘>内存>>cpu
数据访问速度
cpu>>内存>硬盘
2.认识操作系统(OS)
操作系统作系统是一组软件集合,管理计算机软硬件资源,并且协调CPU运行
上述图就是计算机中操作系统所处的位置,可以看出在很关键的位置
对下要管理CPU,内存,外存,以及IO设备,对上要管理各种应用程序
我们所要谈的进程就是基于操作系统来说的,操作系统有一个功能,那就是进程管理
3.什么是进程(process)
进程说的通俗一点就是任务,也就是一个跑起来的程序,可以称为程序
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;
在操作系统内部,进程是操作系统进行资源分配的基本单位。
进程就是跑起来的程序
我们先来看看进程
打开电脑的任务资源管理器
这里有很多正在运行的程序,就称为进程
电脑的这些程序在运行时需要向操作系统申请内存,现在有这么多进程,就需要进行进程管理,这样计算机才能有序工作
4进程的管理:
进程管理分为两步
1.描述一个进程
就是用一个结构体或者一个类将进程的信息表示出来
2.组织一个进程
用数据结构将结构体或者对象放在一起
5进程的属性
既然我们要将进程的结构体(PCB >> process control block )进行组织,那么就得了解它的属性,PCB的属性非常多,我们今天就挑几个典型的来说一说
1.进程标识 pid
每一个进程都必须有唯一的一个身份标识
2.内存指针
进程就是跑起来的程序,跑起来的程序需要占用一定的内存资源,那么内存指针可以告诉操作系统哪部分的内存资源被占用了
3.文件描述符表
没有运行的程序并且在硬盘上存储的就称为文件,当一个文件运行时被标记,文件一旦打开就产生了一个文件描述符,当打开的文件很多的时候,就会标记产生很多文件描述符,这个时候把这些文件描述符放到一个表里面,这个表叫做文件描述符表
4.这个属性,不是一个属性,是一组和CPU资源相关的属性,,这组属性辅助操作系统进行进程调度
(1)进程状态
进程有两种状态,一个是就绪状态,一个是阻塞状态
就绪状态:进程已经准备好,随时可以上CPU执行
阻塞状态:进程还没准备好,暂时无法上CPU执行
(2)进程的优先级
进程的调度不一定公平,会遵循优先级,优先级调度
(3.)进程的上下文
就是记录进程运行到哪里的存档,当A进程突然离开CPU,那么B进程进入CPU执行,执行完后进程A回来继续执行,就从进程A的突然中断的地方继续执行
在进程上来说,就是进程运行中,CPU内部的寄存器存储的值,寄存器有很多作用,在这里的作用就是保存当前进程执行的中间结果,包括了执行到哪一条指令
寄存器有一个存档和读档的操作
所谓存档:进程在中途离开CPU的时候,寄存器会记录进程执行到哪一步了,那么CPU把寄存器上的值存到PCB的上下文中
所谓读档:当进程回到CPU中,CPU将PCB上的存档记录读取到寄存器上
(4)进程的记账信息
记录进程在CPU执行的时间长短,便于操作系统进行进程的调度
6进程调度:当CPU空闲时,操作系统从就绪队列上选择一个进程执行
操作系统使用双向链表组织PCB
进程的创建:创建一个链表结点
进程的销毁:删除一个链表节点
进程列表的遍历:遍历该链表
7.进程的调度过程
1.并行:同一时刻,同一个cpu,两个核心,同时执行两个进程,互不干扰
2.并发:同一个CPU,一个核心,先执行进程1,执行一会儿,再去执行进程2,执行一会儿,再去执行进程3,切换的速度非常快,快到几乎感受不到,所以看起来就像同时执行了
所以,进程的执行采用并行+并发的形式来执行.很多时候,把并行和并发统称为并发,这个并发是宏观意义上的并发
8.内存的分配
操作系统对内存资源的分配是空间模式,即不同的进程在执行的时候使用内存的不同区域,不会互相影响
扩展一下.,操作系统对进程执行分配的内存是虚拟地址,看似是一样的内存地址,但是通过映射到真实内存上,就是不一样的地址,不一样的内存区域
每个进程访问的内存地址都不是真正的物理内存地址
画个图理解一下
使用虚拟地址有效避免了野指针问题以及进程之间会相互干扰的问题
所以,进程有稳定性和独立性,每一个进程都有独立的内存地址空间,不会被干扰到
今天的内容就分享到这里,我们下期再见!!!